-
Notifications
You must be signed in to change notification settings - Fork 18
124 lines (120 loc) · 3.93 KB
/
rollback.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
name: Rollback (Manual)
on:
workflow_dispatch:
inputs:
rollbackTo:
type: string
description: 'Full commit hash'
required: true
environment:
type: choice
description: 'Environment'
options:
- 'mainnet'
network:
type: choice
description: 'Network'
options:
- 'arbitrum'
- 'fluidity'
group:
description: 'Group'
required: true
default: 'all'
service:
description: 'Service'
required: true
default: 'all'
build_root_container:
type: boolean
description: 'Build root-container'
default: true
build_build_container:
type: boolean
description: 'Build build-container'
default: true
rollback_timescale:
type: boolean
description: 'Rollback Timescale DB'
default: false
rollback_postgres:
type: boolean
description: 'Rollback Postgres DB'
default: false
skip_app_rollback:
type: boolean
description: 'Skip rollback-app'
default: false
permissions:
id-token: write
contents: read
jobs:
rollback-app:
if: ${{ github.event.inputs.skip_app_rollback == 'false' }}
runs-on: powerfulubuntu
environment: ${{ github.event.inputs.environment }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
ref: ${{ github.event.inputs.rollbackTo }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ap-southeast-2
role-to-assume: ${{ secrets.FLU_AWS_GITHUB_OIDC_ROLE }}
role-duration-seconds: 7200 #seconds
- name: Display Commit Hash
run: |
echo ""
echo "CommitHash: $(git log -1 --format='%H')"
echo ""
- name: Build
id: build
uses: ./scripts/actions
with:
command: |
flu build-docker \
--network ${{ github.event.inputs.network }} \
--group ${{ github.event.inputs.group }} \
--service ${{ github.event.inputs.service }} \
--environment ${{ github.event.inputs.environment }} \
--build-root-container ${{ github.event.inputs.build_root_container }} \
--build-build-container ${{ github.event.inputs.build_build_container }} \
--tag ${{ github.event.inputs.rollbackTo }}
- name: Deploy
id: deploy
uses: ./scripts/actions
with:
command: |
flu deploy-service \
--network ${{ github.event.inputs.network }} \
--group ${{ github.event.inputs.group }} \
--service ${{ github.event.inputs.service }} \
--environment ${{ github.event.inputs.environment }} \
--debug false \
--tag ${{ github.event.inputs.rollbackTo }}
rollback-db:
if: ${{ github.event.inputs.rollback_timescale == 'true' || github.event.inputs.rollback_postgres == 'true' }}
runs-on: powerfulubuntu
environment: ${{ github.event.inputs.environment }}
steps:
- uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ap-southeast-2
role-to-assume: ${{ secrets.FLU_AWS_GITHUB_OIDC_ROLE }}
role-duration-seconds: 7200 #seconds
- name: Rollback Database
id: db
uses: ./scripts/actions
with:
command: |
flu rollback-db \
--network ${{ github.event.inputs.network }} \
--environment ${{ github.event.inputs.environment }} \
--rollback-timescaledb ${{ github.event.inputs.rollback_timescale }} \
--rollback-postgresdb ${{ github.event.inputs.rollback_postgres }} \
--tag $GITHUB_SHA