Skip to content

chore(deps): lock file maintenance #19692

chore(deps): lock file maintenance

chore(deps): lock file maintenance #19692

Workflow file for this run

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: ${{ github.event_name != 'push' }}
env:
CARGO_TERM_COLOR: always
MISE_TRUSTED_CONFIG_PATHS: ${{ github.workspace }}
MISE_EXPERIMENTAL: 1
MISE_LOCKFILE: 1
RUST_BACKTRACE: 1
GITHUB_TOKEN: ${{ secrets.MISE_GH_TOKEN || secrets.GITHUB_TOKEN }}
permissions:
pull-requests: write
jobs:
build-ubuntu:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: build
save-if: false
- run: |
cargo build --all-features
echo "$PWD/target/debug" >> "$GITHUB_PATH"
- run: mise -v
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: mise-ubuntu-latest
path: target/debug/mise
- uses: ./.github/actions/mise-tools
build-windows:
runs-on: windows-latest
timeout-minutes: 60
env:
MISE_DATA_DIR: ~/.local/share/mise
MISE_CACHE_DIR: ~/.cache/mise
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: build
save-if: ${{ github.ref == 'refs/heads/main' }}
- shell: pwsh
run: |
cargo build
Add-Content $env:GITHUB_PATH "$env:GITHUB_WORKSPACE\target\debug"
- run: mise -v
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: mise-windows-latest
path: target/debug/mise.exe
- uses: ./.github/actions/mise-tools
unit:
strategy:
fail-fast: false
# matrix: { os: [ubuntu-latest, macos-latest] }
matrix: { os: [macos-latest] }
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: build
save-if: ${{ github.ref == 'refs/heads/main' }}
- run: |
cargo build --all-features
echo "$PWD/target/debug" >> "$GITHUB_PATH"
- uses: ./.github/actions/mise-tools
- run: mise x -- cargo test --all-features
nightly:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- run: rustup default nightly
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: nightly
save-if: ${{ github.ref == 'refs/heads/main' }}
- run: |
cargo build --all-features
echo "$PWD/target/debug" >> "$GITHUB_PATH"
- uses: ./.github/actions/mise-tools
- run: mise run test
lint:
runs-on: ubuntu-latest
timeout-minutes: 15
needs: [build-ubuntu]
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- uses: rui314/setup-mold@v1
- uses: taiki-e/install-action@0aa4f22591557b744fe31e55dbfcdfea74a073f7 # v2
with:
tool: cargo-deny,cargo-msrv,cargo-machete
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: build
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: mise-ubuntu-latest
path: target/debug
- run: echo "$PWD/target/debug" >> "$GITHUB_PATH" && chmod +x target/debug/mise
- uses: ./.github/actions/mise-tools
- run: mise x -- bun i
- run: cargo deny check
- run: cargo msrv verify
- run: cargo machete --with-metadata
- run: ./scripts/test-standalone.sh
- run: mise run lint
- run: cargo clippy -- -D warnings
- run: cargo clippy --all-features --all-targets -- -D warnings
coverage:
name: coverage-${{matrix.tranche}}
runs-on: ubuntu-latest
needs: [build-ubuntu]
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
tranche: [0, 1, 2, 3, 4, 5, 6, 7]
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
- name: Fetch token from pool
id: token
uses: ./.github/actions/fetch-token
with:
api-secret: ${{ secrets.MISE_VERSIONS_API_SECRET }}
- name: Set GITHUB_TOKEN from pool
if: steps.token.outputs.token
run: echo "GITHUB_TOKEN=${{ steps.token.outputs.token }}" >> "$GITHUB_ENV"
- 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: |
mkdir -p "$HOME/.local/bin"
ln -s "$(which fdfind)" "$HOME/.local/bin/fd"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Dependencies for e2e/shell/test_nushell
run: npm install --global nushell
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: mise-ubuntu-latest
path: target/debug
- run: echo "$PWD/target/debug" >> "$GITHUB_PATH" && chmod +x target/debug/mise
- uses: ./.github/actions/mise-tools
- name: Test w/ coverage
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
env:
TEST_TRANCHE: ${{matrix.tranche}}
TEST_TRANCHE_COUNT: 8
TEST_ALL: ${{github.head_ref == 'release' && '1' || '0'}}
with:
timeout_minutes: 30
retry_wait_seconds: 30
max_attempts: 2
command: mise run test:coverage
windows-unit:
runs-on: windows-latest
timeout-minutes: 30
env:
MISE_DATA_DIR: ~/.local/share/mise
MISE_CACHE_DIR: ~/.cache/mise
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: build
save-if: ${{ github.ref == 'refs/heads/main' }}
- name: cargo test
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 30
retry_wait_seconds: 30
max_attempts: 2
command: cargo test
windows-e2e:
runs-on: windows-latest
timeout-minutes: 40
needs: [build-windows]
env:
MISE_DATA_DIR: ~/.local/share/mise
MISE_CACHE_DIR: ~/.cache/mise
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: mise-windows-latest
path: target/debug
- run: ls target\debug
- run: Add-Content $env:GITHUB_PATH "$env:GITHUB_WORKSPACE\target\debug"
- uses: ./.github/actions/mise-tools
- name: e2e
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 30
retry_wait_seconds: 30
max_attempts: 2
command: pwsh e2e-win\run.ps1
test-ci:
runs-on: ubuntu-latest
timeout-minutes: 1
needs:
- build-ubuntu
- build-windows
- unit
- nightly
- lint
- coverage
- windows-unit
- windows-e2e
if: always()
steps:
- name: Check CI job results
run: |
if [ "${{ needs.build-ubuntu.result }}" != "success" ]; then
echo "build-ubuntu failed or was skipped"
exit 1
fi
if [ "${{ needs.build-windows.result }}" != "success" ]; then
echo "build-windows failed or was skipped"
exit 1
fi
if [ "${{ needs.unit.result }}" != "success" ]; then
echo "unit failed or was skipped"
exit 1
fi
if [ "${{ needs.nightly.result }}" != "success" ]; then
echo "nightly failed or was skipped"
exit 1
fi
if [ "${{ needs.lint.result }}" != "success" ]; then
echo "lint failed or was skipped"
exit 1
fi
if [ "${{ needs.coverage.result }}" != "success" ]; then
echo "coverage failed or was skipped"
exit 1
fi
if [ "${{ needs.windows-unit.result }}" != "success" ]; then
echo "windows-unit failed or was skipped"
exit 1
fi
if [ "${{ needs.windows-e2e.result }}" != "success" ]; then
echo "windows-e2e failed or was skipped"
exit 1
fi
echo "All CI jobs completed successfully"