-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (129 loc) · 4.26 KB
/
packer.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
name: packer
"on":
push:
branches:
- "**"
jobs:
packer-first-attempt:
runs-on: ubuntu-latest
name: Packer First Attempt
steps:
- name: Checkout Repository
uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
with:
submodules: "true"
- name: Setup `packer`
uses: hashicorp/setup-packer@76e3039aa951aa4e6efe7e6ee06bc9ceb072142d
id: setup
with:
version: ${{ env.PRODUCT_VERSION }}
- name: Run `packer init`
id: init
run: packer init .
- name: Run `packer fmt`
id: fmt
run: packer fmt -check .
- name: Run `packer validate`
id: validate
run: packer validate -syntax-only .
- name: Run `packer build`
id: build
run: packer build -force -var-file=variables.json aws-ubuntu.pkr.hcl
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_VPC_ID: ${{ secrets.AWS_VPC_ID }}
AWS_SUBNET_ID: ${{ secrets.AWS_SUBNET_ID }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
- name: Cleanup Packer Resources
if: failure() || cancelled()
run: |
pkill packer
packer-second-attempt:
needs: packer-first-attempt
if: failure() || cancelled()
runs-on: ubuntu-latest
name: Packer Second Attempt
steps:
- name: Checkout Repository
uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
with:
submodules: "true"
- name: Setup `packer`
uses: hashicorp/setup-packer@76e3039aa951aa4e6efe7e6ee06bc9ceb072142d
id: setup
with:
version: ${{ env.PRODUCT_VERSION }}
- name: Run `packer init`
id: init
run: packer init .
- name: Run `packer fmt`
id: fmt
run: packer fmt -check .
- name: Run `packer validate`
id: validate
run: packer validate -syntax-only .
- name: Run `packer build`
id: build
run: packer build -force -var-file=variables.json aws-ubuntu.pkr.hcl
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_VPC_ID: ${{ secrets.AWS_VPC_ID }}
AWS_SUBNET_ID: ${{ secrets.AWS_SUBNET_ID }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
- name: Cleanup Packer Resources
if: failure() || cancelled()
run: |
pkill packer
packer-third-attempt:
needs: packer-second-attempt
if: needs.packer-second-attempt.result == 'failure'
runs-on: ubuntu-latest
name: Packer Third Attempt
steps:
- name: Checkout Repository
uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
with:
submodules: "true"
- name: Setup `packer`
uses: hashicorp/setup-packer@76e3039aa951aa4e6efe7e6ee06bc9ceb072142d
id: setup
with:
version: ${{ env.PRODUCT_VERSION }}
- name: Run `packer init`
id: init
run: packer init .
- name: Run `packer fmt`
id: fmt
run: packer fmt -check .
- name: Run `packer validate`
id: validate
run: packer validate -syntax-only .
- name: Run `packer build`
id: build
run: packer build -force -var-file=variables.json aws-ubuntu.pkr.hcl
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_VPC_ID: ${{ secrets.AWS_VPC_ID }}
AWS_SUBNET_ID: ${{ secrets.AWS_SUBNET_ID }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
- name: Cleanup Packer Resources
if: failure() || cancelled()
run: |
pkill packer
required-check:
name: At least one test passed
needs:
- packer-first-attempt
- packer-second-attempt
- packer-third-attempt
if: |
always() &&
(needs.packer-first-attempt.result == 'success' ||
needs.packer-second-attempt.result == 'success' ||
needs.packer-third-attempt.result == 'success')
runs-on: ubuntu-latest
steps:
- run: echo "At least one test passed!"