Skip to content

Commit c02c39b

Browse files
committed
u
1 parent 337d5f7 commit c02c39b

File tree

2 files changed

+154
-107
lines changed

2 files changed

+154
-107
lines changed

.github/workflows/release-action.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Build and push release image using bytebase-action image
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
- name: Build app and upload
15+
run: |
16+
echo "Building..."
17+
echo "Build done!"
18+
echo "Uploading..."
19+
echo "Upload done!"
20+
deploy-to-all:
21+
needs: build
22+
runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
23+
outputs:
24+
bytebase-plan: ${{ steps.create-plan.outputs.plan }}
25+
deployment-required: ${{ steps.create-plan.outputs.deployment-required }}
26+
steps:
27+
- name: Checkout
28+
uses: actions/checkout@v4
29+
- name: rollout
30+
uses: docker://bytebase/bytebase-action:latest
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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/project-sample"
37+
BYTEBASE_TARGETS: "instances/prod-sample-instance/databases/hr_prod"
38+
BYTEBASE_TARGET_STAGE: environments/test
39+
FILE_PATTERN: "migrations/*.sql"
40+
BYTEBASE_OUTPUT: ${{ runner.temp }}/bytebase-metadata.json
41+
with:
42+
entrypoint: bytebase-action
43+
args: 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 }}
44+
- name: Check output
45+
run: |
46+
echo "Output: ${{ runner.temp }}/bytebase-metadata.json"
47+
cat ${{ runner.temp }}/bytebase-metadata.json

.github/workflows/release.yml

Lines changed: 107 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,109 @@
1-
name: Build and push release image
1+
# name: Build and push release image
22

3-
on:
4-
push:
5-
branches:
6-
- main
3+
# on:
4+
# push:
5+
# branches:
6+
# - main
77

