diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39b7cef..0c593ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,15 +12,15 @@ permissions: jobs: install: - name: Rust ${{matrix.rust}} on ${{matrix.os == 'ubuntu' && 'Linux' || matrix.os == 'macos' && 'macOS' || matrix.os == 'windows' && 'Windows' || '???'}} - runs-on: ${{matrix.os}}-latest + name: Rust ${{matrix.rust}} on ${{matrix.os}} + runs-on: ${{matrix.os}} strategy: fail-fast: false matrix: - os: [ubuntu, macos, windows] + os: [ubuntu-latest, macos-latest, windows-latest, windows-11-arm, ubuntu-22.04-arm] rust: [nightly, beta, stable, 1.62.0, stable 18 months ago, stable minus 8 releases] include: - - os: ubuntu + - os: ubuntu-latest rust: 1.0.0 timeout-minutes: 45 steps: diff --git a/action.yml b/action.yml index 5281d42..64cdda2 100644 --- a/action.yml +++ b/action.yml @@ -8,7 +8,8 @@ branding: inputs: toolchain: description: Rust toolchain specification -- see https://rust-lang.github.io/rustup/concepts/toolchains.html#toolchain-specification - required: true + required: false + default: nightly targets: description: Comma-separated list of target triples to install for this toolchain required: false @@ -63,18 +64,28 @@ runs: - run: | : set $CARGO_HOME - echo CARGO_HOME=${CARGO_HOME:-${{runner.os == 'Windows' && '$USERPROFILE' || '$HOME'}}/.cargo} >> $GITHUB_ENV + echo CARGO_HOME=${CARGO_HOME:-"${{runner.os == 'Windows' && '$USERPROFILE\.cargo' || '$HOME/.cargo'}}"} >> $GITHUB_ENV shell: bash - run: | : install rustup if needed if ! command -v rustup &>/dev/null; then - curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused --location --silent --show-error --fail "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y + curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused --location --silent --show-error --fail https://sh.rustup.rs | sh -s -- --default-toolchain none -y echo "$CARGO_HOME/bin" >> $GITHUB_PATH fi if: runner.os != 'Windows' shell: bash + - run: | + : install rustup if needed on windows + if ! command -v rustup &>/dev/null; then + curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused --location --silent --show-error --fail https://win.rustup.rs/${{runner.arch == 'ARM64' && 'aarch64' || 'x86_64'}} --output '${{runner.temp}}\rustup-init.exe' + '${{runner.temp}}\rustup-init.exe' --default-toolchain none --no-modify-path -y + echo "$CARGO_HOME\bin" >> $GITHUB_PATH + fi + if: runner.os == 'Windows' + shell: bash + - name: rustup toolchain install ${{steps.parse.outputs.toolchain}} run: rustup toolchain install ${{steps.parse.outputs.toolchain}}${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update shell: bash