diff --git a/.github/chglog/CHANGELOG.tpl.md b/.github/chglog/CHANGELOG.tpl.md
new file mode 100755
index 00000000..3346a56e
--- /dev/null
+++ b/.github/chglog/CHANGELOG.tpl.md
@@ -0,0 +1,49 @@
+{{ if .Versions -}}
+
+## [Unreleased]
+
+{{ if .Unreleased.CommitGroups -}}
+{{ range .Unreleased.CommitGroups -}}
+### {{ .Title }}
+{{ range .Commits -}}
+- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
+{{ end }}
+{{ end -}}
+{{ end -}}
+{{ end -}}
+
+{{ range .Versions }}
+
+## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
+{{ range .CommitGroups -}}
+### {{ .Title }}
+{{ range .Commits -}}
+- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
+{{ end }}
+{{ end -}}
+
+{{- if .RevertCommits -}}
+### Reverts
+{{ range .RevertCommits -}}
+- {{ .Revert.Header }}
+{{ end }}
+{{ end -}}
+
+{{- if .NoteGroups -}}
+{{ range .NoteGroups -}}
+### {{ .Title }}
+{{ range .Notes }}
+{{ .Body }}
+{{ end }}
+{{ end -}}
+{{ end -}}
+{{ end -}}
+
+{{- if .Versions }}
+[Unreleased]: {{ .Info.RepositoryURL }}/compare/{{ $latest := index .Versions 0 }}{{ $latest.Tag.Name }}...HEAD
+{{ range .Versions -}}
+{{ if .Tag.Previous -}}
+[{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}
+{{ end -}}
+{{ end -}}
+{{ end -}}
diff --git a/.github/chglog/RELEASE.tpl.md b/.github/chglog/RELEASE.tpl.md
new file mode 100755
index 00000000..465caeef
--- /dev/null
+++ b/.github/chglog/RELEASE.tpl.md
@@ -0,0 +1,29 @@
+{{ range .Versions }}
+## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }})
+
+{{ range .CommitGroups -}}
+### {{ .Title }}
+
+{{ range .Commits -}}
+* {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
+{{ end }}
+{{ end -}}
+
+{{- if .RevertCommits -}}
+### Reverts
+
+{{ range .RevertCommits -}}
+* {{ .Revert.Header }}
+{{ end }}
+{{ end -}}
+
+{{- if .NoteGroups -}}
+{{ range .NoteGroups -}}
+### {{ .Title }}
+
+{{ range .Notes }}
+{{ .Body }}
+{{ end }}
+{{ end -}}
+{{ end -}}
+{{ end -}}
diff --git a/.github/chglog/changelog.yml b/.github/chglog/changelog.yml
new file mode 100755
index 00000000..9ba3d0eb
--- /dev/null
+++ b/.github/chglog/changelog.yml
@@ -0,0 +1,29 @@
+style: github
+template: CHANGELOG.tpl.md
+info:
+ title: CHANGELOG
+ repository_url: https://github.com/starship/starship
+options:
+ commits:
+ # filters:
+ # Type:
+ # - feat
+ # - fix
+ # - perf
+ # - refactor
+ commit_groups:
+ title_maps:
+ feat: Features
+ fix: Bug Fixes
+ perf: Performance Improvements
+ refactor: Code Refactoring
+ ci: Continuous Integration
+ header:
+ pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
+ pattern_maps:
+ - Type
+ - Scope
+ - Subject
+ notes:
+ keywords:
+ - BREAKING CHANGE
diff --git a/.github/chglog/release.yml b/.github/chglog/release.yml
new file mode 100755
index 00000000..f2608cf3
--- /dev/null
+++ b/.github/chglog/release.yml
@@ -0,0 +1,28 @@
+style: github
+template: RELEASE.tpl.md
+info:
+ repository_url: https://github.com/starship/starship
+options:
+ commits:
+ # filters:
+ # Type:
+ # - feat
+ # - fix
+ # - perf
+ # - refactor
+ commit_groups:
+ title_maps:
+ feat: Features
+ fix: Bug Fixes
+ perf: Performance Improvements
+ refactor: Code Refactoring
+ ci: Continuous Integration
+ header:
+ pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
+ pattern_maps:
+ - Type
+ - Scope
+ - Subject
+ notes:
+ keywords:
+ - BREAKING CHANGE
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
deleted file mode 100644
index f202333a..00000000
--- a/.github/workflows/continuous-integration.yml
+++ /dev/null
@@ -1,100 +0,0 @@
-name: Continuous Integration
-on: [push, pull_request]
-jobs:
- # Run the `rustfmt` code formatter
- rustfmt:
- name: Rustfmt [Formatter]
- runs-on: ubuntu-latest
- steps:
- - uses: hecrj/setup-rust-action@master
- - uses: actions/checkout@master
- - name: Install rustfmt
- run: rustup component add rustfmt
- - name: Run rustfmt
- run: cargo fmt --all -- --check
-
- # Run the `clippy` linting tool
- clippy:
- name: Clippy [Linter]
- runs-on: ubuntu-latest
- steps:
- - uses: hecrj/setup-rust-action@master
- - uses: actions/checkout@master
- - name: Install clippy
- run: rustup component add clippy
- - name: Run clippy
- run: cargo clippy --all-targets --all-features -- -D clippy::all
-
- # Ensure that the project could be successfully compiled
- cargo_check:
- name: Compile
- runs-on: ubuntu-latest
- steps:
- - uses: hecrj/setup-rust-action@master
- - uses: actions/checkout@master
- - run: cargo check --all
-
- # Run tests on Linux, and macOS
- # On both Rust stable and Rust nightly
- test:
- name: Test Suite
- needs: [rustfmt, clippy, cargo_check]
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest, macOS-latest]
- rust: [stable, nightly]
- steps:
- # Install all the required dependencies for testing
- - uses: hecrj/setup-rust-action@master
- with:
- rust-version: ${{ matrix.rust }}
-
- # Install Node.js at a fixed version
- - uses: actions/setup-node@master
- with:
- node-version: "12.0.0"
-
- # Install Golang at a fixed version
- - uses: actions/setup-go@master
- with:
- go-version: "1.12.1"
-
- # Install Ruby at a fixed version
- - uses: actions/setup-ruby@master
- with:
- ruby-version: "2.6.3"
-
- # Install Python at a fixed version
- - uses: actions/setup-python@master
- with:
- python-version: "3.6.9"
-
- # Install dotnet at a fixed version
- - uses: actions/setup-dotnet@master
- with:
- dotnet-version: "2.2.402"
-
- # Run the ignored tests that expect the above setup
- - uses: actions/checkout@master
- - name: Run all tests
- run: cargo test -- -Z unstable-options --include-ignored
-
- # Run the tests in the Docker image
- docker_test:
- name: Test in Docker
- needs: [rustfmt, clippy, cargo_check]
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - name: Pull the pre-built Docker image
- run: docker pull starshipcommand/starship-test
- - name: Fix file permissions
- run: chmod -R a+w .
- - name: Build the Docker image
- run:
- docker build -f tests/Dockerfile --tag starshipcommand/starship-test --cache-from
- starshipcommand/starship-test .
- - name: Run tests in Docker
- run: docker run --rm -v $(pwd):/src/starship starshipcommand/starship-test
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
new file mode 100644
index 00000000..b9fbce85
--- /dev/null
+++ b/.github/workflows/workflow.yml
@@ -0,0 +1,222 @@
+name: Workflow
+on: [push, pull_request]
+jobs:
+ # Run the `rustfmt` code formatter
+ rustfmt:
+ name: Rustfmt [Formatter]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+ - run: rustup component add rustfmt
+ - uses: actions-rs/cargo@v1
+ with:
+ command: fmt
+ args: --all -- --check
+
+ # Run the `clippy` linting tool
+ clippy:
+ name: Clippy [Linter]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+ - run: rustup component add clippy
+ - uses: actions-rs/clippy-check@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ args: --all-targets --all-features -- -D clippy::all
+
+ # Run a security audit on dependencies
+ cargo_audit:
+ name: Cargo Audit [Security]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+ - run: cargo install --force cargo-audit
+ - run: cargo generate-lockfile
+ - uses: actions-rs/cargo@v1
+ with:
+ command: audit
+
+ # Ensure that the project could be successfully compiled
+ cargo_check:
+ name: Compile
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+ - uses: actions-rs/cargo@v1
+ with:
+ command: check
+ args: --all
+
+ # Run tests on Linux, and macOS
+ # On both Rust stable and Rust nightly
+ test:
+ name: Test Suite
+ needs: [cargo_check]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, macOS-latest]
+ rust: [stable, nightly]
+ steps:
+ # Checkout the branch being tested
+ - uses: actions/checkout@v1
+
+ # Install all the required dependencies for testing
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+
+ # Install Node.js at a fixed version
+ - uses: actions/setup-node@master
+ with:
+ node-version: "12.0.0"
+
+ # Install Golang at a fixed version
+ - uses: actions/setup-go@master
+ with:
+ go-version: "1.12.1"
+
+ # Install Ruby at a fixed version
+ - uses: actions/setup-ruby@master
+ with:
+ ruby-version: "2.6.3"
+
+ # Install Python at a fixed version
+ - uses: actions/setup-python@master
+ with:
+ python-version: "3.6.9"
+
+ # Install dotnet at a fixed version
+ - uses: actions/setup-dotnet@master
+ with:
+ dotnet-version: "2.2.402"
+
+ # Run the ignored tests that expect the above setup
+ - name: Run all tests
+ uses: actions-rs/cargo@v1
+ with:
+ command: test
+ args: -- -Z unstable-options --include-ignored
+
+ # Run the tests in the Docker image
+ docker_test:
+ name: Test in Docker
+ needs: [cargo_check]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@master
+ - name: Pull the pre-built Docker image
+ run: docker pull starshipcommand/starship-test
+ - name: Fix file permissions
+ run: chmod -R a+w .
+ - name: Build the Docker image
+ run:
+ docker build -f tests/Dockerfile --tag starshipcommand/starship-test --cache-from
+ starshipcommand/starship-test .
+ - name: Run tests in Docker
+ run: docker run --rm -v $(pwd):/src/starship starshipcommand/starship-test
+
+ # Publish all packages to Crates.io
+ cargo_publish:
+ if: startsWith(github.ref, 'refs/tags/v')
+ name: Publish Cargo Packages
+ needs: [test, docker_test]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+ - run: cargo install --force cargo-publish-all
+ - run: cargo-publish-all --token $CRATES_IO_TOKEN --yes
+
+ github_release:
+ if: startsWith(github.ref, 'refs/tags/v')
+ name: Create GitHub release [${{ matrix.target }}]
+ needs: [test, docker_test]
+ strategy:
+ fail-fast: false
+ matrix:
+ # In order to use different target names on parallel ubuntu builds,
+ # we use `ubuntu-latest` and `ubuntu-18.04` to include them separately
+ os: [ubuntu-latest, ubuntu-18.04, macOS-latest]
+ include:
+ - os: ubuntu-latest
+ target: x86_64-unknown-linux-gnu
+ bin: starship
+ name: starship-x86_64-unknown-linux-gnu.tar.gz
+ - os: ubuntu-18.04
+ target: x86_64-unknown-linux-musl
+ bin: starship
+ name: starship-x86_64-unknown-linux-musl.tar.gz
+ - os: macOS-latest
+ target: x86_64-apple-darwin
+ bin: starship
+ name: starship-x86_64-apple-darwin.tar.gz
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Install Rust toolchain
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+ target: ${{ matrix.target }}
+
+ - name: Install musl tools
+ if: matrix.target == 'x86_64-unknown-linux-musl'
+ run: sudo apt-get install -y musl-tools
+
+ - name: Build target
+ uses: actions-rs/cargo@v1
+ with:
+ command: build
+ args: --release --target ${{ matrix.target }}
+
+ - name: Prepare build artifacts
+ run: |
+ strip target/${{ matrix.target }}/release/${{ matrix.bin }}
+ cd target/${{ matrix.target }}/release
+ if [[ "${{ matrix.os }}" == "windows-latest" ]]
+ then
+ 7z a ../../../${{ matrix.name }} ${{ matrix.bin }}
+ else
+ tar czvf ../../../${{ matrix.name }} ${{ matrix.bin }}
+ fi
+ cd -
+
+ - name: Generate release notes
+ run: |
+ # Temporary fix for https://github.com/actions/setup-go/issues/14
+ export PATH=$PATH:$(go env GOPATH)/bin
+ go get -u github.com/git-chglog/git-chglog/cmd/git-chglog
+ git-chglog -c .github/chglog/release.yml $(git describe --tags $(git rev-list --tags --max-count=1)) > RELEASE.txt
+
+ - name: Create GitHub release ${{ matrix.target }}
+ uses: softprops/action-gh-release@v1
+ with:
+ files: ${{ matrix.name }}
+ body_path: RELEASE.txt
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index f2cb6cdb..00000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-trigger:
- tags:
- include: ["*"]
-
-stages:
- - stage: Release
- condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
- jobs:
- # Release binary on GitHub
- - template: ci/github-release.yml
- parameters:
- name: github_release
- rust_version: stable
- contents: |
- *
- !*.rlib
- !*.d
- !.*
- targets:
- - x86_64-unknown-linux-gnu
- - x86_64-unknown-linux-musl
- # 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: false
-
- # Publish package to Crates.io
- - template: ci/cargo-publish.yml
- parameters:
- name: cargo_publish
- displayName: Publish to Crates.io
diff --git a/ci/cargo-publish.yml b/ci/cargo-publish.yml
deleted file mode 100644
index 7d5141c8..00000000
--- a/ci/cargo-publish.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-parameters:
- rust_version: stable
-
-jobs:
- - job: ${{ parameters.name }}
- displayName: ${{ parameters.displayName }}
- pool:
- vmImage: ubuntu-16.04
- steps:
- - template: install-rust.yml
-
- - script: |
- cargo login $(CARGO_TOKEN)
- cargo publish
- displayName: Publish package to Crates.io
diff --git a/ci/github-release.yml b/ci/github-release.yml
deleted file mode 100644
index 68167d23..00000000
--- a/ci/github-release.yml
+++ /dev/null
@@ -1,157 +0,0 @@
-parameters:
- rust_version: stable
- github:
- isPreRelease: false
- repositoryName: "$(Build.Repository.Name)"
- displayName: "Release to GitHub"
- archiveName: "$(Build.Repository.Name)"
-
-jobs:
- - job: ${{ parameters.name }}
- displayName: ${{ parameters.displayName }}
- 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: "tar"
- tarCompression: "gz"
- archiveFile: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}-$(build.my_tag)-${{ build_target }}.tar.gz"
-
- - 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
- displayName: ${{ parameters.displayName }} (macOS)
- 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: "tar"
- tarCompression: "gz"
- archiveFile: "$(Build.ArtifactStagingDirectory)/${{ parameters.archiveName }}-$(build.my_tag)-${{ build_target }}.tar.gz"
-
- - 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
- displayName: ${{ parameters.displayName }} (Windows)
- 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: "zip"
- tarCompression: "None"
- 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 }}
diff --git a/ci/install-cross-rust.yml b/ci/install-cross-rust.yml
deleted file mode 100644
index 2be33c41..00000000
--- a/ci/install-cross-rust.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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
- cargo install --force --path .
- displayName: Install cross
- # All platforms
- - script: |
- rustup -V
- rustup component list --installed
- rustc -Vv
- cargo -V
- displayName: Query rust and cargo versions
diff --git a/ci/install-rust.yml b/ci/install-rust.yml
deleted file mode 100644
index 4ee2acea..00000000
--- a/ci/install-rust.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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 }}
-
- # All platforms
- - script: |
- rustup -V
- rustup component list --installed
- rustc -Vv
- cargo -V
- displayName: Query rust and cargo versions