Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Update README.md

Update README.md #8

Workflow file for this run

name: Build and push release image
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build app and upload
run: |
echo "Building..."
echo "Build done!"
echo "Uploading..."
echo "Upload done!"
deploy-to-test:
needs: build
runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
environment: test
env:
BYTEBASE_URL: https://demo.bytebase.com
BYTEBASE_SERVICE_ACCOUNT: ci@service.bytebase.com
BYTEBASE_PROJECT: "projects/project-sample"
# The Bytebase rollout pipeline will deploy to 'test' and 'prod' environments.
# 'deploy-to-test' job rollouts the 'test' stage and 'deploy-to-prod' job rollouts the 'prod' stage.
BYTEBASE_TARGETS: "instances/test-sample-instance/databases/hr_test,instances/prod-sample-instance/databases/hr_prod"
FILE_PATTERN: "migrations/*.sql"
outputs:
bytebase-plan: ${{ steps.create-plan.outputs.plan }}
deployment-required: ${{ steps.create-plan.outputs.deployment-required }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Bytebase
id: login
uses: bytebase/login-action@v1
with:
bytebase-url: ${{ env.BYTEBASE_URL }}
service-key: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
service-secret: ${{secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET}} # Please use secrets for sensitive data in production.
- name: Create release
id: create-release
uses: bytebase/create-release-action@v1
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
file-pattern: ${{ env.FILE_PATTERN }}
# fail the action if release checks report any error.
check-release: "FAIL_ON_ERROR"
project: ${{ env.BYTEBASE_PROJECT }}
targets: ${{ env.BYTEBASE_TARGETS }}
validate-only: false
- name: Create plan
id: create-plan
uses: bytebase/create-plan-from-release-action@v1
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
project: ${{ env.BYTEBASE_PROJECT }}
release: ${{ steps.create-release.outputs.release }}
targets: ${{ env.BYTEBASE_TARGETS }}
check-plan: "SKIP"
- name: Rollout
id: rollout
uses: bytebase/rollout-action@v2
if: ${{ steps.create-plan.outputs.deployment-required == 'true' }}
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
plan: ${{ steps.create-plan.outputs.plan }}
target-stage: environments/test # the stage environment.
- name: Deploy app
run: |
echo "Deploying app to test environment..."
echo "Deploy app to test environment done!"
deploy_to_prod:
needs: deploy-to-test
runs-on: ubuntu-latest
environment: prod
env:
BYTEBASE_URL: https://demo.bytebase.com
BYTEBASE_SERVICE_ACCOUNT: ci@service.bytebase.com
if: ${{ needs.deploy-to-test.outputs.deployment-required == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Bytebase
id: login
uses: bytebase/login-action@v1
with:
bytebase-url: ${{ env.BYTEBASE_URL }}
service-key: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
service-secret: ${{secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET}} # Please use secrets for sensitive data in production.
- name: Rollout
id: rollout
uses: bytebase/rollout-action@v2
with:
url: ${{ env.BYTEBASE_URL }}
token: ${{ steps.login.outputs.token }}
plan: ${{ needs.deploy-to-test.outputs.bytebase-plan }}
target-stage: environments/prod # the stage environment.
- name: Deploy app
run: |
echo "Deploying app to prod environment..."
echo "Deploy app to prod environment done!"
Morty Proxy This is a proxified and sanitized view of the page, visit original site.