Bump dependencies (#1531) #4345
This file contains 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: Test | |
on: | |
# Allow running this workflow manually from the Actions tab | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
# Run weekly on the default branch to make sure it always builds with the latest rust release | |
schedule: | |
- cron: '30 5 * * 1' | |
jobs: | |
rustfmt: | |
if: github.event_name != 'schedule' | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Install Rust nightly toolchain | |
run: rustup toolchain install --no-self-update nightly --profile minimal -c rustfmt | |
- name: Format check | |
run: cargo +nightly fmt --all -- --check | |
clippy: | |
if: github.event_name != 'schedule' | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-20.04 | |
flags: --all-features | |
- os: macos-14 | |
flags: --all-features | |
- os: windows-latest | |
flags: --no-default-features -F extensions | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- if: ${{ runner.os == 'macOS' }} | |
name: Install protoc | |
run: brew install protobuf | |
- if: ${{ runner.os == 'Linux' }} | |
name: Install protoc | |
run: sudo apt install -y protobuf-compiler | |
- if: ${{ runner.os == 'Windows' }} | |
name: Install protoc | |
run: choco install protoc | |
- name: Install Rust toolchain | |
run: rustup toolchain install --no-self-update stable --profile minimal -c clippy | |
- name: Clippy | |
run: cargo +stable clippy --locked ${{ matrix.flags }} --all-targets -- -D warnings | |
test-matrix: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, macos-14] | |
include: | |
- os: windows-latest | |
flags: --no-default-features -F extensions | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- if: ${{ runner.os == 'macOS' }} | |
name: Install protoc | |
run: brew install protobuf | |
- if: ${{ runner.os == 'Linux' }} | |
name: Install protoc | |
run: sudo apt install -y protobuf-compiler | |
- if: ${{ runner.os == 'Windows' }} | |
name: Install protoc | |
run: choco install protoc | |
- name: Install Rust toolchain | |
run: rustup toolchain install --no-self-update stable --profile minimal | |
- name: Test | |
run: cargo +stable test --locked ${{ matrix.flags }} | |
oldstable: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, macos-14, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- if: ${{ runner.os == 'macOS' }} | |
name: Install protoc | |
run: brew install protobuf | |
- if: ${{ runner.os == 'Linux' }} | |
name: Install protoc | |
run: sudo apt install -y protobuf-compiler | |
- if: ${{ runner.os == 'Windows' }} | |
name: Install protoc | |
run: choco install protoc | |
- name: Oldstable | |
shell: bash | |
run: | | |
oldstable=$(grep rust-version ./cli/Cargo.toml | sed 's/.*"\(.*\)".*/\1/') | |
rustup toolchain install --profile minimal "${oldstable}" | |
cargo "+${oldstable}" check | |
all-features: | |
# Skip this job when the secret is unavailable | |
if: github.secret_source == 'Actions' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, macos-14] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- if: ${{ runner.os == 'macOS' }} | |
name: Install protoc | |
run: brew install protobuf | |
- if: ${{ runner.os == 'Linux' }} | |
name: Install protoc | |
run: sudo apt install -y protobuf-compiler | |
- name: Install Rust toolchain | |
run: rustup toolchain install --no-self-update stable --profile minimal | |
- name: All Features | |
env: | |
PHYLUM_API_KEY: ${{ secrets.PHYLUM_TOKEN_STAGING }} | |
run: cargo +stable test --all-features | |
deno-checks: | |
if: github.event_name != 'schedule' | |
runs-on: ubuntu-latest | |
container: denoland/deno | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: deno fmt | |
run: deno fmt --check | |
- name: deno lint | |
run: deno lint | |
- name: deno check | |
run: deno check --no-lock extensions/**/*.ts | |
shellcheck: | |
if: github.event_name != 'schedule' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Script Style Check | |
run: find . -iname "*.sh" -print0 | xargs -0 shellcheck -o all -S style -s sh | |
# This job reports the results of the test jobs above and is used | |
# to enforce status checks in the repo settings without needing | |
# to update those settings every time the test jobs are updated. | |
test: | |
if: always() | |
needs: [clippy, test-matrix, oldstable, all-features] | |
runs-on: ubuntu-latest | |
steps: | |
- if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') | |
name: Fail the build | |
run: exit 1 |