https://github.com/bytebase/rollout-action
Github Action to wait rollout to finish on Bytebase
https://github.com/bytebase/rollout-action
Last synced: 7 months ago
JSON representation
Github Action to wait rollout to finish on Bytebase
- Host: GitHub
- URL: https://github.com/bytebase/rollout-action
- Owner: bytebase
- License: mit
- Created: 2025-01-13T09:44:08.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-04-07T05:22:17.000Z (9 months ago)
- Last Synced: 2025-06-22T07:39:04.984Z (7 months ago)
- Language: TypeScript
- Size: 1.58 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# About
Github action to rollout on Bytebase.
- Tutorial:
[Database GitOps with GitHub Actions](https://www.bytebase.com/docs/tutorials/gitops-github-workflow/)
- Sample repo: https://github.com/bytebase/example-gitops-github-flow
## Inputs
| Input Name | Description | Required | Default |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------- |
| `url` | The bytebase URL. | Yes | |
| `token` | The Bytebase access token. | Yes | |
| `plan` | The plan to create the rollout from. Format: `projects/{project}/plans/{plan}` | Yes | |
| `target-stage` | Bytebase rollout pipeline can contain multiple stages. This action will exit after complete deploying the `target-stage` stage. `target-stage` is the stage environment. Example: `environments/prod`. Fail if there is no matching stage. | Yes | |
| `rollout-title` | The created rollout title. Example: `${{ github.event.head_commit.message }}` | No | |
## Example
```yaml
on:
push:
branches:
- main
jobs:
bytebase-cicd:
runs-on: ubuntu-latest
env:
BYTEBASE_URL: 'https://demo.bytebase.com'
BYTEBASE_PROJECT: 'projects/example'
BYTEBASE_SERVICE_ACCOUNT: 'demo@service.bytebase.com'
BYTEBASE_TARGETS: 'instances/mysql1/databases/db1,instances/mysql1/databases/db2'
name: Bytebase cicd
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Bytebase
id: login
uses: bytebase/login-action@main
with:
url: ${{ env.BYTEBASE_URL }}
service-account: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
service-account-key: ${{ secrets.BYTEBASE_PASSWORD }}
- name: Create release
id: create_release
uses: bytebase/create-release-action@main
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
project: ${{ env.BYTEBASE_PROJECT }}
file-pattern: 'migrations/*.sql'
- name: Create plan
id: create_plan
uses: bytebase/create-plan-from-release-action@main
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
project: ${{ env.BYTEBASE_PROJECT }}
release: ${{ steps.create_release.outputs.release }}
targets: ${{ env.BYTEBASE_TARGETS }}
- name: rollout
id: rollout
uses: bytebase/rollout-action@main
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
plan: ${{ steps.create_plan.outputs.plan }}
target-stage: prod
```