# Refer: https://aka.ms/yaml variables: shouldDeploy: > ${{ or( eq(variables.Build.SourceBranch, 'refs/heads/develop'), eq(variables.Build.SourceBranch, 'refs/heads/master') ) }} stages: - stage: build_test displayName: Build and Test jobs: - job: win_vs2019 displayName: Windows - VS 2019 pool: vmImage: windows-2019 steps: - script: | echo Loading VS environment call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\vsdevcmd" -arch=x64 || exit 1 echo Executing Build and Tests reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f || exit 1 python -m pip install pytest pytest-xdist || exit 1 python -u tools/ci.py -B download -T tools\msvc.jsonc || exit 1 move _build\dds.exe _build\dds-win-x64.exe || exit 1 displayName: Build and Test - publish: _build\dds-win-x64.exe displayName: Publish artifact: dds-win-x64 - job: linux_gcc9 displayName: Linux - GCC 9 pool: vmImage: ubuntu-18.04 steps: - script: | set -eu sudo apt update -y sudo apt install -y python3-minimal g++-9 ccache python3 -m pip install pytest pytest-xdist displayName: Prepare System - script: make linux-ci displayName: Build and Test - publish: _build/dds-linux-x64 displayName: Publish artifact: dds-linux-x64 - job: macos_gcc9 displayName: macOS - GCC 9 pool: vmImage: macOS-10.14 steps: - script: brew install gcc@9 ccache displayName: Prepare System - script: | set -eu python3 -m pip install pytest pytest-xdist make macos-ci displayName: Build and Test - publish: _build/dds-macos-x64 displayName: Publish artifact: dds-macos-x64 - stage: deploy_build displayName: Deploy condition: eq(variables.shouldDeploy, true) jobs: - job: deploy displayName: Deploy for ${{variables.Build.SourceBranchName}} condition: succeeded() steps: - task: DownloadPipelineArtifact@2 displayName: Download builds inputs: targetPath: art/ - task: CopyFilesOverSSH@0 displayName: Post builds inputs: sshEndpoint: dds.pizza sourceFolder: art/ targetFolder: ~/${{variables.Build.SourceBranchName}}/ failOnEmptySource: true overwrite: true # - job: deploy # displayName: Deploy Canary # # Only deploy the "canary" build when we are on the 'develop' branch # condition: and(succeeded(), eq(variables.Build.SourceBranchName, 'develop')) # steps: # - task: DownloadPipelineArtifact@2 # displayName: Download builds # inputs: # targetPath: art/ # - task: CopyFilesOverSSH@0 # displayName: Post builds # inputs: # sshEndpoint: dds.pizza # sourceFolder: art/ # targetFolder: ~/canary/ # failOnEmptySource: true # overwrite: true