You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.8 KiB
116 lines
3.8 KiB
trigger: |
|
branches: |
|
include: |
|
- master |
|
tags: |
|
include: |
|
- '*' |
|
schedules: |
|
- cron: "0 0 * * *" |
|
displayName: Nightly build |
|
branches: |
|
include: |
|
- master |
|
pr: none |
|
|
|
stages: |
|
- stage: SetVersionInformation |
|
jobs: |
|
- job: 'Versioning' |
|
pool: |
|
vmImage: 'ubuntu-16.04' |
|
displayName: 'Set Build Number' |
|
steps: |
|
- bash: | |
|
mkdir build |
|
cd build |
|
cmake .. |
|
displayName: 'Create Version Information' |
|
- bash: | |
|
mkdir build |
|
cd build |
|
cmake .. |
|
VER=$(cat VERSION | sed '1q;d') |
|
TAG=`date +"%Y%m%d"` |
|
echo "##vso[build.updatebuildnumber]${VER}-nightly.${TAG}" |
|
name: 'VersionNightly' |
|
displayName: 'Set Version Information for Nightly' |
|
workingDirectory: ./build |
|
condition: or(eq(variables['Build.Reason'], 'Schedule'), eq(variables['runForRelease'], False)) # Run for scheduled (nightlies) |
|
- bash: | |
|
mkdir build |
|
cd build |
|
cmake .. |
|
VER=$(cat VERSION | sed '1q;d') |
|
echo "##vso[build.updatebuildnumber]${VER}" |
|
name: 'VersionRelease' |
|
displayName: 'Set Version Information for Release' |
|
workingDirectory: ./build |
|
condition: ne(succeded('VersioningNightlies')) |
|
- stage: Release |
|
jobs: |
|
- job: 'Linux' |
|
pool: |
|
vmImage: 'ubuntu-16.04' |
|
displayName: 'Build for Linux' |
|
condition: always() |
|
steps: |
|
- template: steps/build_linux.yml |
|
parameters: |
|
cmake_flags: '-DCMAKE_DEBUG_INCLUDES_LDFLAGS=ON -DENABLE_CPPUNIT=ON -DDEBUG_COMPILE=ON' |
|
- bash: | |
|
cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/staging -DCPACK_GENERATOR="TGZ;DEB" |
|
cmake --build . --target package |
|
workingDirectory: ./build |
|
displayName: 'Generate packages' |
|
- task: PublishPipelineArtifact@1 |
|
inputs: |
|
artifactName: 'linux-packages' |
|
targetPath: '$(System.DefaultWorkingDirectory)/build/packages' |
|
displayName: 'Publish packages' |
|
- job: Windows |
|
pool: |
|
vmImage: 'vs2017-win2016' |
|
displayName: 'Build Release for Windows' |
|
condition: always() |
|
steps: |
|
- template: steps/build_windows.yml |
|
parameters: |
|
build_type: 'Release' |
|
cmake_flags: '' |
|
- script: | |
|
set PATH=%PATH%;%CD:~0,2%\msys64\usr\bin;%CD:~0,2%\msys64\mingw64\bin" |
|
%CD:~0,2%\msys64\usr\bin\bash -lc "./build-setup.sh" |
|
workingDirectory: ./windows-setup |
|
env: |
|
MSYS2_ARCH: x86_64 |
|
MSYSTEM: MINGW64 |
|
CHERE_INVOKING: yes |
|
displayName: 'Create Setup' |
|
- task: PublishPipelineArtifact@0 |
|
inputs: |
|
artifactName: 'windows' |
|
targetPath: './windows-setup/xournalpp-setup.exe' |
|
displayName: 'Publish Windows Setup' |
|
|
|
- job: macOS |
|
pool: |
|
vmImage: 'macOS-10.13' |
|
displayName: 'Build for macOS' |
|
condition: always() |
|
steps: |
|
- template: steps/build_mac_native.yml |
|
parameters: |
|
build_type: 'Release' |
|
cmake_flags: '' |
|
- bash: | |
|
export PATH="$HOME/.local/bin:/Users/git-bin/gtk/inst/bin:$PATH" |
|
./build-app.sh /Users/git-bin/gtk |
|
workingDirectory: ./mac-setup |
|
displayName: 'Create App' |
|
- task: PublishPipelineArtifact@0 |
|
inputs: |
|
artifactName: 'macOS' |
|
targetPath: './mac-setup/Xournal++.zip' |
|
displayName: 'Publish macOS Setup' |
|
|
|
|