2018-12-27 22:58:46 +00:00
|
|
|
trigger:
|
|
|
|
- master
|
2018-12-26 18:36:16 +00:00
|
|
|
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'
|
2018-12-27 21:56:39 +00:00
|
|
|
- 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
|
2018-12-26 18:36:16 +00:00
|
|
|
displayName: 'Download dependencies'
|
2018-12-27 21:56:39 +00:00
|
|
|
workingDirectory: $(Build.ArtifactStagingDirectory)
|
2018-12-26 18:36:16 +00:00
|
|
|
- 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'
|