chore(deps): lock file maintenance #19692
This file contains hidden or 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: ${{ 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" |