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