diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be56a89..ab2047d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,27 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: extractions/setup-just@v3 + - name: Install just + shell: bash + run: | + set -euo pipefail + install_dir="${RUNNER_TEMP:-/tmp}/just-bin" + mkdir -p "$install_dir" + # Resolve the latest release tag via the github.com redirect to avoid + # api.github.com rate limits on shared runner egress IPs. + latest_url=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/casey/just/releases/latest) + just_version="${latest_url##*/tag/}" + case "$RUNNER_OS" in + Windows) asset="just-${just_version}-x86_64-pc-windows-msvc.zip" ;; + macOS) asset="just-${just_version}-x86_64-apple-darwin.tar.gz" ;; + *) asset="just-${just_version}-x86_64-unknown-linux-musl.tar.gz" ;; + esac + curl -fL "https://github.com/casey/just/releases/download/${just_version}/${asset}" -o "$install_dir/$asset" + case "$asset" in + *.zip) unzip -o "$install_dir/$asset" -d "$install_dir" ;; + *) tar -xzf "$install_dir/$asset" -C "$install_dir" ;; + esac + echo "$install_dir" >> "$GITHUB_PATH" - uses: astral-sh/setup-uv@v7 - uses: actions/setup-python@v6 with: @@ -28,7 +48,27 @@ jobs: pythonversion: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@v6 - - uses: extractions/setup-just@v3 + - name: Install just + shell: bash + run: | + set -euo pipefail + install_dir="${RUNNER_TEMP:-/tmp}/just-bin" + mkdir -p "$install_dir" + # Resolve the latest release tag via the github.com redirect to avoid + # api.github.com rate limits on shared runner egress IPs. + latest_url=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/casey/just/releases/latest) + just_version="${latest_url##*/tag/}" + case "$RUNNER_OS" in + Windows) asset="just-${just_version}-x86_64-pc-windows-msvc.zip" ;; + macOS) asset="just-${just_version}-x86_64-apple-darwin.tar.gz" ;; + *) asset="just-${just_version}-x86_64-unknown-linux-musl.tar.gz" ;; + esac + curl -fL "https://github.com/casey/just/releases/download/${just_version}/${asset}" -o "$install_dir/$asset" + case "$asset" in + *.zip) unzip -o "$install_dir/$asset" -d "$install_dir" ;; + *) tar -xzf "$install_dir/$asset" -C "$install_dir" ;; + esac + echo "$install_dir" >> "$GITHUB_PATH" - uses: astral-sh/setup-uv@v7 - uses: actions/setup-python@v6 with: @@ -49,7 +89,27 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: extractions/setup-just@v3 + - name: Install just + shell: bash + run: | + set -euo pipefail + install_dir="${RUNNER_TEMP:-/tmp}/just-bin" + mkdir -p "$install_dir" + # Resolve the latest release tag via the github.com redirect to avoid + # api.github.com rate limits on shared runner egress IPs. + latest_url=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/casey/just/releases/latest) + just_version="${latest_url##*/tag/}" + case "$RUNNER_OS" in + Windows) asset="just-${just_version}-x86_64-pc-windows-msvc.zip" ;; + macOS) asset="just-${just_version}-x86_64-apple-darwin.tar.gz" ;; + *) asset="just-${just_version}-x86_64-unknown-linux-musl.tar.gz" ;; + esac + curl -fL "https://github.com/casey/just/releases/download/${just_version}/${asset}" -o "$install_dir/$asset" + case "$asset" in + *.zip) unzip -o "$install_dir/$asset" -d "$install_dir" ;; + *) tar -xzf "$install_dir/$asset" -C "$install_dir" ;; + esac + echo "$install_dir" >> "$GITHUB_PATH" - uses: astral-sh/setup-uv@v7 - uses: actions/setup-python@v6 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5079010..815d481 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,27 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: extractions/setup-just@v3 + - name: Install just + shell: bash + run: | + set -euo pipefail + install_dir="${RUNNER_TEMP:-/tmp}/just-bin" + mkdir -p "$install_dir" + # Resolve the latest release tag via the github.com redirect to avoid + # api.github.com rate limits on shared runner egress IPs. + latest_url=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/casey/just/releases/latest) + just_version="${latest_url##*/tag/}" + case "$RUNNER_OS" in + Windows) asset="just-${just_version}-x86_64-pc-windows-msvc.zip" ;; + macOS) asset="just-${just_version}-x86_64-apple-darwin.tar.gz" ;; + *) asset="just-${just_version}-x86_64-unknown-linux-musl.tar.gz" ;; + esac + curl -fL "https://github.com/casey/just/releases/download/${just_version}/${asset}" -o "$install_dir/$asset" + case "$asset" in + *.zip) unzip -o "$install_dir/$asset" -d "$install_dir" ;; + *) tar -xzf "$install_dir/$asset" -C "$install_dir" ;; + esac + echo "$install_dir" >> "$GITHUB_PATH" - uses: astral-sh/setup-uv@v7 - uses: actions/setup-python@v6 with: