Runs lint and test
ShuttlePub/workflows/.github/workflows/check.yml@main
Inputs
| name | required | example | description |
|---|---|---|---|
| workspace | yes | '[ "kernel", "driver" ]' | Workspaces to run check on |
| target-repository | no | ShuttlePub/Stellar | Repository to checkout (default: caller repository) |
| target-ref | no | main | Ref of target-repository (default: caller ref) |
Runs lint and test with PostgreSQL
ShuttlePub/workflows/.github/workflows/test-psql.yml@main
Inputs
| name | required | example | description |
|---|---|---|---|
| workspace | yes | driver | Workspace to run check on |
| target-repository | no | ShuttlePub/Emumet | Repository to checkout (default: caller repository) |
| target-ref | no | main | Ref of target-repository (default: caller ref) |
Generage coverage and upload to covecov
ShuttlePub/workflows/.github/workflows/coverage.yml@main
Secrets
- CODECOV_TOKEN
Benchmark each workspaces
ShuttlePub/workflows/.github/workflows/bench.yml@main
Inputs
| name | default |
|---|---|
| features | async,tokio-support |
| compare-branch | main |
Validates pull request title
ShuttlePub/workflows/.github/workflows/validate-pr.yml@main
name: Validate PR title
on:
pull_request_target:
types:
- opened
- edited
- synchronize
jobs:
validate:
uses: ShuttlePub/workflows/.github/workflows/validate-pr.yml@mainname: check
on:
pull_request:
branches:
- dev
jobs:
build:
uses: ShuttlePub/workflows/.github/workflows/bench.yml@main
with:
compare-branch: dev Detect workspaces and outputs with matrix compatible format
ShuttlePub/workflows/.github/workflows/detect-workspaces.yml@main
Inputs
| name | required | example | description |
|---|---|---|---|
| target-repository | no | ShuttlePub/Stellar | Repository to checkout (default: caller repository) |
| target-ref | no | main | Ref of target-repository (default: caller ref) |
outputs
| name | example |
|---|---|
| matrix | ["kernel", "driver"] |
Read toolchain channel from rust-toolchain.toml
ShuttlePub/workflows/.github/workflows/read-toolchain.yml@main
Inputs
| name | required | example | description |
|---|---|---|---|
| target-repository | no | ShuttlePub/Stellar | Repository to checkout (default: caller repository) |
| target-ref | no | main | Ref of target-repository (default: caller ref) |
outputs
| name | example |
|---|---|
| channel | stable |
test-consumers.yml runs on push/PR to main that touches .github/workflows/**. It invokes check.yml and test-psql.yml (at the same revision as the caller workflow — for pull_request events, that is the PR's merge commit) against a real downstream repository (Emumet) using target-repository / target-ref inputs, so breaking changes are caught before merging.
Notes:
- Fork PRs are skipped. Consumer jobs only run for pushes to
mainand PRs from branches within the same repository (github.event.pull_request.head.repo.full_name == github.repository). This is intentional: cross-repo checkout of an external fork's modified workflow files would let untrusted code run with this repository's token. Maintainers can validate fork PRs by pushing the branch to this repository. - Consumer repositories must be public. Cross-repo
actions/checkoutuses the defaultGITHUB_TOKEN, which is scoped to this repository. Private/internal downstream repositories would require a PAT or GitHub App token, which is not configured. - No repository token is exposed to cargo steps. All checkouts use
persist-credentials: false, andcargo build/test/clippysteps do not receive anyGITHUB_TOKENin their environment, so downstream Rust code has no access to this repository's token.