forked from starship/starship
-
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.
ci: Add GitHub releases to CI (starship#95)
- Loading branch information
Showing
17 changed files
with
367 additions
and
83 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 |
---|---|---|
@@ -1,23 +1,77 @@ | ||
jobs: | ||
# Check formatting | ||
- template: ci/azure-rustfmt.yml | ||
- template: ci/rustfmt.yml | ||
parameters: | ||
name: rustfmt | ||
displayName: Check formatting | ||
|
||
# Test with Rust stable | ||
- template: ci/azure-test-stable.yml | ||
# Run linter | ||
- template: ci/cargo-clippy.yml | ||
parameters: | ||
name: test_starship | ||
displayName: Test starship | ||
name: cargo_clippy | ||
displayName: Run linter | ||
|
||
# Test with Rust nightly | ||
- template: ci/azure-test-nightly.yml | ||
# Cargo check | ||
- template: ci/cargo-check.yml | ||
parameters: | ||
name: test_nightly | ||
displayName: Check starship with nightly | ||
name: cargo_check | ||
displayName: Cargo check | ||
|
||
# Run the integration tests in a Docker container | ||
- template: ci/azure-test-docker.yml | ||
parameters: | ||
############## | ||
# Test stage # | ||
############## | ||
|
||
# Test stable | ||
- template: ci/test.yml | ||
parameters: | ||
dependsOn: | ||
- cargo_check | ||
name: cargo_test_stable | ||
displayName: Cargo test | ||
cross: true # Test on Windows and macOS | ||
|
||
# Test nightly | ||
- template: ci/test.yml | ||
parameters: | ||
name: cargo_test_nightly | ||
displayName: Cargo test | ||
rust_version: nightly | ||
|
||
# Test docker | ||
# Runs integration tests as a starship developer would run them locally | ||
- template: ci/test-docker.yml | ||
parameters: | ||
name: test_docker | ||
displayName: Test starship Docker | ||
displayName: Docker test | ||
|
||
################ | ||
# Release stage # | ||
################ | ||
|
||
# Release binary | ||
- template: ci/github-release.yml | ||
parameters: | ||
name: github_release | ||
dependsOn: | ||
- rustfmt | ||
- cargo_check | ||
- cargo_clippy | ||
- cargo_test_stable | ||
- test_docker | ||
rust_version: stable | ||
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) | ||
contents: | | ||
* | ||
!*.rlib | ||
!*.d | ||
!.* | ||
targets: | ||
- x86_64-unknown-linux-gnu | ||
# Windows support temporarily disabled | ||
# - x86_64-pc-windows-gnu | ||
# - x86_64-pc-windows-msvc | ||
- x86_64-apple-darwin | ||
github: | ||
gitHubConnection: StarshipRelease | ||
repositoryName: starship/starship | ||
isPreRelease: true |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
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,13 @@ | ||
parameters: | ||
rust_version: stable | ||
|
||
jobs: | ||
- job: ${{ parameters.name }} | ||
displayName: ${{ parameters.displayName }} | ||
pool: | ||
vmImage: ubuntu-16.04 | ||
steps: | ||
- template: install-rust.yml | ||
|
||
- script: cargo check | ||
displayName: Check features |
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,13 @@ | ||
parameters: | ||
rust_version: stable | ||
|
||
jobs: | ||
- job: ${{ parameters.name }} | ||
displayName: ${{ parameters.displayName }} | ||
pool: | ||
vmImage: ubuntu-16.04 | ||
steps: | ||
- template: install-rust.yml | ||
|
||
- script: cargo clippy --all | ||
displayName: Run clippy |
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,166 @@ | ||
parameters: | ||
rust_version: stable | ||
github: | ||
isPreRelease: false | ||
repositoryName: "$(Build.Repository.Name)" | ||
dependsOn: [] | ||
displayName: "Release to github" | ||
tarCompression: "none" | ||
archiveType: "zip" | ||
archiveName: "$(Build.Repository.Name)" | ||
|
||
jobs: | ||
- job: ${{ parameters.name }} | ||
condition: ${{ parameters.condition }} | ||
displayName: ${{ parameters.displayName }} | ||
dependsOn: ${{ parameters.dependsOn }} | ||
pool: | ||
vmImage: ubuntu-16.04 | ||
steps: | ||
- template: install-cross-rust.yml | ||
|
||
- bash: | | ||
MY_TAG="$(Build.SourceBranch)" | ||
MY_TAG=${MY_TAG#refs/tags/} | ||
echo $MY_TAG | ||
echo "##vso[task.setvariable variable=build.my_tag]$MY_TAG" | ||
DATE="$(date +%Y-%m-%d)" | ||
echo "##vso[task.setvariable variable=build.date]$DATE" | ||
displayName: "Create date and tag variables" | ||
- ${{ each build_target in parameters.targets }}: | ||
- ? ${{ if not(or(eq(build_target, 'x86_64-apple-darwin'), eq(build_target, 'x86_64-pc-windows-msvc'))) }} | ||
: - script: | | ||
echo Start building ${{ build_target }} | ||
cross build --target ${{ build_target }} --release | ||
ls -l | ||
ls -l target/${{ build_target }}/release/* | ||
displayName: Relase build for target ${{ build_target }} | ||
- task: CopyFiles@2 | ||
displayName: Copy files for target ${{ build_target }} | ||
inputs: | ||
sourceFolder: "$(Build.SourcesDirectory)/target/${{ build_target }}/release" | ||
contents: ${{ parameters.contents }} | ||
targetFolder: "$(Build.BinariesDirectory)/${{ build_target }}" | ||
- task: ArchiveFiles@2 | ||
displayName: Gather assets | ||
inputs: | ||
rootFolderOrFile: "$(Build.BinariesDirectory)/${{ build_target }}" | ||
archiveType: ${{ parameters.archiveType }} | ||
tarCompression: ${{ parameters.tarCompression }} | ||
archiveFile: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}-$(build.my_tag)-${{ build_target }}.zip" | ||
- task: GitHubRelease@0 | ||
displayName: Create release | ||
inputs: | ||
gitHubConnection: ${{ parameters.github.gitHubConnection }} | ||
tagSource: manual | ||
title: "$(build.my_tag) - $(build.date)" | ||
tag: "$(build.my_tag)" | ||
assetUploadMode: replace | ||
action: edit | ||
assets: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}*" | ||
repositoryName: ${{ parameters.github.repositoryName }} | ||
isPreRelease: ${{ parameters.github.isPreRelease }} | ||
|
||
- ${{ each build_target in parameters.targets }}: | ||
- ${{ if eq(build_target, 'x86_64-apple-darwin') }}: | ||
- job: ${{ parameters.name }}_macOS | ||
condition: ${{ parameters.condition }} | ||
displayName: ${{ parameters.displayName }} (macOS) | ||
dependsOn: ${{ parameters.dependsOn }} | ||
pool: | ||
vmImage: macOS-10.13 | ||
steps: | ||
- template: install-rust.yml | ||
|
||
- bash: | | ||
MY_TAG="$(Build.SourceBranch)" | ||
MY_TAG=${MY_TAG#refs/tags/} | ||
echo $MY_TAG | ||
echo "##vso[task.setvariable variable=build.my_tag]$MY_TAG" | ||
DATE="$(date +%Y-%m-%d)" | ||
echo "##vso[task.setvariable variable=build.date]$DATE" | ||
displayName: "Create date and tag variables" | ||
- script: | | ||
echo Start building ${{ build_target }} | ||
cargo build --release | ||
ls -l | ||
ls -l target/release/* | ||
displayName: Relase build for target ${{ build_target }} | ||
- task: CopyFiles@2 | ||
displayName: Copy files for target ${{ build_target }} | ||
inputs: | ||
sourceFolder: "$(Build.SourcesDirectory)/target/release" | ||
contents: ${{ parameters.contents }} | ||
targetFolder: "$(Build.BinariesDirectory)/${{ build_target }}" | ||
- task: ArchiveFiles@2 | ||
displayName: Gather assets | ||
inputs: | ||
rootFolderOrFile: "$(Build.BinariesDirectory)/${{ build_target }}" | ||
archiveType: ${{ parameters.archiveType }} | ||
tarCompression: ${{ parameters.tarCompression }} | ||
archiveFile: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}-$(build.my_tag)-${{ build_target }}.zip" | ||
|
||
- task: GitHubRelease@0 | ||
displayName: Create release | ||
inputs: | ||
gitHubConnection: ${{ parameters.github.gitHubConnection }} | ||
tagSource: manual | ||
title: "$(build.my_tag) - $(build.date)" | ||
tag: "$(build.my_tag)" | ||
assetUploadMode: replace | ||
action: edit | ||
assets: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}*" | ||
repositoryName: ${{ parameters.github.repositoryName }} | ||
isPreRelease: ${{ parameters.github.isPreRelease }} | ||
|
||
- ${{ if eq(build_target, 'x86_64-pc-windows-msvc') }}: | ||
- job: ${{ parameters.name }}_msvc | ||
condition: ${{ parameters.condition }} | ||
displayName: ${{ parameters.displayName }} (Windows) | ||
dependsOn: ${{ parameters.dependsOn }} | ||
pool: | ||
vmImage: vs2017-win2016 | ||
steps: | ||
- template: install-rust.yml | ||
|
||
- bash: | | ||
MY_TAG="$(Build.SourceBranch)" | ||
MY_TAG=${MY_TAG#refs/tags/} | ||
echo $MY_TAG | ||
echo "##vso[task.setvariable variable=build.my_tag]$MY_TAG" | ||
DATE="$(date +%Y-%m-%d)" | ||
echo "##vso[task.setvariable variable=build.date]$DATE" | ||
displayName: "Create date and tag variables" | ||
- script: | | ||
echo Start building ${{ build_target }} | ||
cargo build --release | ||
ls -l | ||
ls -l target/release/* | ||
displayName: Relase build for target ${{ build_target }} | ||
- task: CopyFiles@2 | ||
displayName: Copy files for target ${{ build_target }} | ||
inputs: | ||
sourceFolder: "$(Build.SourcesDirectory)/target/release" | ||
contents: ${{ parameters.contents }} | ||
targetFolder: "$(Build.BinariesDirectory)/${{ build_target }}" | ||
- task: ArchiveFiles@2 | ||
displayName: Gather assets | ||
inputs: | ||
rootFolderOrFile: "$(Build.BinariesDirectory)/${{ build_target }}" | ||
archiveType: ${{ parameters.archiveType }} | ||
tarCompression: ${{ parameters.tarCompression }} | ||
archiveFile: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}-$(build.my_tag)-${{ build_target }}.zip" | ||
|
||
- task: GitHubRelease@0 | ||
displayName: Create release | ||
inputs: | ||
gitHubConnection: ${{ parameters.github.gitHubConnection }} | ||
tagSource: manual | ||
title: "$(build.my_tag) - $(build.date)" | ||
tag: "$(build.my_tag)" | ||
assetUploadMode: replace | ||
action: edit | ||
assets: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}*" | ||
repositoryName: ${{ parameters.github.repositoryName }} | ||
isPreRelease: ${{ parameters.github.isPreRelease }} |
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,47 @@ | ||
# defaults for any parameters that aren't specified | ||
parameters: | ||
rust_version: stable | ||
|
||
steps: | ||
# Linux and macOS | ||
- script: | | ||
set -e | ||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN | ||
echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin:/usr/local/cargo/bin" | ||
env: | ||
RUSTUP_TOOLCHAIN: ${{parameters.rust_version}} | ||
displayName: "Install rust (*nix)" | ||
condition: not(eq(variables['Agent.OS'], 'Windows_NT')) | ||
# Windows | ||
- script: | | ||
curl -sSf -o rustup-init.exe https://win.rustup.rs | ||
rustup-init.exe -y --default-toolchain %RUSTUP_TOOLCHAIN% | ||
set PATH=%PATH%;%USERPROFILE%\.cargo\bin | ||
echo "##vso[task.setvariable variable=PATH;]%PATH%;%USERPROFILE%\.cargo\bin" | ||
env: | ||
RUSTUP_TOOLCHAIN: ${{parameters.rust_version}} | ||
displayName: "Install rust (windows)" | ||
condition: eq(variables['Agent.OS'], 'Windows_NT') | ||
# Install additional components: | ||
- ${{ each component in parameters.components }}: | ||
- script: rustup component add ${{ component }} | ||
|
||
# TEMPORATY FIX UNTIL https://github.com/rust-embedded/cross/pull/169 is merged. | ||
- script: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "I merge the things" | ||
git clone https://github.com/rust-embedded/cross | ||
cd cross | ||
git remote add pitkley https://github.com/pitkley/cross | ||
git fetch pitkley | ||
git checkout 718a19c | ||
git merge -m "No pseudo tty" pitkley/docker-no-pseudo-tty | ||
cargo install --force --path . | ||
displayName: Instaling cross supprot | ||
# All platforms | ||
- script: | | ||
rustup -V | ||
rustup component list --installed | ||
rustc -Vv | ||
cargo -V | ||
displayName: Query rust and cargo versions |
Oops, something went wrong.