mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-22 05:28:42 +00:00

* Fix installer downloads for specific releases Github download urls for a specific release uses the pattern `../releases/download/[RELEASE]/..`, which differs from the latest release URL which uses `../releases/latest/download/..`. For convenience, if `BINSTALL_VERSION` is set but doesn't start with `v`, the v is prefixed. * ci: Set BINSTALL_VERSION in install script tests When running the install-script workflow in Github Actions, add matrix options for not setting the variable, setting it to the latest release with the `v` prefix, and setting it to the latest release without the `v` prefix.
152 lines
4.7 KiB
YAML
152 lines
4.7 KiB
YAML
name: Test install-script
|
|
|
|
on:
|
|
merge_group:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- synchronize
|
|
paths:
|
|
- install-from-binstall-release.ps1
|
|
- install-from-binstall-release.sh
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- install-from-binstall-release.ps1
|
|
- install-from-binstall-release.sh
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref || github.event.pull_request.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
unix:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [macos-latest, ubuntu-latest]
|
|
set_cargo_home: [t, f]
|
|
set_binstall_version: ['no', 'with-v', 'without-v']
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set `CARGO_HOME`
|
|
if: matrix.set_cargo_home == 't'
|
|
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"
|
|
|
|
- name: Set `BINSTALL_VERSION`
|
|
if: matrix.set_binstall_version != 'no'
|
|
env:
|
|
STRIP_V: ${{ matrix.set_cargo_home }}
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: |
|
|
# fetch most recent release tag.
|
|
BINSTALL_VERSION="$(gh release list --json name --jq '[.[] | select(.name | startswith("v")) | .name] | first')"
|
|
if [[ $STRIP_V == 'without-v' ]]; then BINSTALL_VERSION="${BINSTALL_VERSION#v*}"; fi
|
|
echo "Setting BINSTALL_VERSION=$BINSTALL_VERSION"
|
|
echo "BINSTALL_VERSION=$BINSTALL_VERSION" >> "$GITHUB_ENV"
|
|
|
|
- name: Install `cargo-binstall` using scripts
|
|
run: ./install-from-binstall-release.sh
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.CI_RELEASE_TEST_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Verify `cargo-binstall` installation
|
|
run: |
|
|
which cargo-binstall
|
|
cargo binstall -vV
|
|
|
|
windows:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
set_cargo_home: [t, f]
|
|
set_binstall_version: ['no', 'with-v', 'without-v']
|
|
|
|
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"
|
|
|
|
- name: Set `BINSTALL_VERSION`
|
|
if: matrix.set_binstall_version != 'no'
|
|
shell: bash
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
STRIP_V: ${{ matrix.set_cargo_home }}
|
|
run: |
|
|
# fetch most recent release name.
|
|
BINSTALL_VERSION="$(gh release list --json name --jq '[.[] | select(.name | startswith("v")) | .name] | first')"
|
|
if [[ $STRIP_V == 'without-v' ]]; then BINSTALL_VERSION="${BINSTALL_VERSION#v*}"; fi
|
|
echo "Setting BINSTALL_VERSION=$BINSTALL_VERSION"
|
|
echo "BINSTALL_VERSION=$BINSTALL_VERSION" >> "$GITHUB_ENV"
|
|
|
|
- name: Install `cargo-binstall` using scripts
|
|
run: ./install-from-binstall-release.ps1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.CI_RELEASE_TEST_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Verify `cargo-binstall` installation
|
|
run: cargo binstall -vV
|
|
|
|
windows-bash:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
set_cargo_home: [t, f]
|
|
set_binstall_version: ['no', 'with-v', 'without-v']
|
|
|
|
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"
|
|
|
|
- name: Set `BINSTALL_VERSION`
|
|
if: matrix.set_binstall_version != 'no'
|
|
shell: bash
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
STRIP_V: ${{ matrix.set_cargo_home }}
|
|
run: |
|
|
# fetch most recent release name.
|
|
BINSTALL_VERSION="$(gh release list --json name --jq '[.[] | select(.name | startswith("v")) | .name] | first')"
|
|
if [[ $STRIP_V == 'without-v' ]]; then BINSTALL_VERSION="${BINSTALL_VERSION#v*}"; fi
|
|
echo "Setting BINSTALL_VERSION=$BINSTALL_VERSION"
|
|
echo "BINSTALL_VERSION=$BINSTALL_VERSION" >> "$GITHUB_ENV"
|
|
|
|
- name: Install `cargo-binstall` using scripts
|
|
shell: bash
|
|
run: ./install-from-binstall-release.sh
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.CI_RELEASE_TEST_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Verify `cargo-binstall` installation
|
|
shell: bash
|
|
run: cargo binstall -vV
|