mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-12-26 03:20:52 +00:00
246 lines
7.1 KiB
YAML
246 lines
7.1 KiB
YAML
trigger:
|
|
branches:
|
|
include:
|
|
- master
|
|
tags:
|
|
exclude:
|
|
- '*'
|
|
pr:
|
|
branches:
|
|
include:
|
|
- master
|
|
jobs:
|
|
- job: Linux_Build
|
|
strategy:
|
|
matrix:
|
|
Clang:
|
|
COMPILER: clang
|
|
GCC:
|
|
COMPILER: gcc
|
|
variables:
|
|
CCACHE_DIR: $(Pipeline.Workspace)/ccache
|
|
CI_HAS_ARTIFACTS: true
|
|
UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
|
|
UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-linux"
|
|
DEPLOY_APPIMAGE: true
|
|
APPDIR: "/rpcs3/build/appdir"
|
|
ARTDIR: "/root/artifacts"
|
|
RELEASE_MESSAGE: "/rpcs3/GitHubReleaseMessage.txt"
|
|
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
|
|
steps:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: ccache | $(Agent.OS) | $(COMPILER)
|
|
path: $(CCACHE_DIR)
|
|
displayName: ccache
|
|
|
|
- bash: |
|
|
docker pull --quiet rpcs3/rpcs3-ci-focal:1.9
|
|
docker run \
|
|
-v $(pwd):/rpcs3 \
|
|
--env-file .ci/docker.env \
|
|
-v $CCACHE_DIR:/root/.ccache \
|
|
-v $BUILD_ARTIFACTSTAGINGDIRECTORY:/root/artifacts \
|
|
rpcs3/rpcs3-ci-focal:1.9 \
|
|
/rpcs3/.ci/build-linux.sh
|
|
displayName: Docker setup and build
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
condition: succeeded()
|
|
artifact: RPCS3 for Linux ($(COMPILER))
|
|
|
|
- bash: |
|
|
COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
|
|
COMM_COUNT=$(git rev-list --count HEAD)
|
|
COMM_HASH=$(git rev-parse --short=8 HEAD)
|
|
|
|
export AVVER="${COMM_TAG}-${COMM_COUNT}"
|
|
|
|
.ci/github-upload.sh
|
|
condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['COMPILER'], 'clang'))
|
|
displayName: Push build to GitHub
|
|
env:
|
|
RPCS3_TOKEN: $(RPCS3-Token)
|
|
|
|
- job: Windows_Build
|
|
variables:
|
|
COMPILER: msvc
|
|
QT_VER_MAIN: '6'
|
|
QT_VER: '6.8.1'
|
|
QT_VER_MSVC: 'msvc2022'
|
|
QT_DATE: '202411221531'
|
|
QTDIR: C:\Qt\$(QT_VER)\$(QT_VER_MSVC)_64
|
|
VULKAN_VER: '1.3.268.0'
|
|
VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
|
|
VULKAN_SDK: C:\VulkanSDK\$(VULKAN_VER)
|
|
CACHE_DIR: ./cache
|
|
UPLOAD_COMMIT_HASH: 7d09e3be30805911226241afbb14f8cdc2eb054e
|
|
UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-win"
|
|
|
|
pool:
|
|
vmImage: "windows-latest"
|
|
|
|
steps:
|
|
- bash: .ci/get_keys-windows.sh
|
|
displayName: Get Cache Keys
|
|
|
|
- task: Cache@2
|
|
inputs:
|
|
key: $(Agent.OS) | $(COMPILER) | "$(QT_VER)" | $(VULKAN_SDK_SHA) | llvm.lock | glslang.lock
|
|
path: $(CACHE_DIR)
|
|
restoreKeys: |
|
|
$(Agent.OS) | $(COMPILER)
|
|
displayName: Cache
|
|
|
|
- bash: .ci/setup-windows.sh
|
|
displayName: Download and unpack dependencies
|
|
|
|
- bash: .ci/export-azure-vars.sh
|
|
displayName: Export Variables
|
|
|
|
- task: VSBuild@1
|
|
inputs:
|
|
solution: 'rpcs3.sln'
|
|
maximumCpuCount: true
|
|
platform: x64
|
|
configuration: 'Release'
|
|
displayName: Compile RPCS3
|
|
|
|
- bash: .ci/deploy-windows.sh
|
|
displayName: Pack up build artifacts
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
condition: succeeded()
|
|
artifact: RPCS3 for Windows
|
|
|
|
- bash: .ci/github-upload.sh
|
|
condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
|
displayName: Push build to GitHub
|
|
env:
|
|
RPCS3_TOKEN: $(RPCS3-Token)
|
|
|
|
- job: Mac_Build_x86_64
|
|
timeoutInMinutes: 180
|
|
variables:
|
|
CCACHE_DIR: "/tmp/ccache_dir"
|
|
CCACHE_MAXSIZE: 300M
|
|
CI_HAS_ARTIFACTS: true
|
|
UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
|
|
UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-mac"
|
|
RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
|
|
ARTDIR: $(Build.ArtifactStagingDirectory)
|
|
QT_VER: '6.7.3'
|
|
QT_VER_MAIN: '6'
|
|
LLVM_COMPILER_VER: '16'
|
|
|
|
pool:
|
|
vmImage: "macOS-13"
|
|
|
|
steps:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: ccache | "$(Agent.OS)"
|
|
path: $(CCACHE_DIR)
|
|
restoreKeys: |
|
|
ccache | "$(Agent.OS)"
|
|
displayName: Ccache cache
|
|
|
|
- task: Cache@2
|
|
inputs:
|
|
key: qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
|
|
path: /tmp/Qt
|
|
restoreKeys: |
|
|
qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
|
|
displayName: Qt cache
|
|
|
|
# - task: Cache@2
|
|
# inputs:
|
|
# key: brew | "$(Agent.OS)"
|
|
# path: /Users/runner/Library/Caches/Homebrew
|
|
# restoreKeys: |
|
|
# brew | "$(Agent.OS)"
|
|
# displayName: Homebrew cache
|
|
|
|
- bash: |
|
|
chmod +x ".ci/build-mac.sh"
|
|
chmod +x ".ci/deploy-mac.sh"
|
|
chmod +x ".ci/optimize-mac.sh"
|
|
".ci/build-mac.sh"
|
|
displayName: Build macOS (x86_64)
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
condition: succeeded()
|
|
artifact: RPCS3 for Mac (Intel)
|
|
|
|
- bash: |
|
|
source './.ci/export-cirrus-vars.sh'
|
|
.ci/github-upload.sh
|
|
condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
|
displayName: Push build to GitHub
|
|
env:
|
|
RPCS3_TOKEN: $(RPCS3-Token)
|
|
|
|
- job: Mac_Build_arm64
|
|
timeoutInMinutes: 180
|
|
variables:
|
|
CCACHE_DIR: "/tmp/ccache_dir"
|
|
CCACHE_MAXSIZE: 300M
|
|
CI_HAS_ARTIFACTS: true
|
|
UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281
|
|
UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-mac-arm64"
|
|
RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
|
|
ARTDIR: $(Build.ArtifactStagingDirectory)
|
|
QT_VER: '6.7.3'
|
|
QT_VER_MAIN: '6'
|
|
LLVM_COMPILER_VER: '16'
|
|
|
|
pool:
|
|
vmImage: "macOS-13"
|
|
|
|
steps:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: ccache | "$(Agent.OS)"
|
|
path: $(CCACHE_DIR)
|
|
restoreKeys: |
|
|
ccache | "$(Agent.OS)"
|
|
displayName: Ccache cache
|
|
|
|
- task: Cache@2
|
|
inputs:
|
|
key: qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
|
|
path: /tmp/Qt
|
|
restoreKeys: |
|
|
qt | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(QT_VER)"
|
|
displayName: Qt cache
|
|
|
|
# - task: Cache@2
|
|
# inputs:
|
|
# key: brew | "$(Agent.OS)"
|
|
# path: /Users/runner/Library/Caches/Homebrew
|
|
# restoreKeys: |
|
|
# brew | "$(Agent.OS)"
|
|
# displayName: Homebrew cache
|
|
|
|
- bash: |
|
|
chmod +x ".ci/build-mac-arm64.sh"
|
|
chmod +x ".ci/deploy-mac-arm64.sh"
|
|
chmod +x ".ci/optimize-mac.sh"
|
|
".ci/build-mac-arm64.sh"
|
|
displayName: Build macOS (arm64)
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
condition: succeeded()
|
|
artifact: RPCS3 for Mac (Apple Silicon)
|
|
|
|
- bash: |
|
|
source './.ci/export-cirrus-vars.sh'
|
|
.ci/github-upload.sh
|
|
condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.Repository.Name'], 'RPCS3/rpcs3'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
|
displayName: Push build to GitHub
|
|
env:
|
|
RPCS3_TOKEN: $(RPCS3-Token)
|