@@ -14,7 +14,7 @@ concurrency:
1414 cancel-in-progress : true
1515
1616env :
17- BYTEBASE_URL : http://localhost :8080
17+ BYTEBASE_URL : http://host.docker.internal :8080
1818 BYTEBASE_SERVICE_ACCOUNT :
[email protected] # set service account via environment variable 1919 BYTEBASE_SERVICE_ACCOUNT_SECRET : ${{ secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET }} # set service account secret via environment variable
2020 BYTEBASE_PROJECT : " projects/project-test"
3535 needs : build
3636 # runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
3737 runs-on : self-hosted
38- container :
39- # image: bytebase/bytebase-action:latest
40- image : bytebase/bytebase-action:3.12.0
4138 outputs :
4239 bytebase-plan : ${{ steps.set-output.outputs.plan }}
4340 steps :
4946 FILE_PATTERN : " schema/*.sql"
5047 BYTEBASE_OUTPUT : ${{ runner.temp }}/bytebase-metadata.json
5148 run : |
52- bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --project=${{ env.BYTEBASE_PROJECT }} --file-pattern=${{ env.FILE_PATTERN }} --targets=${{ env.BYTEBASE_TARGETS }} --declarative --output=${{ env.BYTEBASE_OUTPUT }}
49+ ls -la schema/
50+ docker run --rm \
51+ --add-host=host.docker.internal:host-gateway \
52+ -v "${{ github.workspace }}":/workspace \
53+ -v "${{ runner.temp }}":/temp \
54+ -e BYTEBASE_URL="${{ env.BYTEBASE_URL }}" \
55+ -e BYTEBASE_SERVICE_ACCOUNT="${{ env.BYTEBASE_SERVICE_ACCOUNT }}" \
56+ -e BYTEBASE_SERVICE_ACCOUNT_SECRET="${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }}" \
57+ -e BYTEBASE_PROJECT="${{ env.BYTEBASE_PROJECT }}" \
58+ -e BYTEBASE_TARGETS="${{ env.BYTEBASE_TARGETS }}" \
59+ -w /workspace \
60+ bytebase/bytebase-action:3.12.0 \
61+ sh -c "ls -la /workspace/schema/ && bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --project=${{ env.BYTEBASE_PROJECT }} --file-pattern=${{ env.FILE_PATTERN }} --targets=${{ env.BYTEBASE_TARGETS }} --declarative --output=/temp/bytebase-metadata.json"
5362 - name : Set output
5463 id : set-output
5564 run : |
@@ -60,39 +69,53 @@ jobs:
6069 # runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
6170 runs-on : self-hosted
6271 environment : test
63- container :
64- # image: bytebase/bytebase-action:latest
65- image : bytebase/bytebase-action:3.12.0
6672 steps :
6773 - name : Checkout
6874 uses : actions/checkout@v4
6975 - name : Roll out database change
7076 env :
7177 BYTEBASE_TARGET_STAGE : environments/test
7278 run : |
73- bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.create-rollout.outputs.bytebase-plan }}
79+ docker run --rm \
80+ --add-host=host.docker.internal:host-gateway \
81+ -v "${{ github.workspace }}":/workspace \
82+ -e BYTEBASE_URL="${{ env.BYTEBASE_URL }}" \
83+ -e BYTEBASE_SERVICE_ACCOUNT="${{ env.BYTEBASE_SERVICE_ACCOUNT }}" \
84+ -e BYTEBASE_SERVICE_ACCOUNT_SECRET="${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }}" \
85+ -e BYTEBASE_PROJECT="${{ env.BYTEBASE_PROJECT }}" \
86+ -e BYTEBASE_TARGET_STAGE="${{ env.BYTEBASE_TARGET_STAGE }}" \
87+ -w /workspace \
88+ bytebase/bytebase-action:3.12.0 \
89+ bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.create-rollout.outputs.bytebase-plan }}
7490 - name : Deploy app
7591 run : |
7692 echo "Deploying app to test environment..."
7793 echo "Deploy app to test environment done!"
7894 deploy-to-prod :
79- needs :
95+ needs :
8096 - deploy-to-test
8197 - create-rollout
8298 # runs-on: ubuntu-latest
8399 runs-on : self-hosted
84100 environment : prod
85- container :
86- # image: bytebase/bytebase-action:latest
87- image : bytebase/bytebase-action:3.12.0
88101 steps :
89102 - name : Checkout
90103 uses : actions/checkout@v4
91104 - name : rollout
92105 env :
93106 BYTEBASE_TARGET_STAGE : environments/prod
94107 run : |
95- bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.create-rollout.outputs.bytebase-plan }}
108+ docker run --rm \
109+ --add-host=host.docker.internal:host-gateway \
110+ -v "${{ github.workspace }}":/workspace \
111+ -e BYTEBASE_URL="${{ env.BYTEBASE_URL }}" \
112+ -e BYTEBASE_SERVICE_ACCOUNT="${{ env.BYTEBASE_SERVICE_ACCOUNT }}" \
113+ -e BYTEBASE_SERVICE_ACCOUNT_SECRET="${{ env.BYTEBASE_SERVICE_ACCOUNT_SECRET }}" \
114+ -e BYTEBASE_PROJECT="${{ env.BYTEBASE_PROJECT }}" \
115+ -e BYTEBASE_TARGET_STAGE="${{ env.BYTEBASE_TARGET_STAGE }}" \
116+ -w /workspace \
117+ bytebase/bytebase-action:3.12.0 \
118+ bytebase-action rollout --url=${{ env.BYTEBASE_URL }} --project=${{ env.BYTEBASE_PROJECT }} --target-stage=${{ env.BYTEBASE_TARGET_STAGE }} --plan=${{ needs.create-rollout.outputs.bytebase-plan }}
96119 - name : Deploy app
97120 run : |
98121 echo "Deploying app to prod environment..."
0 commit comments