Skip to content

Navigation Menu

Sign in
Appearance settings

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

Sign up
Appearance settings

Commit 8917a84

Browse files
chore: 3 step rollout
1 parent d5b1674 commit 8917a84

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

‎.github/workflows/release-action.yml‎

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ on:
55
branches:
66
- main
77

8+
env:
9+
BYTEBASE_URL: https://demo.bytebase.com
10+
BYTEBASE_SERVICE_ACCOUNT: api@service.bytebase.com
11+
BYTEBASE_SERVICE_ACCOUNT_SECRET: ${{ secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET }}
12+
BYTEBASE_PROJECT: "projects/hr"
13+
814
jobs:
915
build:
1016
runs-on: ubuntu-latest
@@ -17,10 +23,9 @@ jobs:
1723
echo "Build done!"
1824
echo "Uploading..."
1925
echo "Upload done!"
20-
deploy-to-test:
26+
create-rollout-on-bytebase:
2127
needs: build
2228
runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
23-
environment: test
2429
container:
2530
image: docker://bytebase/bytebase-action:latest
2631
outputs:
@@ -30,27 +35,38 @@ jobs:
3035
uses: actions/checkout@v4
3136
- name: rollout
3237
env:
33-
BYTEBASE_URL: https://demo.bytebase.com
34-
BYTEBASE_SERVICE_ACCOUNT: api@service.bytebase.com
35-
BYTEBASE_SERVICE_ACCOUNT_SECRET: ${{ secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET }}
36-
BYTEBASE_PROJECT: "projects/hr"
3738
BYTEBASE_TARGETS: "instances/test-sample-instance/databases/hr_test,instances/prod-sample-instance/databases/hr_prod"
38-
BYTEBASE_TARGET_STAGE: environments/test
3939
FILE_PATTERN: "migrations-semver/*.sql"
4040
BYTEBASE_OUTPUT: ${{ runner.temp }}/bytebase-metadata.json
4141
run: |
42-
bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --service-account=${{ env.BYTEBASE_SERVICE_ACCOUNT }} --service-account-secret=${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }} --project=${{ env.BYTEBASE_PROJECT }} --file-pattern=${{ env.FILE_PATTERN }} --targets=${{ env.BYTEBASE_TARGETS }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --output=${{ env.BYTEBASE_OUTPUT }}
42+
bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --service-account=${{ env.BYTEBASE_SERVICE_ACCOUNT }} --service-account-secret=${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }} --project=${{ env.BYTEBASE_PROJECT }} --file-pattern=${{ env.FILE_PATTERN }} --targets=${{ env.BYTEBASE_TARGETS }} --output=${{ env.BYTEBASE_OUTPUT }}
4343
- name: Set output
4444
id: set-output
4545
run: |
4646
PLAN=$(jq -r .plan ${{ runner.temp }}/bytebase-metadata.json)
4747
echo "plan=$PLAN" >> $GITHUB_OUTPUT
48+
deploy-to-test:
49+
needs: create-rollout-on-bytebase
50+
runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
51+
environment: test
52+
container:
53+
image: docker://bytebase/bytebase-action:latest
54+
steps:
55+
- name: Checkout
56+
uses: actions/checkout@v4
57+
- name: rollout
58+
env:
59+
BYTEBASE_TARGET_STAGE: environments/test
60+
run: |
61+
bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --service-account=${{ env.BYTEBASE_SERVICE_ACCOUNT }} --service-account-secret=${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.create-rollout-on-bytebase.outputs.bytebase-plan }}
4862
- name: Deploy app
4963
run: |
5064
echo "Deploying app to test environment..."
5165
echo "Deploy app to test environment done!"
5266
deploy-to-prod:
53-
needs: deploy-to-test
67+
needs:
68+
- deploy-to-test
69+
- create-rollout-on-bytebase
5470
runs-on: ubuntu-latest
5571
environment: prod
5672
container:
@@ -60,13 +76,9 @@ jobs:
6076
uses: actions/checkout@v4
6177
- name: rollout
6278
env:
63-
BYTEBASE_URL: https://demo.bytebase.com
64-
BYTEBASE_SERVICE_ACCOUNT: api@service.bytebase.com
65-
BYTEBASE_SERVICE_ACCOUNT_SECRET: ${{ secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET }}
66-
BYTEBASE_PROJECT: "projects/hr"
6779
BYTEBASE_TARGET_STAGE: environments/prod
6880
run: |
69-
bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --service-account=${{ env.BYTEBASE_SERVICE_ACCOUNT }} --service-account-secret=${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.deploy-to-test.outputs.bytebase-plan }}
81+
bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --service-account=${{ env.BYTEBASE_SERVICE_ACCOUNT }} --service-account-secret=${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.create-rollout-on-bytebase.outputs.bytebase-plan }}
7082
- name: Deploy app
7183
run: |
7284
echo "Deploying app to prod environment..."

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /