mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-19 12:08:43 +00:00
Fix installer downloads for specific releases (#1976)
* 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.
This commit is contained in:
parent
2417642284
commit
266e627928
3 changed files with 65 additions and 5 deletions
41
.github/workflows/install-script.yml
vendored
41
.github/workflows/install-script.yml
vendored
|
@ -31,6 +31,7 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, ubuntu-latest]
|
os: [macos-latest, ubuntu-latest]
|
||||||
set_cargo_home: [t, f]
|
set_cargo_home: [t, f]
|
||||||
|
set_binstall_version: ['no', 'with-v', 'without-v']
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
@ -44,6 +45,18 @@ jobs:
|
||||||
mkdir -p "${CARGO_HOME}/bin"
|
mkdir -p "${CARGO_HOME}/bin"
|
||||||
echo "CARGO_HOME=$CARGO_HOME" >> "$GITHUB_ENV"
|
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
|
- name: Install `cargo-binstall` using scripts
|
||||||
run: ./install-from-binstall-release.sh
|
run: ./install-from-binstall-release.sh
|
||||||
env:
|
env:
|
||||||
|
@ -59,6 +72,7 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
set_cargo_home: [t, f]
|
set_cargo_home: [t, f]
|
||||||
|
set_binstall_version: ['no', 'with-v', 'without-v']
|
||||||
|
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
@ -73,6 +87,19 @@ jobs:
|
||||||
mkdir -p "${CARGO_HOME}/bin"
|
mkdir -p "${CARGO_HOME}/bin"
|
||||||
echo "CARGO_HOME=$CARGO_HOME" >> "$GITHUB_ENV"
|
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
|
- name: Install `cargo-binstall` using scripts
|
||||||
run: ./install-from-binstall-release.ps1
|
run: ./install-from-binstall-release.ps1
|
||||||
env:
|
env:
|
||||||
|
@ -86,6 +113,7 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
set_cargo_home: [t, f]
|
set_cargo_home: [t, f]
|
||||||
|
set_binstall_version: ['no', 'with-v', 'without-v']
|
||||||
|
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
@ -100,6 +128,19 @@ jobs:
|
||||||
mkdir -p "${CARGO_HOME}/bin"
|
mkdir -p "${CARGO_HOME}/bin"
|
||||||
echo "CARGO_HOME=$CARGO_HOME" >> "$GITHUB_ENV"
|
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
|
- name: Install `cargo-binstall` using scripts
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./install-from-binstall-release.sh
|
run: ./install-from-binstall-release.sh
|
||||||
|
|
|
@ -2,10 +2,19 @@ $ErrorActionPreference = "Stop"
|
||||||
Set-PSDebug -Trace 1
|
Set-PSDebug -Trace 1
|
||||||
$tmpdir = $Env:TEMP
|
$tmpdir = $Env:TEMP
|
||||||
$BINSTALL_VERSION = $Env:BINSTALL_VERSION
|
$BINSTALL_VERSION = $Env:BINSTALL_VERSION
|
||||||
if (-not $BINSTALL_VERSION) {
|
if ($BINSTALL_VERSION -and $BINSTALL_VERSION -notlike 'v*') {
|
||||||
$BINSTALL_VERSION = 'latest'
|
# prefix version with v
|
||||||
|
$BINSTALL_VERSION = "v$BINSTALL_VERSION"
|
||||||
}
|
}
|
||||||
$base_url = "https://github.com/cargo-bins/cargo-binstall/releases/$BINSTALL_VERSION/download/cargo-binstall-"
|
# Fetch binaries from `[..]/releases/latest/download/[..]` if _no_ version is
|
||||||
|
# given, otherwise from `[..]/releases/download/VERSION/[..]`. Note the shifted
|
||||||
|
# location of '/download'.
|
||||||
|
$base_url = if (-not $BINSTALL_VERSION) {
|
||||||
|
"https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-"
|
||||||
|
} else {
|
||||||
|
"https://github.com/cargo-bins/cargo-binstall/releases/download/$BINSTALL_VERSION/cargo-binstall-"
|
||||||
|
}
|
||||||
|
|
||||||
$proc_arch = [Environment]::GetEnvironmentVariable("PROCESSOR_ARCHITECTURE", [EnvironmentVariableTarget]::Machine)
|
$proc_arch = [Environment]::GetEnvironmentVariable("PROCESSOR_ARCHITECTURE", [EnvironmentVariableTarget]::Machine)
|
||||||
if ($proc_arch -eq "AMD64") {
|
if ($proc_arch -eq "AMD64") {
|
||||||
$arch = "x86_64"
|
$arch = "x86_64"
|
||||||
|
|
|
@ -2,11 +2,21 @@
|
||||||
|
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
|
||||||
BINSTALL_VERSION="${BINSTALL_VERSION:-latest}"
|
if [[ -n "${BINSTALL_VERSION:-}" && "$BINSTALL_VERSION" != v* ]]; then
|
||||||
|
# prefix version with v
|
||||||
|
BINSTALL_VERSION="v$BINSTALL_VERSION"
|
||||||
|
fi
|
||||||
|
|
||||||
cd "$(mktemp -d)"
|
cd "$(mktemp -d)"
|
||||||
|
|
||||||
base_url="https://github.com/cargo-bins/cargo-binstall/releases/${BINSTALL_VERSION}/download/cargo-binstall-"
|
# Fetch binaries from `[..]/releases/latest/download/[..]` if _no_ version is
|
||||||
|
# given, otherwise from `[..]/releases/download/VERSION/[..]`. Note the shifted
|
||||||
|
# location of '/download'.
|
||||||
|
if [[ -z "${BINSTALL_VERSION:-}" ]]; then
|
||||||
|
base_url="https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-"
|
||||||
|
else
|
||||||
|
base_url="https://github.com/cargo-bins/cargo-binstall/releases/download/${BINSTALL_VERSION}/cargo-binstall-"
|
||||||
|
fi
|
||||||
|
|
||||||
os="$(uname -s)"
|
os="$(uname -s)"
|
||||||
if [ "$os" == "Darwin" ]; then
|
if [ "$os" == "Darwin" ]; then
|
||||||
|
|
Loading…
Add table
Reference in a new issue