fix: use cargo:cargo-binstall as dependency for cargo-binstall #6093
Workflow file for this run
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
name: test | |
on: | |
push: | |
tags: ["v*"] | |
branches: ["main", "mise"] | |
pull_request: | |
branches: ["main"] | |
workflow_dispatch: | |
workflow_call: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
MISE_TRUSTED_CONFIG_PATHS: ${{ github.workspace }} | |
MISE_EXPERIMENTAL: 1 | |
RUST_BACKTRACE: 1 | |
GITHUB_TOKEN: ${{ secrets.RTX_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} | |
NPM_CONFIG_FUND: false | |
permissions: | |
pull-requests: write | |
jobs: | |
unit: | |
strategy: | |
fail-fast: false | |
matrix: { os: [ubuntu-latest, macos-latest] } | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 20 | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
ref: ${{ github.head_ref }} | |
token: ${{ secrets.RTX_GITHUB_BOT_TOKEN || github.token }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: test-${{ matrix.os }} | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: nextest,cargo-deny,cargo-msrv,cargo-machete | |
- run: | | |
cargo build --all-features | |
echo "$PWD/target/debug" >> "$GITHUB_PATH" | |
- run: npm i | |
- run: mise install | |
- run: mise x -- cargo nextest run --all-features | |
- run: cargo deny check | |
- run: cargo msrv verify | |
- run: cargo machete --with-metadata | |
- run: ./scripts/test-standalone.sh | |
- run: mise run lint | |
- run: mise test-tool --all | |
env: { MISE_USE_VERSIONS_HOST: 0, MISE_EXPERIMENTAL: 1 } | |
nightly: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
ref: ${{ github.head_ref }} | |
token: ${{ secrets.RTX_GITHUB_BOT_TOKEN || github.token }} | |
- run: rustup default nightly | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: nightly | |
- run: | | |
cargo build --all-features | |
echo "$PWD/target/debug" >> "$GITHUB_PATH" | |
- run: mise install | |
- run: mise run test:shuffle | |
coverage: | |
name: coverage-${{matrix.tranche}} | |
#container: ghcr.io/jdx/mise:github-actions | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
tranche: [0, 1, 2, 3] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: coverage | |
save-if: ${{ matrix.tranche == 3 }} | |
- name: Install build and test dependencies | |
run: | | |
sudo apt-get update && sudo apt-get install \ | |
bison \ | |
build-essential \ | |
direnv \ | |
fd-find \ | |
fish \ | |
pipx \ | |
python3-venv \ | |
zsh | |
- run: npm i | |
- run: | | |
mkdir -p "$HOME/.local/bin" | |
ln -s "$(which fdfind)" "$HOME/.local/bin/fd" | |
echo "$HOME/.local/bin" >> "$GITHUB_PATH" | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-llvm-cov | |
- name: Test w/ coverage | |
uses: nick-fields/retry@v3 | |
env: | |
GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
MISE_GITHUB_BOT_TOKEN: ${{ secrets.RTX_GITHUB_BOT_TOKEN }} | |
MISE_EXPERIMENTAL: "1" | |
TEST_TRANCHE: ${{matrix.tranche}} | |
TEST_TRANCHE_COUNT: 4 | |
TEST_ALL: ${{github.ref_name == 'release' && '1' || '0'}} | |
with: | |
timeout_minutes: 30 | |
retry_wait_seconds: 30 | |
max_attempts: 2 | |
command: ./tasks/test/coverage | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-${{matrix.tranche}}.lcov | |
path: coverage-${{matrix.tranche}}.lcov | |
if-no-files-found: error | |
coverage-report: | |
name: coverage-report | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
needs: coverage | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-*.lcov | |
path: . | |
merge-multiple: true | |
- run: | | |
pip install lcov_cobertura | |
npx lcov-result-merger 'coverage-*.lcov' coverage.lcov | |
lcov_cobertura coverage.lcov --output coverage.xml | |
- uses: codacy/codacy-coverage-reporter-action@v1 | |
continue-on-error: true | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: coverage.lcov | |
windows-unit: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: test-windows-latest | |
# TODO: enable when we can remove continue-on-error: | |
# - name: cargo test | |
# uses: nick-fields/retry@v3 | |
# with: | |
# timeout_minutes: 30 | |
# retry_wait_seconds: 30 | |
# max_attempts: 2 | |
# command: cargo test | |
- run: | | |
cargo build | |
Add-Content $env:GITHUB_PATH "$env:GITHUB_WORKSPACE\target\debug" | |
- run: mise install | |
- run: mise test-tool --all | |
env: | |
MISE_USE_VERSIONS_HOST: 0 | |
MISE_EXPERIMENTAL: 1 | |
MISE_DISABLE_TOOLS: | | |
1password-cli | |
- run: cargo test | |
continue-on-error: true | |
windows-e2e: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: test-windows-latest | |
save-if: false | |
- run: cargo build | |
- run: Add-Content $env:GITHUB_PATH "$PWD\target\debug" | |
- name: e2e | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 30 | |
retry_wait_seconds: 30 | |
max_attempts: 2 | |
command: pwsh e2e-win\run.ps1 | |
hyperfine: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
- run: curl https://mise.run | sh | |
- run: cargo build --release | |
- run: echo "$PWD/target/release" >> "$GITHUB_PATH" | |
- run: mise i | |
- run: mise x hyperfine -- hyperfine --warmup 10 --min-runs 200 "$HOME/.local/bin/mise env" "target/release/mise env" | |
- run: mise x hyperfine -- hyperfine --warmup 10 --min-runs 200 "$HOME/.local/bin/mise ls" "target/release/mise ls" |