forked from openkylin/z3
195 lines
6.0 KiB
YAML
195 lines
6.0 KiB
YAML
|
variables:
|
||
|
z3Version: '4.8.7'
|
||
|
|
||
|
jobs:
|
||
|
|
||
|
- job: Mac
|
||
|
displayName: "Mac Build"
|
||
|
pool:
|
||
|
vmImage: "macOS-10.14"
|
||
|
steps:
|
||
|
- task: DownloadSecureFile@1
|
||
|
inputs:
|
||
|
secureFile: 'z3.snk'
|
||
|
- script: python scripts/mk_unix_dist.py --dotnet-key=$(Agent.TempDirectory)/z3.snk
|
||
|
- script: git clone https://github.com/z3prover/z3test z3test
|
||
|
- script: python z3test/scripts/test_benchmarks.py build-dist/z3 z3test/regressions/smt2
|
||
|
- script: cp dist/*.zip $(Build.ArtifactStagingDirectory)/.
|
||
|
- task: PublishPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Mac'
|
||
|
targetPath: $(Build.ArtifactStagingDirectory)
|
||
|
|
||
|
- job: Ubuntu
|
||
|
displayName: "Ubuntu build"
|
||
|
pool:
|
||
|
vmImage: "ubuntu-16.04"
|
||
|
steps:
|
||
|
- task: DownloadSecureFile@1
|
||
|
inputs:
|
||
|
secureFile: 'z3.snk'
|
||
|
- script: python scripts/mk_unix_dist.py --dotnet-key=$(Agent.TempDirectory)/z3.snk
|
||
|
- script: git clone https://github.com/z3prover/z3test z3test
|
||
|
- script: python z3test/scripts/test_benchmarks.py build-dist/z3 z3test/regressions/smt2
|
||
|
- script: cp dist/*.zip $(Build.ArtifactStagingDirectory)/.
|
||
|
- task: PublishPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Ubuntu'
|
||
|
targetPath: $(Build.ArtifactStagingDirectory)
|
||
|
|
||
|
- job: Manylinux
|
||
|
displayName: "Manylinux build"
|
||
|
pool:
|
||
|
vmImage: "ubuntu-16.04"
|
||
|
container: "rhelmot/manylinux1_x86_64:latest"
|
||
|
variables:
|
||
|
python: "/opt/python/cp35-cp35m/bin/python"
|
||
|
steps:
|
||
|
- script: $(python) scripts/mk_unix_dist.py --nodotnet --nojava
|
||
|
- script: git clone https://github.com/z3prover/z3test z3test
|
||
|
- script: $(python) z3test/scripts/test_benchmarks.py build-dist/z3 z3test/regressions/smt2
|
||
|
- script: cp dist/*.zip $(Build.ArtifactStagingDirectory)/
|
||
|
- task: PublishPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Manylinux'
|
||
|
targetPath: $(Build.ArtifactStagingDirectory)
|
||
|
|
||
|
- job: Windows
|
||
|
displayName: "Windows build"
|
||
|
pool:
|
||
|
vmImage: "vs2017-win2016"
|
||
|
steps:
|
||
|
- task: DownloadSecureFile@1
|
||
|
inputs:
|
||
|
secureFile: 'z3.snk'
|
||
|
- script: scripts\mk_win_dist.cmd
|
||
|
# - script: git clone https://github.com/z3prover/z3test z3test
|
||
|
# - script: python z3test/scripts/test_benchmarks.py build-dist\z3.exe z3test/regressions/smt2
|
||
|
- script: xcopy dist\*.zip $(Build.ArtifactStagingDirectory)\* /y
|
||
|
- task: PublishPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Windows'
|
||
|
targetPath: $(Build.ArtifactStagingDirectory)
|
||
|
|
||
|
|
||
|
- job: NuGet
|
||
|
displayName: "Create Nuget Package"
|
||
|
dependsOn:
|
||
|
- Mac
|
||
|
- Ubuntu
|
||
|
- Windows
|
||
|
steps:
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Windows'
|
||
|
targetPath: tmp
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Mac'
|
||
|
targetPath: tmp
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Ubuntu'
|
||
|
targetPath: tmp
|
||
|
- script: |
|
||
|
cd scripts
|
||
|
python mk_nuget_task.py ../tmp $(z3Version) $(Build.SourceVersion)
|
||
|
cd ..
|
||
|
# - task: NuGetCommand@2
|
||
|
# inputs:
|
||
|
# command: pack
|
||
|
# packagesToPack: scripts/out/*.nuspec
|
||
|
# packDestination: $(Build.ArtifactStagingDirectory)
|
||
|
# - task: NuGetCommand@2
|
||
|
# inputs:
|
||
|
# command: 'pack'
|
||
|
# packagesToPack: scripts/out/*.nuspec
|
||
|
# includesymbols: true
|
||
|
# packDestination: $(Build.ArtifactStagingDirectory)
|
||
|
|
||
|
# Not available as a task?
|
||
|
# - script: |
|
||
|
# cd scripts
|
||
|
# EsprClient.exe sign -a authorization.json -p policy.json -i out/nuget_sign_input.json -o out/diagnostics.json
|
||
|
# cd ..
|
||
|
|
||
|
- job: Python
|
||
|
displayName: "Python packaging"
|
||
|
dependsOn:
|
||
|
- Manylinux
|
||
|
- Windows
|
||
|
pool:
|
||
|
vmImage: "ubuntu-16.04"
|
||
|
steps:
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Windows'
|
||
|
targetPath: $(Agent.TempDirectory)
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Manylinux'
|
||
|
targetPath: $(Agent.TempDirectory)
|
||
|
- script: cd $(Agent.TempDirectory); mkdir linux-bin; cd linux-bin; unzip ../*centos*.zip
|
||
|
- script: cd $(Agent.TempDirectory); mkdir win32-bin; cd win32-bin; unzip ../*x86-win*.zip
|
||
|
- script: cd $(Agent.TempDirectory); mkdir win64-bin; cd win64-bin; unzip ../*x64-win*.zip
|
||
|
- script: python -m pip install --user -U setuptools wheel
|
||
|
- script: cd src/api/python; python setup.py sdist
|
||
|
# take a look at this PREMIUM HACK I came up with to get around the fact that the azure variable syntax overloads the bash syntax for subshells
|
||
|
- script: cd src/api/python; echo $(Agent.TempDirectory)/linux-bin/* | xargs printf 'PACKAGE_FROM_RELEASE=%s\n' | xargs -I '{}' env '{}' python setup.py bdist_wheel
|
||
|
- script: cd src/api/python; echo $(Agent.TempDirectory)/win32-bin/* | xargs printf 'PACKAGE_FROM_RELEASE=%s\n' | xargs -I '{}' env '{}' python setup.py bdist_wheel
|
||
|
- script: cd src/api/python; echo $(Agent.TempDirectory)/win64-bin/* | xargs printf 'PACKAGE_FROM_RELEASE=%s\n' | xargs -I '{}' env '{}' python setup.py bdist_wheel
|
||
|
- task: PublishPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Python packages'
|
||
|
targetPath: src/api/python/dist
|
||
|
|
||
|
- job: Deploy
|
||
|
displayName: "Deploy into GitHub"
|
||
|
dependsOn:
|
||
|
- Mac
|
||
|
- Ubuntu
|
||
|
- Windows
|
||
|
steps:
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Windows'
|
||
|
targetPath: tmp
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Mac'
|
||
|
targetPath: tmp
|
||
|
- task: DownloadPipelineArtifact@0
|
||
|
inputs:
|
||
|
artifactName: 'Ubuntu'
|
||
|
targetPath: tmp
|
||
|
# - task: DownloadPipelineArtifact@0
|
||
|
# inputs:
|
||
|
# artifactName: 'NuGet'
|
||
|
# targetPath: tmp
|
||
|
- task: GitHubRelease@0
|
||
|
inputs:
|
||
|
gitHubConnection: Z3GitHub
|
||
|
repositoryName: 'Z3Prover/z3'
|
||
|
action: 'delete'
|
||
|
# target: '$(Build.SourceVersion)'
|
||
|
tagSource: 'manual'
|
||
|
tag: 'Nightly'
|
||
|
- task: GitHubRelease@0
|
||
|
inputs:
|
||
|
gitHubConnection: Z3GitHub
|
||
|
repositoryName: 'Z3Prover/z3'
|
||
|
action: 'create'
|
||
|
# target: '$(Build.SourceVersion)'
|
||
|
tagSource: 'manual'
|
||
|
tag: 'Nightly'
|
||
|
title: 'Nightly'
|
||
|
releaseNotesSource: 'input'
|
||
|
releaseNotes: 'nightly build'
|
||
|
assets: 'tmp/*'
|
||
|
assetUploadMode: 'replace'
|
||
|
isDraft: false
|
||
|
isPreRelease: true
|
||
|
|
||
|
|
||
|
# TBD: run regression tests on generated binaries.
|