Skip to content

Treat empty string in pipeline_error as success (#1525) #4333

Treat empty string in pipeline_error as success (#1525)

Treat empty string in pipeline_error as success (#1525) #4333

Workflow file for this run

---
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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- 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