-
Notifications
You must be signed in to change notification settings - Fork 1
153 lines (129 loc) · 3.76 KB
/
ci.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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: Continuous Integration
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
contents: read
jobs:
tests-unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Setup Node.js
id: setup-node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Install Dependencies
id: npm-ci
run: npm ci
- name: Lint
id: npm-lint
run: npm run lint
- name: Test
id: npm-test
run: npm run test
tests-live:
permissions:
contents: read
id-token: write
name: Live Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Setup Node.js
id: setup-node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Install Dependencies
id: npm-ci
run: npm ci
- uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Run Live Tests
run: npm run test:live
env:
LIVETEST_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
LIVETEST_RESOURCE_GROUP: azure-bicep-deploy-ci
tests-action:
permissions:
contents: read
id-token: write
name: Actions Tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- windows-latest
- ubuntu-latest
- macos-latest
concurrency:
# Stacks are stateful - avoid modifying the same Stack concurrently
group: ${{ matrix.os }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Test Deployment - Validate
uses: ./
with:
type: deployment
operation: validate
name: ci-deploy-${{ matrix.os }}
scope: resourceGroup
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: azure-bicep-deploy-ci
parameters-file: test/files/basic/main.bicepparam
- name: Test Deployment - WhatIf
uses: ./
with:
type: deployment
operation: whatIf
name: ci-deploy-${{ matrix.os }}
scope: resourceGroup
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: azure-bicep-deploy-ci
parameters-file: test/files/basic/main.bicepparam
- name: Test Deployment - Deploy
uses: ./
with:
type: deployment
operation: create
name: ci-deploy-${{ matrix.os }}
scope: resourceGroup
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: azure-bicep-deploy-ci
parameters-file: test/files/basic/main.bicepparam
- name: Test Local Action (Stack)
uses: ./
with:
type: deploymentStack
operation: create
name: ci-stack-${{ matrix.os }}
scope: resourceGroup
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: azure-bicep-deploy-ci
parameters-file: test/files/basic/main.bicepparam
action-on-unmanage-resources: delete
deny-settings-mode: denyDelete