-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move CI from GitHub Actions to Azure DevOps Pipeline
- Loading branch information
1 parent
049259d
commit eb48d29
Showing
7 changed files
with
199 additions
and
177 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
name: $(Build.sourceBranchName)-$(Date:yyyyMMdd)$(Rev:.r) | ||
|
||
# Set global variables | ||
variables: | ||
crate_name: 'centerdevice-rs' | ||
rust_minimum_version: 1.36.0 | ||
# cf. https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops | ||
macos_image_name: 'macOS-latest' | ||
linux_image_name: 'ubuntu-18.04' | ||
|
||
trigger: | ||
branches: | ||
include: ['*'] | ||
tags: | ||
include: ['*'] | ||
|
||
schedules: | ||
- cron: "0 0 * * *" | ||
displayName: Daily midnight build | ||
branches: | ||
include: | ||
- master | ||
|
||
stages: | ||
- stage: Check_Build_Test | ||
displayName: "Check, Build, and Test" | ||
jobs: | ||
- job: Fmt | ||
strategy: | ||
matrix: | ||
linux-nightly: | ||
imageName: ${{ variables.linux_image_name }} | ||
rustup_toolchain: nightly | ||
pool: | ||
vmImage: $(imageName) | ||
steps: | ||
- template: templates/install_rust.yml | ||
parameters: | ||
rustup_toolchain: $(rustup_toolchain) | ||
- template: templates/version_information.yml | ||
- script: cargo fmt -- --check | ||
displayName: Run Fmt | ||
|
||
- job: Audit | ||
strategy: | ||
matrix: | ||
linux-stable: | ||
imageName: ${{ variables.linux_image_name }} | ||
rustup_toolchain: stable | ||
pool: | ||
vmImage: $(imageName) | ||
steps: | ||
- template: templates/install_rust.yml | ||
parameters: | ||
rustup_toolchain: $(rustup_toolchain) | ||
- template: templates/install_dependencies.yml | ||
- script: cargo install cargo-audit | ||
displayName: Install Cargo Audit | ||
- template: templates/version_information.yml | ||
- script: cargo audit | ||
displayName: Run Cargo Audit | ||
|
||
- job: Clippy | ||
strategy: | ||
matrix: | ||
mac-stable: | ||
imageName: ${{ variables.macos_image_name }} | ||
rustup_toolchain: stable | ||
linux-stable: | ||
imageName: ${{ variables.linux_image_name }} | ||
rustup_toolchain: stable | ||
pool: | ||
vmImage: $(imageName) | ||
steps: | ||
- template: templates/install_rust.yml | ||
parameters: | ||
rustup_toolchain: $(rustup_toolchain) | ||
- template: templates/install_dependencies.yml | ||
- template: templates/version_information.yml | ||
- script: cargo clippy --all --all-features -- -D warnings $(source ".clippy.args") | ||
displayName: Run Clippy | ||
|
||
- job: 'Build_n_Test' | ||
displayName: "Build and Test" | ||
strategy: | ||
matrix: | ||
mac-minimum-${{ variables.rust_minimum_version }}: | ||
imageName: ${{ variables.macos_image_name }} | ||
rustup_toolchain: ${{ variables.rust_minimum_version }} | ||
mac-stable: | ||
imageName: ${{ variables.macos_image_name }} | ||
rustup_toolchain: stable | ||
mac-beta: | ||
imageName: ${{ variables.macos_image_name }} | ||
rustup_toolchain: beta | ||
linux-minimum-${{ variables.rust_minimum_version }}: | ||
imageName: ${{ variables.linux_image_name }} | ||
rustup_toolchain: ${{ variables.rust_minimum_version }} | ||
linux-stable: | ||
imageName: ${{ variables.linux_image_name }} | ||
rustup_toolchain: stable | ||
linux-beta: | ||
imageName: ${{ variables.linux_image_name }} | ||
rustup_toolchain: beta | ||
pool: | ||
vmImage: $(imageName) | ||
steps: | ||
- template: templates/install_rust.yml | ||
parameters: | ||
rustup_toolchain: $(rustup_toolchain) | ||
- template: templates/install_dependencies.yml | ||
- template: templates/version_information.yml | ||
- script: cargo build --all --all-features --tests --examples --benches | ||
displayName: Cargo build | ||
- script: cargo test --all --all-features --examples | ||
displayName: Cargo test | ||
|
||
- stage: Publish_Release | ||
displayName: "Publish Release" | ||
dependsOn: Build_Release_Artefacts | ||
condition: startsWith(variables['build.sourceBranch'], 'refs/tags/') | ||
jobs: | ||
- job: 'Publish_To_GitHub' | ||
displayName: "Publish to GitHub" | ||
steps: | ||
- task: GitHubRelease@0 | ||
displayName: "Create GitHub Release" | ||
inputs: | ||
gitHubConnection: 'lukaspustina-releaseupload' | ||
repositoryName: '$(Build.Repository.Name)' | ||
action: create | ||
target: '$(Build.SourceVersion)' | ||
tagSource: 'auto' | ||
tagPattern: 'v.*' | ||
tag: $(tagName) | ||
isDraft: false | ||
isPreRelease: false | ||
addChangeLog: true | ||
compareWith: 'lastFullRelease' | ||
- job: 'Publish_To_Crates_Io' | ||
displayName: "Publish to crates.io" | ||
steps: | ||
- template: templates/install_rust.yml | ||
parameters: | ||
rustup_toolchain: stable | ||
- template: templates/install_dependencies.yml | ||
- template: templates/version_information.yml | ||
- script: cargo publish | ||
displayName: "Cargo publish" | ||
env: | ||
CARGO_REGISTRY_TOKEN: $(CARGO_REGISTRY_TOKEN) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
steps: | ||
- script: | | ||
echo "No dependencies required for this crate." | ||
displayName: Install Dependencies |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
parameters: | ||
rustup_toolchain: stable | ||
|
||
steps: | ||
- script: | | ||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain ${{ parameters.rustup_toolchain }} | ||
echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin" | ||
displayName: Install rust ${{ parameters.rustup_toolchain }} | ||
- script: rustup default ${{ parameters.rustup_toolchain }} | ||
displayName: Setting rust default toolchain to ${{ parameters.rustup_toolchain }} | ||
- script: rustup component add clippy | ||
displayName: Install clippy | ||
- script: rustup component add rustfmt | ||
displayName: Install rustfmt | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
steps: | ||
- download: current | ||
artifact: Cargo | ||
displayName: Restoring .cargo directory | ||
- publish: current | ||
artifact: Target | ||
displayName: Restoring target directory | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
steps: | ||
- publish: /home/vsts/.cargo | ||
artifact: Cargo | ||
displayName: Storing .cargo directory | ||
- publish: $(Build.SourcesDirectory)/target | ||
artifact: Target | ||
displayName: Storing target directory | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
steps: | ||
- script: | | ||
rustup --version | ||
rustup toolchain list | ||
rustc --version | ||
cargo --version | ||
cargo --list | ||
cargo clippy --version && echo "Clippy installed" | ||
cargo fmt --version && echo "Rustfmt installed" | ||
clang --version && echo "Clang installed" | ||
displayName: Gather Build Environment Information | ||
This file was deleted.
Oops, something went wrong.