mirror of
https://github.com/starship/starship.git
synced 2026-06-22 02:02:12 +07:00
ci: Add GitHub releases to CI (#95)
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
jobs:
|
||||
# Check formatting
|
||||
- job: ${{ parameters.name }}
|
||||
displayName: Check rustfmt
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- template: azure-install-rust.yml
|
||||
parameters:
|
||||
rust_version: stable
|
||||
- script: |
|
||||
rustup component add rustfmt
|
||||
displayName: Install rustfmt
|
||||
- script: |
|
||||
cargo fmt --all -- --check
|
||||
displayName: Check formatting
|
||||
@@ -1,13 +0,0 @@
|
||||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
displayName: ${{ parameters.displayName }}
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
|
||||
steps:
|
||||
- template: azure-install-rust.yml
|
||||
parameters:
|
||||
rust_version: nightly
|
||||
|
||||
- script: cargo check --all
|
||||
displayName: cargo +nightly check --all
|
||||
@@ -1,26 +0,0 @@
|
||||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
displayName: ${{ parameters.displayName }}
|
||||
strategy:
|
||||
matrix:
|
||||
Linux:
|
||||
vmImage: ubuntu-16.04
|
||||
MacOS:
|
||||
vmImage: macOS-10.13
|
||||
# # Temporarily disabling Windows tests while I'm away
|
||||
# # Will reenable Windows tests once I'm able to troubleshoot Windows bugs
|
||||
# Windows:
|
||||
# vmImage: vs2017-win2016
|
||||
pool:
|
||||
vmImage: $(vmImage)
|
||||
|
||||
steps:
|
||||
- template: azure-install-rust.yml
|
||||
parameters:
|
||||
rust_version: stable
|
||||
|
||||
- template: azure-setup-test-env.yml
|
||||
|
||||
# "-Z unstable-options" is required for "--include-ignored"
|
||||
- script: cargo test -- -Z unstable-options --include-ignored
|
||||
displayName: cargo test
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 }}
|
||||
@@ -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 "not_necessery@dont.need"
|
||||
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
|
||||
@@ -1,3 +1,7 @@
|
||||
# defaults for any parameters that aren't specified
|
||||
parameters:
|
||||
rust_version: stable
|
||||
|
||||
steps:
|
||||
# Linux and macOS
|
||||
- script: |
|
||||
@@ -18,8 +22,14 @@ steps:
|
||||
RUSTUP_TOOLCHAIN: ${{parameters.rust_version}}
|
||||
displayName: "Install rust (windows)"
|
||||
condition: eq(variables['Agent.OS'], 'Windows_NT')
|
||||
# All platforms.
|
||||
# Install additional components:
|
||||
- ${{ each component in parameters.components }}:
|
||||
- script: rustup component add ${{ component }}
|
||||
|
||||
# All platforms
|
||||
- script: |
|
||||
rustc -Vv
|
||||
cargo -V
|
||||
rustup -V
|
||||
rustup component list --installed
|
||||
rustc -Vv
|
||||
cargo -V
|
||||
displayName: Query rust and cargo versions
|
||||
@@ -0,0 +1,16 @@
|
||||
jobs:
|
||||
# Check formatting
|
||||
- job: ${{ parameters.name }}
|
||||
displayName: Check rustfmt
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- template: install-rust.yml
|
||||
parameters:
|
||||
rust_version: stable
|
||||
- script: |
|
||||
rustup component add rustfmt
|
||||
displayName: Install rustfmt
|
||||
- script: |
|
||||
cargo fmt --all -- --check
|
||||
displayName: Check formatting
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
parameters:
|
||||
rust_version: stable
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
displayName: ${{ parameters.displayName }} ${{parameters.rust_version}}
|
||||
strategy:
|
||||
matrix:
|
||||
Linux:
|
||||
vmImage: ubuntu-16.04
|
||||
|
||||
${{ if parameters.cross }}:
|
||||
MacOS:
|
||||
vmImage: macOS-10.13
|
||||
# Temporarily disable Windows support
|
||||
# Windows:
|
||||
# vmImage: vs2017-win2016
|
||||
pool:
|
||||
vmImage: $(vmImage)
|
||||
|
||||
steps:
|
||||
- template: install-rust.yml
|
||||
- template: setup-test-env.yml
|
||||
- script: |
|
||||
cargo test -- -Z unstable-options --include-ignored
|
||||
env:
|
||||
CI: "true"
|
||||
displayName: cargo test
|
||||
Reference in New Issue
Block a user