55    branches :
66      - main 
77
8+ env :
9+   BYTEBASE_URL : https://demo.bytebase.com 
10+   BYTEBASE_SERVICE_ACCOUNT : 
[email protected]  11+   BYTEBASE_SERVICE_ACCOUNT_SECRET : ${{ secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET }} 
12+   BYTEBASE_PROJECT : " projects/hr" 
13+ 
814jobs :
915  build :
1016    runs-on : ubuntu-latest 
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 : 
[email protected]  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 :
6076        uses : actions/checkout@v4 
6177      - name : rollout 
6278        env :
63-           BYTEBASE_URL : https://demo.bytebase.com 
64-           BYTEBASE_SERVICE_ACCOUNT : 
[email protected]  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