mirror of https://github.com/buster-so/buster.git
|
||
---|---|---|
.. | ||
deploy | ||
dry-run | ||
install | ||
README.md |
README.md
Buster GitHub Actions
Official GitHub Actions for working with the Buster CLI and deploying semantic models to the Buster platform.
Quick Start
name: Deploy to Buster
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: buster-so/buster/actions/install@v1
- uses: buster-so/buster/actions/deploy@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
Available Actions
🔧 Install Buster CLI
- uses: buster-so/buster/actions/install@v1
with:
version: latest # or specific version like 'v0.3.0'
Downloads and installs the Buster CLI for your workflow.
🚀 Deploy to Buster
- uses: buster-so/buster/actions/deploy@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
with:
environment: production
directory: ./models
Deploys your semantic models to Buster.
✅ Validate Models (Dry Run)
- uses: buster-so/buster/actions/dry-run@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
with:
fail-on-warnings: true
Validates your models without deploying them. Perfect for pull requests!
Setup
1. Add API Key Secret
- Go to your repository's Settings → Secrets and variables → Actions
- Add a new secret called
BUSTER_API_KEY
- Paste your Buster API key as the value
2. Create Workflow
Create .github/workflows/deploy.yml
:
name: Deploy to Buster
on:
push:
branches: [main]
paths:
- 'models/**'
- 'buster.yml'
pull_request:
paths:
- 'models/**'
- 'buster.yml'
jobs:
validate:
name: Validate Models
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
- uses: buster-so/buster/actions/install@v1
- uses: buster-so/buster/actions/dry-run@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
deploy:
name: Deploy to Production
runs-on: ubuntu-latest
if: github.event_name == 'push'
steps:
- uses: actions/checkout@v4
- uses: buster-so/buster/actions/install@v1
- uses: buster-so/buster/actions/deploy@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
Action Reference
install
Input | Description | Required | Default |
---|---|---|---|
version |
CLI version to install | No | latest |
deploy
Input | Description | Required | Default |
---|---|---|---|
directory |
Directory with buster.yml | No | . |
environment |
Target environment | No | '' |
force |
Skip confirmation prompts | No | true |
verbose |
Enable verbose output | No | false |
Environment Variables:
BUSTER_API_KEY
(required)BUSTER_HOST
(optional, defaults tohttps://api.buster.so
)
dry-run
Input | Description | Required | Default |
---|---|---|---|
directory |
Directory with buster.yml | No | . |
environment |
Target environment | No | '' |
verbose |
Enable verbose output | No | true |
fail-on-warnings |
Fail if warnings found | No | false |
Environment Variables:
BUSTER_API_KEY
(required)BUSTER_HOST
(optional)
Examples
Multi-Environment Deployment
name: Deploy to Environment
on:
workflow_dispatch:
inputs:
environment:
type: choice
options: [development, staging, production]
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ inputs.environment }}
steps:
- uses: actions/checkout@v4
- uses: buster-so/buster/actions/install@v1
- uses: buster-so/buster/actions/deploy@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
with:
environment: ${{ inputs.environment }}
PR Validation with Comments
name: Validate PR
on: pull_request
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: buster-so/buster/actions/install@v1
- id: validate
uses: buster-so/buster/actions/dry-run@v1
env:
BUSTER_API_KEY: ${{ secrets.BUSTER_API_KEY }}
- uses: actions/github-script@v7
if: always()
with:
script: |
const status = '${{ steps.validate.outputs.validation-status }}';
const errors = '${{ steps.validate.outputs.errors-count }}';
const warnings = '${{ steps.validate.outputs.warnings-count }}';
let message = '✅ Validation passed!';
if (status === 'failed') {
message = `❌ Validation failed with ${errors} error(s)`;
} else if (status === 'warnings') {
message = `⚠️ Validation passed with ${warnings} warning(s)`;
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: message
});
Supported Platforms
All actions work on:
- ✅ Ubuntu (recommended)
- ✅ macOS
- ✅ Windows
License
MIT
Support
- Issues: GitHub Issues
- Documentation: docs.buster.so
- CLI: github.com/buster-so/buster