-
Notifications
You must be signed in to change notification settings - Fork 2
63 lines (54 loc) · 2 KB
/
Copy pathdeploy.yml
File metadata and controls
63 lines (54 loc) · 2 KB
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
name: Deploy
on:
workflow_run:
workflows: ["CI"]
branches: [main]
types: [completed]
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
environment: senate
steps:
- name: Determine environment
id: env
shell: bash
run: |
echo "head_branch=${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_branch || github.ref_name }}" >> "$GITHUB_OUTPUT"
echo "head_sha=${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }}" >> "$GITHUB_OUTPUT"
- name: Select webhook URLs
shell: bash
env:
OKD_BACKEND_WEBHOOK_URL: ${{ secrets.OKD_BACKEND_WEBHOOK_URL }}
OKD_FRONTEND_WEBHOOK_URL: ${{ secrets.OKD_FRONTEND_WEBHOOK_URL }}
run: |
backend_url="$OKD_BACKEND_WEBHOOK_URL"
frontend_url="$OKD_FRONTEND_WEBHOOK_URL"
if [[ -z "$backend_url" || -z "$frontend_url" ]]; then
echo "Missing OKD webhook URLs" >&2
exit 1
fi
{
echo "BACKEND_WEBHOOK_URL=$backend_url"
echo "FRONTEND_WEBHOOK_URL=$frontend_url"
} >> "$GITHUB_ENV"
- name: Trigger OKD webhooks
shell: bash
env:
HEAD_BRANCH: ${{ steps.env.outputs.head_branch }}
HEAD_SHA: ${{ steps.env.outputs.head_sha }}
run: |
payload_file="$(mktemp)"
trap 'rm -f "$payload_file"' EXIT
printf '{"git":{"ref":"refs/heads/%s","commit":"%s"}}\n' "$HEAD_BRANCH" "$HEAD_SHA" > "$payload_file"
for webhook_url in "$BACKEND_WEBHOOK_URL" "$FRONTEND_WEBHOOK_URL"; do
curl --fail --silent --show-error \
-X POST \
-H "Content-Type: application/json" \
--data-binary "@$payload_file" \
"$webhook_url"
done