8-
jobs:
9-
build:
10-
runs-on: ubuntu-latest
11-
steps:
12-
- name: Checkout
13-
uses: actions/checkout@v4
14-
- name: Build app and upload
15-
run: |
16-
echo "Building..."
17-
echo "Build done!"
18-
echo "Uploading..."
19-
echo "Upload done!"
20-
deploy-to-test:
21-
needs: build
22-
runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
23-
environment: test
24-
env:
25-
BYTEBASE_URL: https://demo.bytebase.com
26-
BYTEBASE_SERVICE_ACCOUNT: [email protected]
27-
BYTEBASE_PROJECT: "projects/project-sample"
28-
# The Bytebase rollout pipeline will deploy to 'test' and 'prod' environments.
29-
# 'deploy-to-test' job rollouts the 'test' stage and 'deploy-to-prod' job rollouts the 'prod' stage.
30-
BYTEBASE_TARGETS: "instances/test-sample-instance/databases/hr_test,instances/prod-sample-instance/databases/hr_prod"
31-
FILE_PATTERN: "migrations/*.sql"
32-
outputs:
33-
bytebase-plan: ${{ steps.create-plan.outputs.plan }}
34-
deployment-required: ${{ steps.create-plan.outputs.deployment-required }}
35-
steps:
36-
- name: Checkout
37-
uses: actions/checkout@v4
38-
- name: Login to Bytebase
39-
id: login
40-
uses: bytebase/login-action@v1
41-
with:
42-
bytebase-url: ${{ env.BYTEBASE_URL }}
43-
service-key: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
44-
service-secret: ${{secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET}} # Please use secrets for sensitive data in production.
45-
- name: Create release
46-
id: create-release
47-
uses: bytebase/create-release-action@v1
48-
with:
49-
url: ${{ env.BYTEBASE_URL }}
50-
token: ${{ steps.login.outputs.token }}
51-
file-pattern: ${{ env.FILE_PATTERN }}
52-
# fail the action if release checks report any error.
53-
check-release: "FAIL_ON_ERROR"
54-
project: ${{ env.BYTEBASE_PROJECT }}
55-
targets: ${{ env.BYTEBASE_TARGETS }}
56-
validate-only: false
57-
- name: Create plan
58-
id: create-plan
59-
uses: bytebase/create-plan-from-release-action@v1
60-
with:
61-
url: ${{ env.BYTEBASE_URL }}
62-
token: ${{ steps.login.outputs.token }}
63-
project: ${{ env.BYTEBASE_PROJECT }}
64-
release: ${{ steps.create-release.outputs.release }}
65-
targets: ${{ env.BYTEBASE_TARGETS }}
66-
check-plan: "SKIP"
67-
- name: Rollout
68-
id: rollout
69-
uses: bytebase/rollout-action@v2
70-
if: ${{ steps.create-plan.outputs.deployment-required == 'true' }}
71-
with:
72-
url: ${{ env.BYTEBASE_URL }}
73-
token: ${{ steps.login.outputs.token }}
74-
plan: ${{ steps.create-plan.outputs.plan }}
75-
target-stage: environments/test # the stage environment.
76-
- name: Deploy app
77-
run: |
78-
echo "Deploying app to test environment..."
79-
echo "Deploy app to test environment done!"
80-
deploy_to_prod:
81-
needs: deploy-to-test
82-
runs-on: ubuntu-latest
83-
environment: prod
84-
env:
85-
BYTEBASE_URL: https://demo.bytebase.com
86-
BYTEBASE_SERVICE_ACCOUNT: [email protected]
87-
if: ${{ needs.deploy-to-test.outputs.deployment-required == 'true' }}
88-
steps:
89-
- name: Checkout
90-
uses: actions/checkout@v4
91-
- name: Login to Bytebase
92-
id: login
93-
uses: bytebase/login-action@v1
94-
with:
95-
bytebase-url: ${{ env.BYTEBASE_URL }}
96-
service-key: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
97-
service-secret: ${{secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET}} # Please use secrets for sensitive data in production.
98-
- name: Rollout
99-
id: rollout
100-
uses: bytebase/rollout-action@v2
101-
with:
102-
url: ${{ env.BYTEBASE_URL }}
103-
token: ${{ steps.login.outputs.token }}
104-
plan: ${{ needs.deploy-to-test.outputs.bytebase-plan }}
105-
target-stage: environments/prod # the stage environment.
106-
- name: Deploy app
107-
run: |
108-
echo "Deploying app to prod environment..."
109-
echo "Deploy app to prod environment done!"
8+
# jobs:
9+
# build:
10+
# runs-on: ubuntu-latest
11+
# steps:
12+
# - name: Checkout
13+
# uses: actions/checkout@v4
14+
# - name: Build app and upload
15+
# run: |
16+
# echo "Building..."
17+
# echo "Build done!"
18+
# echo "Uploading..."
19+
# echo "Upload done!"
20+
# deploy-to-test:
21+
# needs: build
22+
# runs-on: ubuntu-latest # use self-hosted machines if your Bytebase runs in internal networks.
23+
# environment: test
24+
# env:
25+
# BYTEBASE_URL: https://demo.bytebase.com
26+
# BYTEBASE_SERVICE_ACCOUNT: [email protected]
27+
# BYTEBASE_PROJECT: "projects/project-sample"
28+
# # The Bytebase rollout pipeline will deploy to 'test' and 'prod' environments.
29+
# # 'deploy-to-test' job rollouts the 'test' stage and 'deploy-to-prod' job rollouts the 'prod' stage.
30+
# BYTEBASE_TARGETS: "instances/test-sample-instance/databases/hr_test,instances/prod-sample-instance/databases/hr_prod"
31+
# FILE_PATTERN: "migrations/*.sql"
32+
# outputs:
33+
# bytebase-plan: ${{ steps.create-plan.outputs.plan }}
34+
# deployment-required: ${{ steps.create-plan.outputs.deployment-required }}
35+
# steps:
36+
# - name: Checkout
37+
# uses: actions/checkout@v4
38+
# - name: Login to Bytebase
39+
# id: login
40+
# uses: bytebase/login-action@v1
41+
# with:
42+
# bytebase-url: ${{ env.BYTEBASE_URL }}
43+
# service-key: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
44+
# service-secret: ${{secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET}} # Please use secrets for sensitive data in production.
45+
# - name: Create release
46+
# id: create-release
47+
# uses: bytebase/create-release-action@v1
48+
# with:
49+
# url: ${{ env.BYTEBASE_URL }}
50+
# token: ${{ steps.login.outputs.token }}
51+
# file-pattern: ${{ env.FILE_PATTERN }}
52+
# # fail the action if release checks report any error.
53+
# check-release: "FAIL_ON_ERROR"
54+
# project: ${{ env.BYTEBASE_PROJECT }}
55+
# targets: ${{ env.BYTEBASE_TARGETS }}
56+
# validate-only: false
57+
# - name: Create plan
58+
# id: create-plan
59+
# uses: bytebase/create-plan-from-release-action@v1
60+
# with:
61+
# url: ${{ env.BYTEBASE_URL }}
62+
# token: ${{ steps.login.outputs.token }}
63+
# project: ${{ env.BYTEBASE_PROJECT }}
64+
# release: ${{ steps.create-release.outputs.release }}
65+
# targets: ${{ env.BYTEBASE_TARGETS }}
66+
# check-plan: "SKIP"
67+
# - name: Rollout
68+
# id: rollout
69+
# uses: bytebase/rollout-action@v2
70+
# if: ${{ steps.create-plan.outputs.deployment-required == 'true' }}
71+
# with:
72+
# url: ${{ env.BYTEBASE_URL }}
73+
# token: ${{ steps.login.outputs.token }}
74+
# plan: ${{ steps.create-plan.outputs.plan }}
75+
# target-stage: environments/test # the stage environment.
76+
# - name: Deploy app
77+
# run: |
78+
# echo "Deploying app to test environment..."
79+
# echo "Deploy app to test environment done!"
80+
# deploy_to_prod:
81+
# needs: deploy-to-test
82+
# runs-on: ubuntu-latest
83+
# environment: prod
84+
# env:
85+
# BYTEBASE_URL: https://demo.bytebase.com
86+
# BYTEBASE_SERVICE_ACCOUNT: [email protected]
87+
# if: ${{ needs.deploy-to-test.outputs.deployment-required == 'true' }}
88+
# steps:
89+
# - name: Checkout
90+
# uses: actions/checkout@v4
91+
# - name: Login to Bytebase
92+
# id: login
93+
# uses: bytebase/login-action@v1
94+
# with:
95+
# bytebase-url: ${{ env.BYTEBASE_URL }}
96+
# service-key: ${{ env.BYTEBASE_SERVICE_ACCOUNT }}
97+
# service-secret: ${{secrets.BYTEBASE_SERVICE_ACCOUNT_SECRET}} # Please use secrets for sensitive data in production.
98+
# - name: Rollout
99+
# id: rollout
100+
# uses: bytebase/rollout-action@v2
101+
# with:
102+
# url: ${{ env.BYTEBASE_URL }}
103+
# token: ${{ steps.login.outputs.token }}
104+
# plan: ${{ needs.deploy-to-test.outputs.bytebase-plan }}
105+
# target-stage: environments/prod # the stage environment.
106+
# - name: Deploy app
107+
# run: |
108+
# echo "Deploying app to prod environment..."
109+
# echo "Deploy app to prod environment done!"

0 commit comments

Comments
 (0)