Skip to main content

GitHub Actions

Rush Delivery is a Dagger module for Rush-based release workflows. It owns the release path from source acquisition through detect, validate, build, package, and deploy while keeping project-specific behavior in metadata.

Use the GitHub Action for normal GitHub CI. It prepares the Dagger CLI, deploy env file, runtime files bundle, Git source coordinates, and source auth token plumbing for you.

Pin Rush Delivery to a released tag and advance that tag intentionally when you want new behavior.

Pull Request Validation

Use entrypoint: validate for PR CI. The action resolves the pull request source through Git source mode, so the workflow does not need to check out the repository for normal validation. Give PRs read-only package access and use pull-or-build so provider artifacts can be reused without publishing from PR runs.

name: ci-validate

on:
pull_request:

permissions:
contents: read
packages: read

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: BootstrapLaboratory/rush-delivery@v0.3.4
with:
entrypoint: validate
toolchain-image-provider: github
toolchain-image-policy: pull-or-build
rush-cache-provider: github
rush-cache-policy: pull-or-build

Release Workflow

Use the default workflow entrypoint for release CI.

permissions:
contents: write
id-token: write
packages: write

jobs:
release:
runs-on: ubuntu-latest
steps:
- id: auth
name: Authenticate to Google Cloud
uses: google-github-actions/auth@v3
with:
workload_identity_provider: ${{ vars.GCP_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ vars.GCP_SERVICE_ACCOUNT }}

- name: Rush Delivery
uses: BootstrapLaboratory/rush-delivery@v0.3.4
with:
dry-run: "false"
force-targets-json: ${{ inputs.force_targets_json || '[]' }}
environment: prod
deploy-tag-prefix: deploy/prod
artifact-prefix: deploy-target
toolchain-image-provider: github
toolchain-image-policy: lazy
rush-cache-provider: github
rush-cache-policy: lazy
deploy-env: |
GCP_PROJECT_ID=${{ vars.GCP_PROJECT_ID }}
GCP_ARTIFACT_REGISTRY_REPOSITORY=${{ vars.GCP_ARTIFACT_REGISTRY_REPOSITORY }}
GITHUB_ACTOR=${{ github.actor }}
GITHUB_REPOSITORY=${{ github.repository }}
GITHUB_TOKEN=${{ github.token }}
runtime-file-map: |
${{ steps.auth.outputs.credentials_file_path }}=>gcp-credentials.json

Next, see CI Using Command Line if you want to call the module directly from a custom CI script.

For the broader docs map, start from the Introduction.