summaryrefslogtreecommitdiff
path: root/azure-pipelines-ci.yml
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2019-01-05 20:11:29 +0100
committerCharles Pigott <charlespigott@googlemail.com>2019-01-13 11:31:04 +0000
commit750927372f7d10f648aa2015193d1f7f800f3a69 (patch)
treeed3390b353c7be6393b6af762e4a5b0e7b98647f /azure-pipelines-ci.yml
parent52a66e4dd3ed3831d0bfa02ecde72e6f2a491e05 (diff)
downloadopenttd-750927372f7d10f648aa2015193d1f7f800f3a69.tar.xz
Add: [AzurePipeline] introducing a release pipeline
This release pipeline creates all the official release binaries, and publishes them as artifacts. Currently it can only produce nightlies and custom builds; stable/testing release binaries are untested. This commit also splits up the pipeline in small bits, to both improve readability, and to share code with the CI pipeline where possible.
Diffstat (limited to 'azure-pipelines-ci.yml')
-rw-r--r--azure-pipelines-ci.yml86
1 files changed, 17 insertions, 69 deletions
diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml
index e71ab60ea..d624f8ce7 100644
--- a/azure-pipelines-ci.yml
+++ b/azure-pipelines-ci.yml
@@ -17,37 +17,12 @@ jobs:
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'
- - bash: |
- set -ex
- curl -L https://github.com/OpenTTD/OpenTTD-CF/releases/download/latest/windows-dependencies.zip > windows-dependencies.zip
- unzip windows-dependencies.zip
- rm -f windows-dependencies.zip
- displayName: 'Download dependencies'
- workingDirectory: $(Build.ArtifactStagingDirectory)
- - script: $(Build.ArtifactStagingDirectory)\windows-dependencies\vcpkg.exe integrate install
- displayName: 'Install dependencies'
- - bash: |
- set -ex
- cd bin/baseset
- curl -L https://binaries.openttd.org/extra/opengfx/0.5.2/opengfx-0.5.2-all.zip > opengfx-0.5.2-all.zip
- unzip opengfx-0.5.2-all.zip
- rm -f opengfx-0.5.2-all.zip
- displayName: 'Install OpenGFX'
- - task: VSBuild@1
- displayName: 'Build'
- inputs:
- solution: 'projects/openttd_vs141.sln'
- platform: $(BuildPlatform)
- configuration: Release
- maximumCpuCount: true
+ - template: azure-pipelines/templates/ci-git-rebase.yml
+ - template: azure-pipelines/templates/windows-dependencies.yml
+ - template: azure-pipelines/templates/ci-opengfx.yml
+ - template: azure-pipelines/templates/windows-build.yml
+ parameters:
+ BuildPlatform: $(BuildPlatform)
- script: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
cd projects
@@ -67,22 +42,13 @@ jobs:
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
+ - template: azure-pipelines/templates/ci-git-rebase.yml
+ # The dockers already have the dependencies installed
+ # The dockers already have OpenGFX installed
+ - template: azure-pipelines/templates/linux-build.yml
+ parameters:
+ Image: compile-farm-ci
+ Tag: $(Agent.JobName)
- job: macos
displayName: 'MacOS'
@@ -90,27 +56,9 @@ jobs:
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'
+ - template: azure-pipelines/templates/ci-git-rebase.yml
+ - template: azure-pipelines/templates/osx-dependencies.yml
+ - template: azure-pipelines/templates/ci-opengfx.yml
+ - template: azure-pipelines/templates/osx-build.yml
- script: 'make regression'
displayName: 'Test'