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) | $(Build.SourceVersion) # restoreKeys: | # ccache | $(Agent.OS) | $(COMPILER) # path: $(CCACHE_DIR) # displayName: ccache # - bash: | # docker pull --quiet rpcs3/rpcs3-ci-jammy:1.3 # docker run \ # -v $(pwd):/rpcs3 \ # --env-file .ci/docker.env \ # -v $CCACHE_DIR:/root/.ccache \ # -v $BUILD_ARTIFACTSTAGINGDIRECTORY:/root/artifacts \ # rpcs3/rpcs3-ci-jammy:1.3 \ # /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.3' # QT_VER_MSVC: 'msvc2022' # QT_DATE: '202503201308' # QTDIR: C:\Qt\$(QT_VER)\$(QT_VER_MSVC)_64 # LLVM_VER: '19.1.7' # VULKAN_VER: '1.3.268.0' # VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5' # VULKAN_SDK: C:\VulkanSDK\$(VULKAN_VER) # CCACHE_SHA: '6252f081876a9a9f700fae13a5aec5d0d486b28261d7f1f72ac11c7ad9df4da9' # CCACHE_BIN_DIR: 'C:\ccache_bin' # CCACHE_DIR: 'C:\ccache' # CCACHE_INODECACHE: 'true' # CCACHE_SLOPPINESS: 'time_macros' # DEPS_CACHE_DIR: ./dependency_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: ccache | $(Agent.OS) | $(COMPILER) | "$(Build.SourceVersion)" # path: $(CCACHE_DIR) # restoreKeys: # ccache | $(Agent.OS) | $(COMPILER) # displayName: Build Ccache # - task: Cache@2 # inputs: # key: $(Agent.OS) | $(COMPILER) | "$(QT_VER)" | $(VULKAN_SDK_SHA) | $(CCACHE_SHA) | llvm.lock | glslang.lock # path: $(DEPS_CACHE_DIR) # displayName: Dependencies 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' # msbuildArgs: /p:CLToolPath=$(CCACHE_BIN_DIR) /p:UseMultiToolTask=true /p:CustomAfterMicrosoftCommonTargets="$(Build.SourcesDirectory)\buildfiles\msvc\ci_only.targets" # 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: '19' pool: vmImage: "macOS-14" steps: - task: Cache@2 inputs: key: ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(Build.SourceVersion)" path: $(CCACHE_DIR) restoreKeys: | ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)" 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: '19' pool: vmImage: "macOS-14" steps: - task: Cache@2 inputs: key: ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)" | "$(Build.SourceVersion)" path: $(CCACHE_DIR) restoreKeys: | ccache | "$(Agent.OS)" | "$(Agent.OSArchitecture)" 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)