1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 14:54:16 +03:00
wezterm/azure-pipelines.yml

192 lines
6.5 KiB
YAML
Raw Normal View History

# vim:et:sw=2:ts=2:
2019-06-23 16:47:35 +03:00
trigger:
branches:
2019-06-23 17:12:12 +03:00
include: ['master']
2019-06-23 16:47:35 +03:00
tags:
include: ['*']
2019-06-27 02:27:06 +03:00
exclude: ['nightly*']
2019-06-23 18:36:56 +03:00
schedules:
2019-06-27 17:24:03 +03:00
- cron: '10 * * * *'
displayName: "scheduled build"
branches:
include: ['master']
2019-06-23 18:36:56 +03:00
2019-06-23 16:47:35 +03:00
jobs:
- job: 'Clippy'
pool:
vmImage: 'ubuntu-16.04'
steps:
2019-06-23 17:01:26 +03:00
- checkout: self
submodules: true
2019-06-23 17:33:43 +03:00
- script: |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN
echo "##vso[task.setvariable variable=PATH;]$HOME/.cargo/bin:$PATH"
displayName: Install rust
- script: |
rustup update
displayName: Update rust toolchains
2019-06-23 16:47:35 +03:00
- script: rustup component add clippy
displayName: Install clippy
2019-06-23 17:01:26 +03:00
- script: |
sudo ./get-deps
displayName: Install system dependencies
2019-06-23 16:47:35 +03:00
- script: cargo clippy --all
displayName: Run Clippy
2019-06-23 16:47:35 +03:00
- job: 'Rustfmt'
pool:
vmImage: 'ubuntu-16.04'
steps:
2019-06-23 17:33:43 +03:00
- script: |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN
echo "##vso[task.setvariable variable=PATH;]$HOME/.cargo/bin:$PATH"
displayName: Install rust
- script: |
rustup update
displayName: Update rust toolchains
2019-06-23 16:47:35 +03:00
- script: rustup component add rustfmt
displayName: Install Rustfmt
- script: cargo fmt --all -- --check
displayName: Check formatting
- job: 'Test'
# A list of vmImage names can be found at:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent
strategy:
matrix:
windows-stable:
imageName: 'vs2017-win2016'
rustup_toolchain: stable
mac-stable:
imageName: 'macos-10.14'
rustup_toolchain: stable
linux-stable:
imageName: 'ubuntu-16.04'
rustup_toolchain: stable
linux-beta:
imageName: 'ubuntu-16.04'
rustup_toolchain: beta
linux-nightly:
imageName: 'ubuntu-16.04'
rustup_toolchain: nightly
pool:
vmImage: $(imageName)
steps:
- checkout: self
submodules: true
- script: |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN
echo "##vso[task.setvariable variable=PATH;]$HOME/.cargo/bin:$PATH"
2019-06-23 17:33:43 +03:00
displayName: Install rust (posix)
2019-06-23 16:47:35 +03:00
condition: ne( variables['Agent.OS'], 'Windows_NT' )
- script: |
curl -sSf -o rustup-init.exe https://win.rustup.rs
rustup-init.exe -yv --default-toolchain %RUSTUP_TOOLCHAIN%
echo "##vso[task.setvariable variable=PATH;]%USERPROFILE%\.cargo\bin;%PATH%"
2019-06-23 17:33:43 +03:00
displayName: Install rust (windows)
2019-06-23 16:47:35 +03:00
condition: eq( variables['Agent.OS'], 'Windows_NT' )
- script: |
rustup update
displayName: Update rust toolchains
- script: |
rustc -vV
cargo -vV
displayName: Show installed rust+cargo version
- script: |
sudo ./get-deps
displayName: Install system dependencies
condition: ne( variables['Agent.OS'], 'Windows_NT' )
- script: cargo build --all
displayName: Cargo build
- script: cargo test --all
displayName: Cargo test
- job: 'Package'
strategy:
matrix:
windows-stable:
imageName: 'vs2017-win2016'
rustup_toolchain: stable
mac-stable:
imageName: 'macos-10.14'
rustup_toolchain: stable
linux-stable:
imageName: 'ubuntu-16.04'
rustup_toolchain: stable
pool:
vmImage: $(imageName)
steps:
- checkout: self
submodules: true
- script: |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN
echo "##vso[task.setvariable variable=PATH;]$HOME/.cargo/bin:$PATH"
2019-06-23 17:01:26 +03:00
displayName: Install rust (posix)
2019-06-23 16:47:35 +03:00
condition: ne( variables['Agent.OS'], 'Windows_NT' )
- script: |
curl -sSf -o rustup-init.exe https://win.rustup.rs
rustup-init.exe -yv --default-toolchain %RUSTUP_TOOLCHAIN%
echo "##vso[task.setvariable variable=PATH;]%USERPROFILE%\.cargo\bin;%PATH%"
2019-06-23 17:01:26 +03:00
displayName: install rust (windows)
2019-06-23 16:47:35 +03:00
condition: eq( variables['Agent.OS'], 'Windows_NT' )
- script: |
rustup update
displayName: Update rust toolchains
- script: |
rustc -vV
cargo -vV
displayName: Show installed rust+cargo version
- script: |
sudo ./get-deps
displayName: Install system dependencies
condition: ne( variables['Agent.OS'], 'Windows_NT' )
- script: cargo build --release --all
2019-06-23 17:01:26 +03:00
displayName: Build in release mode
- bash: ci/deploy.sh
2019-06-23 16:47:35 +03:00
displayName: Packaging
2019-06-23 17:33:43 +03:00
- task: GithubRelease@0
condition: and(succeeded(), ne(variables['Build.Reason'], 'Schedule'), startsWith(variables['Build.SourceBranch'], 'refs/tags/'), not(startsWith(variables['Build.SourceBranch'], 'refs/tags/nightly')))
displayName: Release from tag
inputs:
gitHubConnection: wez
repositoryName: wez/wezterm
action: edit
target: $(build.sourceVersion)
tagSource: manual
tag: $(wezterm.tagname)
assets: |
$(Build.SourcesDirectory)/*.zip
$(Build.SourcesDirectory)/*.deb
$(Build.SourcesDirectory)/*.tar.xz
$(Build.SourcesDirectory)/*.tar.gz
title: $(wezterm.tagname)
assetUploadMode: replace
addChangeLog: false
isPreRelease: false
isDraft: false
- task: GithubRelease@0
2019-06-27 00:14:58 +03:00
condition: and(succeeded(), eq(variables['Build.Reason'], 'Schedule'))
displayName: Release from nightly build
2019-06-23 17:33:43 +03:00
inputs:
gitHubConnection: wez
2019-06-23 18:36:56 +03:00
repositoryName: wez/wezterm
action: edit
target: c53ca64c33d1658602b9a3aaa412eca9c6544294
2019-06-23 18:38:42 +03:00
tagSource: manual
tag: nightly
2019-06-23 17:36:46 +03:00
assets: |
$(Build.SourcesDirectory)/*.zip
$(Build.SourcesDirectory)/*.deb
2019-10-14 10:40:20 +03:00
$(Build.SourcesDirectory)/*.tar.xz
$(Build.SourcesDirectory)/*.tar.gz
title: "Nightly Builds"
2019-06-23 18:36:56 +03:00
assetUploadMode: replace
2019-06-23 17:33:43 +03:00
addChangeLog: false
isPreRelease: true
isDraft: false
2019-06-27 03:23:57 +03:00
- bash: 'curl -u wez:$(github.pat) -X POST https://api.github.com/repos/wez/wezterm/pages/builds -H "Accept: application/vnd.github.mister-fantastic-preview+json"'
displayName: request github pages rebuild