Files
openttd-cmclient/azure-pipelines.yml
2019-04-04 20:01:48 +03:00

146 lines
4.3 KiB
YAML

trigger: none
pr: none
jobs:
- job: source
displayName: 'Source'
pool:
vmImage: 'ubuntu-16.04'
steps:
- bash: |
set -e
VERSION=$(cat .version)
echo "${VERSION}"
echo "##vso[build.updatebuildnumber]${VERSION}"
- script: |
set -ex
# Rename the folder to openttd-NNN-source
mkdir openttd-$(Build.BuildNumber)
find . -maxdepth 1 -not -name release_files -not -name . -not -name openttd-$(Build.BuildNumber) -exec mv {} openttd-$(Build.BuildNumber)/ \;
cp -r release_files/* openttd-$(Build.BuildNumber)/
mkdir bundles
tar --xz -cf bundles/openttd-$(Build.BuildNumber)-source.tar.xz openttd-$(Build.BuildNumber)
zip -9 -r -q bundles/citymania-client-$(Build.BuildNumber)-source.zip openttd-$(Build.BuildNumber)
displayName: 'Create bundle'
- task: PublishBuildArtifacts@1
displayName: 'Publish bundles'
inputs:
PathtoPublish: bundles/
ArtifactName: bundles
- job: diff
dependsOn: source
steps:
- task: DownloadBuildArtifacts@0
displayName: 'Download source'
inputs:
downloadType: specific
itemPattern: 'bundles/openttd-*-source.tar.xz'
downloadPath: '$(Build.ArtifactStagingDirectory)'
- bash: |
set -e
VERSION=$(cat .version)
echo "##vso[build.updatebuildnumber]${VERSION}"
displayName: 'Change BuildNumber to version'
- bash: |
set -ex
curl -L https://proxy.binaries.openttd.org/openttd-releases/$(Build.BuildNumber)/openttd-$(Build.BuildNumber)-source.tar.xz > vanilla-source.tar.xz
displayName: 'Download vanilla'
- bash: |
set -ex
mkdir vanilla
tar --xz -xf vanilla-source.tar.xz --strip-components=1 -C vanilla
mkdir cmclient
tar --xz -xf ../a/bundles/openttd-*-source.tar.xz --strip-components=1 -C cmclient
displayName: 'Extract sources'
- bash: |
set -ex
mkdir -p bundles
echo "bundles/citymania-client-$(Build.BuildNumber).diff"
diff -r vanilla cmclient -B -X .diff-exclude > bundles/citymania-client-$(Build.BuildNumber).diff || EXIT_CODE=$? && true
if ((EXIT_CODE != 1)); then exit $EXIT_CODE; fi
displayName: 'Make diff'
- task: PublishBuildArtifacts@1
displayName: 'Publish bundles'
inputs:
PathtoPublish: bundles/
ArtifactName: bundles
- job: linux
displayName: 'Linux'
dependsOn: source
strategy:
matrix:
linux-ubuntu-bionic-amd64-gcc: {}
steps:
- template: azure-pipelines/templates/release-fetch-source.yml
- template: azure-pipelines/templates/linux-build.yml
parameters:
Image: compile-farm
ContainerCommand: '$(Build.BuildNumber)'
Tag: $(Agent.JobName)
- job: windows
displayName: 'Windows'
pool:
vmImage: 'VS2017-Win2016'
dependsOn: source
strategy:
matrix:
Win32:
BuildPlatform: 'Win32'
BundlePlatform: 'win32'
Win64:
BuildPlatform: 'x64'
BundlePlatform: 'win64'
steps:
- template: azure-pipelines/templates/release-fetch-source.yml
- template: azure-pipelines/templates/windows-dependencies.yml
- template: azure-pipelines/templates/windows-dependency-zip.yml
- template: azure-pipelines/templates/windows-build.yml
parameters:
BuildPlatform: $(BuildPlatform)
- bash: |
set -ex
mkdir -p bundle
cp -r bin/data bundle/
make -f Makefile.msvc bundle_pdb bundle_zip PLATFORM=$(BundlePlatform) BUNDLE_NAME=citymania-client-$(Build.BuildNumber)-$(BundlePlatform)
displayName: 'Create bundles'
- task: PublishBuildArtifacts@1
displayName: 'Publish bundles'
inputs:
PathtoPublish: bundles/
ArtifactName: bundles
- job: macos
displayName: 'MacOS'
pool:
vmImage: 'macOS-10.13'
dependsOn: source
variables:
MACOSX_DEPLOYMENT_TARGET: 10.9
steps:
- template: azure-pipelines/templates/release-fetch-source.yml
- template: azure-pipelines/templates/osx-dependencies.yml
- template: azure-pipelines/templates/osx-build.yml
- bash: |
set -ex
mkdir -p bundle/OpenTTD.app/Contents/Resources
cp -r bin/data bundle/OpenTTD.app/Contents/Resources/
make bundle_zip bundle_dmg BUNDLE_NAME=citymania-client-$(Build.BuildNumber)-macosx
displayName: 'Create bundles'
- task: PublishBuildArtifacts@1
displayName: 'Publish bundles'
inputs:
PathtoPublish: bundles/
ArtifactName: bundles