This GitHub Action allows you to validate and manage Rudder CLI projects directly through your GitHub workflows.
- Validate project files
- Perform dry-run of project file changes
- Apply project file changes
- Secure handling of Rudderstack access tokens
- A Rudderstack account and access token
- Rudder CLI project files in your repository
name: Manage Rudder CLI projects
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate Project Files
uses: rudderlabs/[email protected]
env:
RUDDERSTACK_ACCESS_TOKEN: ${{ secrets.RUDDER_ACCESS_TOKEN }}
with:
location: "project/"
mode: "validate"
apply:
runs-on: ubuntu-latest
needs: validate
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Apply Project Files
uses: rudderlabs/[email protected]
env:
RUDDERSTACK_ACCESS_TOKEN: ${{ secrets.RUDDER_ACCESS_TOKEN }}
with:
location: "project/"
mode: "apply"
Input | Description | Required | Default |
---|---|---|---|
location |
Path to the folder containing Rudder CLI project files | Yes | N/A |
mode |
Operation mode (validate , dry-run , or apply ) |
Yes | N/A |
cli_version |
Version of rudder-cli to use | No | v0.10.0 |
Variable | Description | Required |
---|---|---|
RUDDERSTACK_ACCESS_TOKEN |
Rudderstack access token | Yes |
-
validate:
- Validates project files syntax and structure
- No changes are applied to your configuration
-
dry-run:
- Simulates the application of changes
- Shows what would be modified without making actual changes
-
apply:
- Applies the project file changes to your Rudderstack workspace
The action requires your Rudderstack access token to be provided via the RUDDERSTACK_ACCESS_TOKEN
environment variable. Always store this token in GitHub Secrets and reference it in your workflow using ${{ secrets.YOUR_SECRET_NAME }}
. Never expose the token directly in your workflow files.
MIT License - see the LICENSE file for details
Contributions are welcome! Please see our Contributing Guidelines for more details.