diff --git a/.github/workflows/install-script.yml b/.github/workflows/install-script.yml index 26f68e22d..fec2960e8 100644 --- a/.github/workflows/install-script.yml +++ b/.github/workflows/install-script.yml @@ -82,3 +82,33 @@ jobs: - name: Verify `cargo-binstall` installation run: cargo binstall -vV + + windows-bash: + strategy: + fail-fast: false + matrix: + set_cargo_home: [t, f] + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set `CARGO_HOME` + if: matrix.set_cargo_home == 't' + shell: bash + run: | + CARGO_HOME="$(mktemp -d 2>/dev/null || mktemp -d -t 'cargo-home')" + mkdir -p "${CARGO_HOME}/bin" + echo "CARGO_HOME=$CARGO_HOME" >> "$GITHUB_ENV" + echo "${CARGO_HOME}/bin" >> $GITHUB_PATH + + - name: Install `cargo-binstall` using scripts + shell: bash + run: ./install-from-binstall-release.sh + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Verify `cargo-binstall` installation + shell: bash + run: cargo binstall -vV diff --git a/install-from-binstall-release.sh b/install-from-binstall-release.sh index 7630eeb4a..90686cbaf 100755 --- a/install-from-binstall-release.sh +++ b/install-from-binstall-release.sh @@ -20,6 +20,12 @@ elif [ "$os" == "Linux" ]; then url="${base_url}${target}.tgz" curl -L --proto '=https' --tlsv1.2 -sSf "$url" | tar -xvzf - +elif [ "${OS-}" = "Windows_NT" ]; then + machine="$(uname -m)" + target="${machine}-pc-windows-msvc" + url="${base_url}${target}.zip" + curl -LO --proto '=https' --tlsv1.2 -sSf "$url" + unzip "cargo-binstall-${target}.zip" else echo "Unsupported OS ${os}" exit 1