-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (115 loc) · 3.62 KB
/
pr_workflow.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
125
126
127
128
129
130
131
132
133
134
name: 'PR Workflow'
permissions:
security-events: write
actions: read
id-token: write
contents: write
pull-requests: write
on:
# push:
workflow_dispatch:
inputs:
target_stage:
type: choice
description: Which stage to deploy to.
options:
- dev
- prod
pull_request:
types:
- opened
- synchronize
- reopened
- closed
paths:
- src/**
env:
TARGET_STAGE: "pr-${{ github.event.number }}"
TARGET_ENVIRONMENT: "dev"
jobs:
debug:
name: "Dump GitHub context"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: echo "$GITHUB_CONTEXT"
on_pr_opened:
if: github.event_name == 'pull_request' && github.event.action != 'closed'
name: "PR is opened. pr-${{ github.event.number}}"
runs-on: "ubuntu-latest"
environment:
name: "pr-${{ github.event.number }}"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "### PR is opened. stage: $TARGET_STAGE"
echo "### PR is opened. stage: $TARGET_STAGE" >> "$GITHUB_STEP_SUMMARY"
on_pr_merged:
if: github.event.pull_request.merged
name: "PR is merged. pr-${{ github.event.number}}"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "### PR is merged. stage: $TARGET_STAGE"
echo "### PR is merged. stage: $TARGET_STAGE" >> "$GITHUB_STEP_SUMMARY"
on_pr_closed_without_merge:
if: github.event_name == 'pull_request' && ( github.event.action == 'closed' && github.event.pull_request.merged == false )
name: "PR is closed without merge. pr-${{ github.event.number}}"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "### PR is closed without merge. stage: $TARGET_STAGE"
echo "### PR is closed without merge. stage: $TARGET_STAGE" >> "$GITHUB_STEP_SUMMARY"
on_pr_closed_or_merged:
if: github.event_name == 'pull_request' && ( github.event.action == 'closed' || github.event.pull_request.merged )
name: "PR is closed or merged. pr-${{ github.event.number}}"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "### PR is closed or merged. stage: $TARGET_STAGE"
echo "### PR is closed or merged. stage: $TARGET_STAGE" >> "$GITHUB_STEP_SUMMARY"
on_main_branch_only:
if: github.ref == 'refs/heads/main'
name: "Runs on Main branch only"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "hello main branch"
on_manual_invoke_only:
if: github.event_name == 'workflow_dispatch'
name: "Runs on Manual invoke only"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "hello manual invoke workflow"
on_main_or_manual_invoke:
if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
name: "Runs on Main branch or manual invoke"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Echo stuff
run: |
echo "hello manual branch or manual invoke workflow"