Skip to content

ShuttlePub/workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

118 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workflow Collections

Worflows

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@main

Example

name: check
on:
  pull_request:
    branches:
      - dev

jobs:
  build:
    uses: ShuttlePub/workflows/.github/workflows/bench.yml@main
    with:
      compare-branch: dev 

Sub workflows

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

Consumer integration tests

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 main and 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/checkout uses the default GITHUB_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, and cargo build/test/clippy steps do not receive any GITHUB_TOKEN in their environment, so downstream Rust code has no access to this repository's token.

About

Collections of workflow used by ShuttlePub repositories

Resources

Stars

Watchers

Forks

Contributors