summaryrefslogtreecommitdiff
path: root/azure-pipelines-ci.yml
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2018-12-26 19:36:16 +0100
committerPatric Stout <truebrain@openttd.org>2018-12-27 21:21:28 +0100
commite61904c3e61119a5ce737f67e593148a7ef53c48 (patch)
treec8e7f2290cf3b3be15139fc22e40c27591ff72ad /azure-pipelines-ci.yml
parente8f9975409ab21b59c3357c49d4ec7cfaf4816ec (diff)
downloadopenttd-e61904c3e61119a5ce737f67e593148a7ef53c48.tar.xz
Change: use Azure Pipelines instead of self-hosted Jenkins for CI
Diffstat (limited to 'azure-pipelines-ci.yml')
-rw-r--r--azure-pipelines-ci.yml105
1 files changed, 105 insertions, 0 deletions
diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml
new file mode 100644
index 000000000..0bc5c282d
--- /dev/null
+++ b/azure-pipelines-ci.yml
@@ -0,0 +1,105 @@
+trigger: none
+pr:
+- master
+
+jobs:
+- job: windows
+ displayName: 'Windows'
+ pool:
+ vmImage: 'VS2017-Win2016'
+
+ strategy:
+ matrix:
+ Win32:
+ BuildPlatform: 'Win32'
+ Win64:
+ BuildPlatform: 'x64'
+
+ steps:
+ # Rebase to origin/master for every PR. This means users don't have to
+ # rebase every time master changes. As long as the PR applies cleanly, we
+ # will validate it.
+ - script: |
+ git config user.email 'info@openttd.org'
+ git config user.name 'OpenTTD CI'
+ git rebase origin/master
+ displayName: 'Rebase to master'
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download dependencies'
+ inputs:
+ buildType: specific
+ project: '8da578ca-c6cf-47b8-b489-d54a7b188de8'
+ pipeline: 2
+ artifactName: 'windows-dependencies'
+ downloadPath: '$(Build.ArtifactStagingDirectory)'
+ - script: $(Build.ArtifactStagingDirectory)\windows-dependencies\vcpkg.exe integrate install
+ displayName: 'Install dependencies'
+ - task: VSBuild@1
+ displayName: 'Build'
+ inputs:
+ solution: 'projects/openttd_vs141.sln'
+ platform: $(BuildPlatform)
+ configuration: Release
+ maximumCpuCount: true
+ # Running the regression is currently not possibe via MSVC (console is not redirected)
+
+- job: linux
+ displayName: 'Linux'
+ pool:
+ vmImage: 'ubuntu-16.04'
+
+ strategy:
+ matrix:
+ commit-checker: {}
+ linux-amd64-clang-3.8: {}
+ linux-amd64-gcc-6: {}
+ linux-i386-gcc-6: {}
+
+ steps:
+ # Rebase to origin/master for every PR. This means users don't have to
+ # rebase every time master changes. As long as the PR applies cleanly, we
+ # will validate it.
+ - script: |
+ git config user.email 'info@openttd.org'
+ git config user.name 'OpenTTD CI'
+ git rebase origin/master
+ displayName: 'Rebase to master'
+ - task: Docker@1
+ displayName: 'Build and test'
+ inputs:
+ command: 'Run an image'
+ imageName: openttd/compile-farm-ci:$(Agent.JobName)
+ volumes: '$(Build.SourcesDirectory):$(Build.SourcesDirectory)'
+ workingDirectory: '$(Build.SourcesDirectory)'
+ runInBackground: false
+
+- job: macos
+ displayName: 'MacOS'
+ pool:
+ vmImage: 'macOS-10.13'
+
+ steps:
+ # Rebase to origin/master for every PR. This means users don't have to
+ # rebase every time master changes. As long as the PR applies cleanly, we
+ # will validate it.
+ - script: |
+ git config user.email 'info@openttd.org'
+ git config user.name 'OpenTTD CI'
+ git rebase origin/master
+ displayName: 'Rebase to master'
+ - script: HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config lzo xz libpng
+ displayName: 'Install dependencies'
+ - bash: |
+ set -ex
+ mkdir -p ~/Documents/OpenTTD/baseset
+ cd ~/Documents/OpenTTD/baseset
+ wget https://binaries.openttd.org/extra/opengfx/0.5.2/opengfx-0.5.2-all.zip
+ unzip opengfx-0.5.2-all.zip
+ rm -f opengfx-0.5.2-all.zip
+ displayName: 'Install OpenGFX'
+ - script: './configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig --enable-static'
+ displayName: 'Configure'
+ - script: 'make -j2'
+ displayName: 'Build'
+ - script: 'make regression'
+ displayName: 'Test'