rpcs3/azure-pipelines.yml

109 lines
2.8 KiB
YAML

trigger:
branches:
include:
- master
tags:
exclude:
- '*'
pr:
branches:
include:
- master
jobs:
- job: Linux_Build
strategy:
matrix:
Clang:
COMPILER: clang
GCC:
COMPILER: gcc
DEPLOY_APPIMAGE: true
variables:
CCACHE_DIR: $(Pipeline.Workspace)/ccache
IS_AZURE: true
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-travis-xenial:1.4
docker run \
-v $(pwd):/rpcs3 \
--env-file .ci/travis.env \
-v $CCACHE_DIR:/root/.ccache \
-v $BUILD_ARTIFACTSTAGINGDIRECTORY:/root/artifacts \
rpcs3/rpcs3-travis-xenial:1.4 \
/rpcs3/.ci/build-linux.sh
displayName: Docker setup and build
- publish: $(Build.ArtifactStagingDirectory)
condition: and(succeeded(), eq(variables['COMPILER'], 'gcc'))
artifact: RPCS3 for Linux
- job: Windows_Build
variables:
COMPILER: msvc
QT_VER: '5.14.2'
QT_DATE: '202003291224'
QTDIR: C:\Qt\$(QT_VER)\msvc2017_64
VULKAN_VER: '1.2.135.0'
VULKAN_SDK_SHA: '181b3353612c8b0fc5e1857b652d62140191ae42b98f2f0d532cf349cebfd8c6'
VULKAN_SDK: C:\VulkanSDK\$(VULKAN_VER)
CACHE_DIR: ./cache
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: MSBuild@1
inputs:
solution: './Vulkan/spirv-tools-build/spirv-tools-build.vcxproj'
maximumCpuCount: true
platform: x64
configuration: 'Release'
displayName: Compile SPIRV-Tools
- task: VSBuild@1
inputs:
solution: 'rpcs3.sln'
maximumCpuCount: true
platform: x64
configuration: 'Release - LLVM'
msbuildArgs: '/p:VCToolsVersion=14.25.28610'
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-windows.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)