@@ -25,41 +25,49 @@ jobs:
25
25
env :
26
26
DEPLOY_ENVIRONMENT : pr-${{ github.event.number }}
27
27
run : |
28
- echo "DEPLOY_ENVIRONMENT=$DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
29
- echo "NETLIFY_DEPLOY_PREFIX=${DEPLOY_ENVIRONMENT}--" >> $GITHUB_ENV
30
- echo "NETLIFY_DEPLOY_ALIAS=$DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
28
+ {
29
+ echo "DEPLOY_ENVIRONMENT=$DEPLOY_ENVIRONMENT"
30
+ echo "NETLIFY_DEPLOY_PREFIX=${DEPLOY_ENVIRONMENT}--"
31
+ echo "NETLIFY_DEPLOY_ALIAS=$DEPLOY_ENVIRONMENT"
32
+ } >> "$GITHUB_ENV"
31
33
32
34
- name : Set deploy environment as preview
33
35
if : github.base_ref == 'develop' && github.event.action == 'closed' && github.event.pull_request.merged == true
34
36
env :
35
37
DEPLOY_ENVIRONMENT : preview
36
38
PR_DEPLOY_ENVIRONMENT : pr-${{ github.event.number }}
37
39
run : |
38
- echo "DEPLOY_ENVIRONMENT=$DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
39
- echo "PR_DEPLOY_ENVIRONMENT=$PR_DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
40
- echo "NETLIFY_DEPLOY_PREFIX=${DEPLOY_ENVIRONMENT}--" >> $GITHUB_ENV
41
- echo "NETLIFY_DEPLOY_ALIAS=$DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
40
+ {
41
+ echo "DEPLOY_ENVIRONMENT=$DEPLOY_ENVIRONMENT"
42
+ echo "PR_DEPLOY_ENVIRONMENT=$PR_DEPLOY_ENVIRONMENT"
43
+ echo "NETLIFY_DEPLOY_PREFIX=${DEPLOY_ENVIRONMENT}--"
44
+ echo "NETLIFY_DEPLOY_ALIAS=$DEPLOY_ENVIRONMENT"
45
+ } >> "$GITHUB_ENV"
42
46
43
47
- name : Set deploy environment as staging
44
48
if : github.base_ref == 'main' && contains(fromJSON('["opened", "synchronize"]'), github.event.action)
45
49
env :
46
50
DEPLOY_ENVIRONMENT : staging
47
51
run : |
48
- echo "DEPLOY_ENVIRONMENT=$DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
49
- echo "NETLIFY_DEPLOY_PREFIX=${DEPLOY_ENVIRONMENT}--" >> $GITHUB_ENV
50
- echo "NETLIFY_DEPLOY_ALIAS=$DEPLOY_ENVIRONMENT" >> $GITHUB_ENV
52
+ {
53
+ echo "DEPLOY_ENVIRONMENT=$DEPLOY_ENVIRONMENT"
54
+ echo "NETLIFY_DEPLOY_PREFIX=${DEPLOY_ENVIRONMENT}--"
55
+ echo "NETLIFY_DEPLOY_ALIAS=$DEPLOY_ENVIRONMENT"
56
+ } >> "$GITHUB_ENV"
51
57
52
58
- name : Set deploy environment as production
53
59
if : github.base_ref == 'main' && github.event.action == 'closed' && github.event.pull_request.merged == true
54
- run : echo "DEPLOY_ENVIRONMENT=production" >> $GITHUB_ENV
60
+ run : echo "DEPLOY_ENVIRONMENT=production" >> " $GITHUB_ENV"
55
61
56
62
- name : Set deploy environment output
57
63
id : deploy_environment
58
64
run : |
59
- echo "github_environment=$DEPLOY_ENVIRONMENT" >> $GITHUB_OUTPUT
60
- echo "github_pr_environment=$PR_DEPLOY_ENVIRONMENT" >> $GITHUB_OUTPUT
61
- echo "netlify_deploy_prefix=$NETLIFY_DEPLOY_PREFIX" >> $GITHUB_OUTPUT
62
- echo "netlify_deploy_alias=$NETLIFY_DEPLOY_ALIAS" >> $GITHUB_OUTPUT
65
+ {
66
+ echo "github_environment=$DEPLOY_ENVIRONMENT"
67
+ echo "github_pr_environment=$PR_DEPLOY_ENVIRONMENT"
68
+ echo "netlify_deploy_prefix=$NETLIFY_DEPLOY_PREFIX"
69
+ echo "netlify_deploy_alias=$NETLIFY_DEPLOY_ALIAS"
70
+ } >> "$GITHUB_OUTPUT"
63
71
64
72
outputs :
65
73
github_environment : ${{ steps.deploy_environment.outputs.github_environment }}
91
99
92
100
- name : Get PNPM store directory
93
101
id : pnpm-cache
94
- run : echo "pnpm_store_path=$(pnpm store path)" >> $GITHUB_OUTPUT
102
+ run : echo "pnpm_store_path=$(pnpm store path)" >> " $GITHUB_OUTPUT"
95
103
96
104
- name : Setup pnpm cache
97
105
uses : actions/cache@v3
@@ -109,7 +117,7 @@ jobs:
109
117
110
118
- name : Set as production environment
111
119
if : needs.set_deploy_environment.outputs.github_environment == 'production'
112
- run : echo "PROD=true" >> $GITHUB_ENV
120
+ run : echo "PROD=true" >> " $GITHUB_ENV"
113
121
114
122
- name : Deploy ${{ needs.set_deploy_environment.outputs.github_environment }}
115
123
id : deploy
@@ -124,11 +132,11 @@ jobs:
124
132
shell : bash
125
133
run : |
126
134
set -e
127
- [[ ${PROD:-false} == "true" ]] && \
135
+ ( [[ ${PROD:-false} == "true" ]] && \
128
136
OUTPUT=$(GA_ID=$SITE_GA_ID \
129
- SWETRIX_ID=$ SITE_SWETRIX_ID \
130
- COUNTER_ANALYTICS_ID=$ SITE_COUNTER_ANALYTICS_ID \
131
- DISQUS_ID=$ SITE_DISQUS_ID \
137
+ SWETRIX_ID="${ SITE_SWETRIX_ID}" \
138
+ COUNTER_ANALYTICS_ID="${ SITE_COUNTER_ANALYTICS_ID}" \
139
+ DISQUS_ID="${ SITE_DISQUS_ID}" \
132
140
pnpm netlify deploy \
133
141
--auth ${{ env.NETLIFY_AUTH_TOKEN }} \
134
142
--site ${{ env.NETLIFY_SITE_ID }} \
@@ -137,22 +145,26 @@ jobs:
137
145
--context production \
138
146
--message "$(git log -1 --pretty=%s)" \
139
147
--prod \
140
- | tr '\n' ' ') || \
141
- OUTPUT=$(pnpm netlify deploy \
142
- --auth ${{ env.NETLIFY_AUTH_TOKEN }} \
143
- --site ${{ env.NETLIFY_SITE_ID }} \
144
- --json \
145
- --build \
146
- --context deploy-preview \
147
- --alias ${NETLIFY_DEPLOY_ALIAS} \
148
- --message "$(git log -1 --pretty=%s)" \
149
- | tr '\n' ' ')
148
+ | tr '\n' ' ')) || \
149
+ OUTPUT=$(
150
+ SWETRIX_ID="${SITE_SWETRIX_ID}" \
151
+ COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \
152
+ DISQUS_ID="${SITE_DISQUS_ID}" \
153
+ pnpm netlify deploy \
154
+ --auth ${{ env.NETLIFY_AUTH_TOKEN }} \
155
+ --site ${{ env.NETLIFY_SITE_ID }} \
156
+ --json \
157
+ --build \
158
+ --context deploy-preview \
159
+ --alias "${NETLIFY_DEPLOY_ALIAS}" \
160
+ --message "$(git log -1 --pretty=%s)" \
161
+ | tr '\n' ' ')
150
162
set +e
151
163
152
- NETLIFY_OUTPUT=$(echo "$OUTPUT")
164
+ NETLIFY_OUTPUT="$OUTPUT"
153
165
154
- echo "netlify_output=$NETLIFY_OUTPUT" >> $GITHUB_OUTPUT
155
- echo "success=true" >> $GITHUB_OUTPUT
166
+ echo "netlify_output=$NETLIFY_OUTPUT" >> " $GITHUB_OUTPUT"
167
+ echo "success=true" >> " $GITHUB_OUTPUT"
156
168
157
169
- name : Post deploy ${{ needs.set_deploy_environment.outputs.github_environment }}
158
170
id : post_deploy
@@ -162,30 +174,64 @@ jobs:
162
174
NETLIFY_PROD_URL : ${{ fromJson(steps.deploy.outputs.netlify_output).url }}
163
175
run : |
164
176
[[ ${PROD:-false} == "true" ]] && \
165
- echo "netlify_deploy_url=$NETLIFY_PROD_URL" >> $GITHUB_OUTPUT || \
166
- echo "netlify_deploy_url=$NETLIFY_DRAFT_URL" >> $GITHUB_OUTPUT
177
+ echo "netlify_deploy_url=$NETLIFY_PROD_URL" >> " $GITHUB_OUTPUT" || \
178
+ echo "netlify_deploy_url=$NETLIFY_DRAFT_URL" >> " $GITHUB_OUTPUT"
167
179
180
+ - name : Debug deploy ${{ needs.set_deploy_environment.outputs.github_environment }}
181
+ id : debug-deploy
182
+ if : always() && (steps.deploy.outcome == 'failure' || steps.post_deploy.outcome == 'failure' )
183
+ env :
184
+ NETLIFY_DEPLOY_PREFIX : ${{ needs.set_deploy_environment.outputs.netlify_deploy_prefix }}
185
+ NETLIFY_DEPLOY_ALIAS : ${{ needs.set_deploy_environment.outputs.netlify_deploy_alias }}
186
+ SITE_GA_ID : ${{ vars.SITE_GA_ID }}
187
+ SITE_SWETRIX_ID : ${{ vars.SITE_SWETRIX_ID }}
188
+ SITE_COUNTER_ANALYTICS_ID : ${{ vars.SITE_COUNTER_ANALYTICS_ID }}
189
+ SITE_DISQUS_ID : ${{ vars.SITE_DISQUS_ID }}
190
+ shell : bash
191
+ run : |
192
+ echo "node version $(node -v)"
193
+ echo "pnpm version $(pnpm -v)"
194
+ ([[ ${PROD:-false} == "true" ]] && \
195
+ GA_ID=$SITE_GA_ID \
196
+ SWETRIX_ID="${SITE_SWETRIX_ID}" \
197
+ COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \
198
+ DISQUS_ID="${SITE_DISQUS_ID}" \
199
+ pnpm netlify deploy \
200
+ --auth ${{ env.NETLIFY_AUTH_TOKEN }} \
201
+ --site ${{ env.NETLIFY_SITE_ID }} \
202
+ --build \
203
+ --context production \
204
+ --message "$(git log -1 --pretty=%s)" \
205
+ --prod) || \
206
+ GA_ID=$SITE_GA_ID \
207
+ SWETRIX_ID="${SITE_SWETRIX_ID}" \
208
+ COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \
209
+ DISQUS_ID="${SITE_DISQUS_ID}" \
210
+ pnpm netlify deploy \
211
+ --auth ${{ env.NETLIFY_AUTH_TOKEN }} \
212
+ --site ${{ env.NETLIFY_SITE_ID }} \
213
+ --build \
214
+ --context deploy-preview \
215
+ --alias "${NETLIFY_DEPLOY_ALIAS}" \
216
+ --message "$(git log -1 --pretty=%s)"
168
217
outputs :
169
218
success : ${{ steps.deploy.outputs.success }}
170
219
171
220
delete_resources :
172
221
needs :
173
222
- set_deploy_environment
174
223
- deploy
175
- if : needs.deploy.outputs.success == 'true' &&
176
- github.base_ref == 'develop' &&
177
- github.event.action == 'closed' &&
178
- github.event.pull_request.merged == true
224
+ if : needs.deploy.outputs.success == 'true' && github.base_ref == 'develop' && github.event.action == 'closed' && github.event.pull_request.merged == true
179
225
runs-on : ubuntu-latest
180
226
steps :
181
227
- name : Delete the PR branch after merged into develop
182
228
env :
183
229
GH_TOKEN : ${{ secrets.GH_TOKEN }}
184
230
GIT_REF_PATH : /repos/${{ github.repository }}/git/refs/heads/${{ github.head_ref }}
185
231
run : |
186
- STATUS_CODE=$(gh api -i -H "Accept: application/vnd.github+json" $ GIT_REF_PATH | head -1)
187
- [[ "$STATUS_CODE" == "HTTP/2.0 200 OK" ]] && \
188
- gh api --method DELETE -H "Accept: application/vnd.github+json" $ GIT_REF_PATH || \
232
+ STATUS_CODE=$(gh api -i -H "Accept: application/vnd.github+json" "${ GIT_REF_PATH}" | head -1)
233
+ ( [[ "$STATUS_CODE" == "HTTP/2.0 200 OK" ]] && \
234
+ gh api --method DELETE -H "Accept: application/vnd.github+json" "${ GIT_REF_PATH}") || \
189
235
echo "Branch does not exist, deleting was ignored."
190
236
191
237
- name : Delete the environment ${{ needs.set_deploy_environment.outputs.github_pr_environment }}
0 commit comments