Install just via curl instead of extractions/setup-just #1195
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: ~ | |
| workflow_dispatch: ~ | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| javaversion: | |
| ['8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25'] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Install dependencies | |
| run: just install | |
| - name: Build Library | |
| run: just build | |
| - name: Set up Java ${{ matrix.javaversion }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: ${{ matrix.javaversion }} | |
| cache: 'maven' | |
| - name: Run test with Java ${{ matrix.javaversion }} | |
| run: EASYPOST_TEST_API_KEY=123 EASYPOST_PROD_API_KEY=123 just test-ci | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Install dependencies | |
| run: just install | |
| - name: Test coverage | |
| run: EASYPOST_TEST_API_KEY=123 EASYPOST_PROD_API_KEY=123 just coverage | |
| - name: Load Rust cache | |
| if: github.ref == 'refs/heads/master' | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Install grcov | |
| if: github.ref == 'refs/heads/master' | |
| run: cargo install grcov --version 0.8.13 | |
| - name: Convert coverage report | |
| if: github.ref == 'refs/heads/master' | |
| run: grcov target/site/jacoco/jacoco.xml --source-dir ./ --ignore "target/*" > coverage.lcov | |
| - name: Coverage | |
| if: github.ref == 'refs/heads/master' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Install checkstyle and style guide | |
| run: just install-checkstyle | |
| - name: Lint | |
| run: just lint | |
| - name: Upload Test results | |
| uses: actions/upload-artifact@master | |
| with: | |
| name: DependencyCheck report | |
| path: ${{github.workspace}}/target/dependency-check-report.html | |
| docs: | |
| if: github.ref == 'refs/heads/master' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '25' # Always use the most recent LTS JDK for building | |
| cache: 'maven' | |
| - name: Install Dependencies | |
| run: just install | |
| - name: Generate Docs | |
| run: just docs | |
| - name: Deploy docs | |
| uses: peaceiris/actions-gh-pages@v3 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: docs |