-
Notifications
You must be signed in to change notification settings - Fork 10
225 lines (186 loc) · 5.36 KB
/
test-actions.yml
File metadata and controls
225 lines (186 loc) · 5.36 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
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
name: Test GitHub Actions
on:
pull_request:
paths:
- 'action.yml'
- 'actions/**'
- '.github/workflows/test-actions.yml'
push:
branches: [main]
paths:
- 'action.yml'
- 'actions/**'
- '.github/workflows/test-actions.yml'
env:
SFCC_DISABLE_TELEMETRY: true
SFCC_LOG_LEVEL: trace
jobs:
# Smoke test: install CLI and verify
setup-latest:
name: 'Setup (latest)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run setup action
id: setup
uses: ./actions/setup
with:
version: latest
client-id: test-client-id
server: test.example.com
code-version: test_version
- name: Verify CLI installed
run: b2c --version
- name: Verify env vars set
run: |
[ "$SFCC_CLIENT_ID" = "test-client-id" ] || (echo "SFCC_CLIENT_ID not set" && exit 1)
[ "$SFCC_SERVER" = "test.example.com" ] || (echo "SFCC_SERVER not set" && exit 1)
[ "$SFCC_CODE_VERSION" = "test_version" ] || (echo "SFCC_CODE_VERSION not set" && exit 1)
[ "$NO_COLOR" = "1" ] || (echo "NO_COLOR not set" && exit 1)
echo "All environment variables verified"
setup-nightly:
name: 'Setup (nightly)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run setup action with nightly
uses: ./actions/setup
with:
version: nightly
- name: Verify CLI installed
run: b2c --version
# Root action: setup + command
root-action:
name: 'Root action'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run root action with command
id: root
uses: ./
with:
command: '--help'
json: 'false'
- name: Verify output
run: |
echo "Exit code: ${{ steps.root.outputs.exit-code }}"
[ "${{ steps.root.outputs.exit-code }}" = "0" ] || exit 1
# Root action: setup only (no command)
root-setup-only:
name: 'Root action (setup only)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run root action without command
id: root
uses: ./
with:
server: test.example.com
- name: Verify CLI available
run: b2c --version
- name: Verify env var set
run: |
[ "$SFCC_SERVER" = "test.example.com" ] || exit 1
# Setup + run: two-step pattern
setup-then-run:
name: 'Setup + Run'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./actions/setup
- name: Run help command
id: run
uses: ./actions/run
with:
command: '--help'
json: 'false'
- name: Verify output
run: |
[ "${{ steps.run.outputs.exit-code }}" = "0" ] || exit 1
# High-level action smoke tests (--help to verify command construction)
code-deploy-help:
name: 'Code Deploy (help)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./actions/setup
- name: Test code deploy help
uses: ./actions/run
with:
command: 'code deploy --help'
json: 'false'
mrt-deploy-help:
name: 'MRT Deploy (help)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./actions/setup
- name: Test mrt bundle deploy help
uses: ./actions/run
with:
command: 'mrt bundle deploy --help'
json: 'false'
job-run-help:
name: 'Job Run (help)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./actions/setup
- name: Test job run help
uses: ./actions/run
with:
command: 'job run --help'
json: 'false'
data-import-help:
name: 'Data Import (help)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./actions/setup
- name: Test job import help
uses: ./actions/run
with:
command: 'job import --help'
json: 'false'
webdav-upload-help:
name: 'WebDAV Upload (help)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./actions/setup
- name: Test webdav put help
uses: ./actions/run
with:
command: 'webdav put --help'
json: 'false'
# E2E tests — only on main, requires e2e-dev environment with real credentials
e2e:
name: 'E2E'
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: e2e-dev
steps:
- uses: actions/checkout@v4
- name: Setup with real credentials
uses: ./actions/setup
with:
client-id: ${{ secrets.SFCC_CLIENT_ID }}
client-secret: ${{ secrets.SFCC_CLIENT_SECRET }}
server: ${{ vars.SFCC_SERVER }}
username: ${{ secrets.SFCC_USERNAME }}
password: ${{ secrets.SFCC_PASSWORD }}
- name: List code versions
id: code-list
uses: ./actions/run
with:
command: 'code list'
- name: Verify code list output
run: |
echo "Result: ${{ steps.code-list.outputs.result }}"
[ "${{ steps.code-list.outputs.exit-code }}" = "0" ] || exit 1