11name : Publish
22on :
33 push :
4- tags :
5- - v*.*.*
4+ # tags:
5+ # - v*.*.*
6+ branches :
7+ - gateway-ami
68
79concurrency :
810 group : ${{ github.workflow }}-${{ github.ref }}
911 cancel-in-progress : true
1012
1113jobs :
12- build-docker-release :
13- # Ignore tags with -, like v1.0.0-alpha
14- # This job will build the docker container with the "latest" tag which
15- # is a tag used in production, thus it should only be run for full releases.
16- if : startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-')
17- name : Build Release Docker image
18- uses : ./.github/workflows/build-docker.yml
19- with :
20- tags : |
21- type=raw,value=latest
22- type=semver,pattern={{version}}
23- type=semver,pattern={{major}}.{{minor}}
24- type=sha
25-
26- build-docker-prerelease :
27- # Only build tags with -, like v1.0.0-alpha
28- if : startsWith(github.ref, 'refs/tags/') && contains(github.ref, '-')
29- name : Build Pre-release Docker image
30- uses : ./.github/workflows/build-docker.yml
31- with :
32- tags : |
33- type=raw,value=pre-release
34- type=semver,pattern={{version}}
35- type=sha
36- # Explicitly disable latest tag. It will be added otherwise.
37- flavor : |
38- latest=false
39-
40- create-release :
41- name : create-release
42- runs-on : self-hosted
43- outputs :
44- upload_url : ${{ steps.release.outputs.upload_url }}
45- steps :
46- - name : Create GitHub release
47- id : release
48- uses : softprops/action-gh-release@v1
49- if : startsWith(github.ref, 'refs/tags/')
50- with :
51- draft : true
52- generate_release_notes : true
14+ # build-docker-release:
15+ # # Ignore tags with -, like v1.0.0-alpha
16+ # # This job will build the docker container with the "latest" tag which
17+ # # is a tag used in production, thus it should only be run for full releases.
18+ # if: startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-')
19+ # name: Build Release Docker image
20+ # uses: ./.github/workflows/build-docker.yml
21+ # with:
22+ # tags: |
23+ # type=raw,value=latest
24+ # type=semver,pattern={{version}}
25+ # type=semver,pattern={{major}}.{{minor}}
26+ # type=sha
27+
28+ # build-docker-prerelease:
29+ # # Only build tags with -, like v1.0.0-alpha
30+ # if: startsWith(github.ref, 'refs/tags/') && contains(github.ref, '-')
31+ # name: Build Pre-release Docker image
32+ # uses: ./.github/workflows/build-docker.yml
33+ # with:
34+ # tags: |
35+ # type=raw,value=pre-release
36+ # type=semver,pattern={{version}}
37+ # type=sha
38+ # # Explicitly disable latest tag. It will be added otherwise.
39+ # flavor: |
40+ # latest=false
41+
42+ # create-release:
43+ # name: create-release
44+ # runs-on: self-hosted
45+ # outputs:
46+ # upload_url: ${{ steps.release.outputs.upload_url }}
47+ # steps:
48+ # - name: Create GitHub release
49+ # id: release
50+ # uses: softprops/action-gh-release@v1
51+ # if: startsWith(github.ref, 'refs/tags/')
52+ # with:
53+ # draft: true
54+ # generate_release_notes: true
5355
5456 build-release :
5557 name : Release ${{ matrix.build }}
56- needs : [create-release]
58+ # needs: [create-release]
5759 runs-on :
5860 - self-hosted
5961 - ${{ matrix.os }}
6062 - X64
6163 strategy :
6264 fail-fast : false
6365 matrix :
64- build : [linux, linux-arm64, freebsd]
66+ # build: [linux, linux-arm64, freebsd]
67+ build : [linux]
6568 include :
6669 - build : linux
6770 arch : amd64
6871 os : Linux
6972 asset_name : defguard-gateway-linux-x86_64
7073 target : x86_64-unknown-linux-gnu
71- - build : linux-arm64
72- arch : arm64
73- os : Linux
74- asset_name : defguard-gateway-linux-arm64
75- target : aarch64-unknown-linux-gnu
76- - build : freebsd
77- arch : amd64
78- os : Linux
79- asset_name : defguard-gateway-freebsd-x86_64
80- target : x86_64-unknown-freebsd
74+ # - build: linux-arm64
75+ # arch: arm64
76+ # os: Linux
77+ # asset_name: defguard-gateway-linux-arm64
78+ # target: aarch64-unknown-linux-gnu
79+ # - build: freebsd
80+ # arch: amd64
81+ # os: Linux
82+ # asset_name: defguard-gateway-freebsd-x86_64
83+ # target: x86_64-unknown-freebsd
8184 steps :
8285 # Store the version, stripping any v-prefix
86+ # - name: Write release version
87+ # run: |
88+ # VERSION=${GITHUB_REF_NAME#v}
89+ # echo Version: $VERSION
90+ # echo "VERSION=$VERSION" >> $GITHUB_ENV
91+
8392 - name : Write release version
8493 run : |
85- VERSION=${GITHUB_REF_NAME#v}
94+ VERSION=1.5.0
8695 echo Version: $VERSION
8796 echo "VERSION=$VERSION" >> $GITHUB_ENV
8897
@@ -98,6 +107,10 @@ jobs:
98107 target : ${{ matrix.target }}
99108 override : true
100109
110+ - name : Setup `packer`
111+ uses : hashicorp/setup-packer@main
112+ id : setup
113+
101114 - name : Build release binary
102115 uses : actions-rs/cargo@v1
103116 with :
@@ -116,15 +129,15 @@ jobs:
116129 ${{ matrix.asset_name }}-${{ github.ref_name }}
117130 outPath : ${{ matrix.asset_name }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
118131
119- - name : Upload release archive
120- uses : actions/upload-release-asset@v1
121- env :
122- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
123- with :
124- upload_url : ${{ needs.create-release.outputs.upload_url }}
125- asset_path : ${{ matrix.asset_name }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
126- asset_name : ${{ matrix.asset_name }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
127- asset_content_type : application/octet-stream
132+ # - name: Upload release archive
133+ # uses: actions/upload-release-asset@v1
134+ # env:
135+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
136+ # with:
137+ # upload_url: ${{ needs.create-release.outputs.upload_url }}
138+ # asset_path: ${{ matrix.asset_name }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
139+ # asset_name: ${{ matrix.asset_name }}-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
140+ # asset_content_type: application/octet-stream
128141
129142 - name : Build DEB package
130143 if : matrix.build != 'freebsd'
@@ -133,77 +146,94 @@ jobs:
133146 fpm_args : " ${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/sbin/defguard-gateway defguard-gateway.service=/usr/lib/systemd/system/defguard-gateway.service example-config.toml=/etc/defguard/gateway.toml.sample"
134147 fpm_opts : " --architecture ${{ matrix.arch }} --debug --output-type deb --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.deb --after-install after-install.sh"
135148
136- - name : Upload DEB
137- if : matrix.build != 'freebsd'
138- uses : actions/upload-release-asset@v1
139- env :
140- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
141- with :
142- upload_url : ${{ needs.create-release.outputs.upload_url }}
143- asset_path : defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.deb
144- asset_name : defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.deb
145- asset_content_type : application/octet-stream
146-
147- - name : Build RPM package
148- if : matrix.build == 'linux'
149- uses : defGuard/fpm-action@main
150- with :
151- fpm_args : " ${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/sbin/defguard-gateway defguard-gateway.service=/usr/lib/systemd/system/defguard-gateway.service example-config.toml=/etc/defguard/gateway.toml.sample"
152- fpm_opts : " --architecture ${{ matrix.arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.rpm --after-install after-install.sh"
153-
154- - name : Upload RPM
155- if : matrix.build == 'linux'
156- uses : actions/upload-release-asset@v1
157- env :
158- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
159- with :
160- upload_url : ${{ needs.create-release.outputs.upload_url }}
161- asset_path : defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.rpm
162- asset_name : defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.rpm
163- asset_content_type : application/octet-stream
164-
165- - name : Build FreeBSD package
166- if : matrix.build == 'freebsd'
167- uses : defGuard/fpm-action@main
168- with :
169- fpm_args :
170- " ${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/local/sbin/defguard-gateway
171- defguard-gateway.service.freebsd=/usr/local/etc/rc.d/defguard_gateway
172- example-config.toml=/etc/defguard/gateway.toml.sample
173- defguard-rc.conf=/etc/rc.conf.d/defguard_gateway"
174- fpm_opts : " --architecture ${{ matrix.arch }} --debug --output-type freebsd --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.pkg --freebsd-osversion '*'"
175-
176- - name : Upload FreeBSD
177- if : matrix.build == 'freebsd'
178- uses : actions/upload-release-asset@v1
179- env :
180- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
181- with :
182- upload_url : ${{ needs.create-release.outputs.upload_url }}
183- asset_path : defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.pkg
184- asset_name : defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.pkg
185- asset_content_type : application/octet-stream
186-
187- - name : Build OPNsense package
188- if : matrix.build == 'freebsd'
189- uses : defGuard/fpm-action@main
190- with :
191- fpm_args :
192- " ${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/local/sbin/defguard-gateway
193- defguard-gateway.service.freebsd=/usr/local/etc/rc.d/defguard_gateway
194- example-config.toml=/etc/defguard/gateway.toml.sample
195- defguard-rc.conf=/etc/rc.conf.d/defguard_gateway
196- opnsense/src/etc/=/usr/local/etc/
197- opnsense/src/opnsense/=/usr/local/opnsense/"
198- fpm_opts : " --architecture ${{ matrix.arch }} --debug --output-type freebsd --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_x86_64-unknown-opnsense.pkg --freebsd-osversion '*'"
199-
200- - name : Upload OPNsense package
201- if : matrix.build == 'freebsd'
202- uses : actions/upload-release-asset@v1
149+ # - name: Upload DEB
150+ # if: matrix.build != 'freebsd'
151+ # uses: actions/upload-release-asset@v1
152+ # env:
153+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
154+ # with:
155+ # upload_url: ${{ needs.create-release.outputs.upload_url }}
156+ # asset_path: defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.deb
157+ # asset_name: defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.deb
158+ # asset_content_type: application/octet-stream
159+
160+ - name : Run `packer init`
161+ if : matrix.build == 'linux' && matrix.arch == 'amd64'
162+ id : init
163+ run : " packer init ./images/ami/gateway.pkr.hcl"
164+
165+ - name : Run `packer validate`
166+ if : matrix.build == 'linux' && matrix.arch == 'amd64'
167+ id : validate
168+ run : packer validate --var "package_version=${{ env.VERSION }}" ./images/ami/gateway.pkr.hcl
169+
170+ - name : Build AMI image
171+ if : matrix.build == 'linux' && matrix.arch == 'amd64'
172+ run : packer build -color=false -on-error=abort --var "package_version=${{ env.VERSION }}" ./images/ami/gateway.pkr.hcl
203173 env :
204- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
205- with :
206- upload_url : ${{ needs.create-release.outputs.upload_url }}
207- asset_path : defguard-gateway_${{ env.VERSION }}_x86_64-unknown-opnsense.pkg
208- asset_name : defguard-gateway_${{ env.VERSION }}_x86_64-unknown-opnsense.pkg
209- asset_content_type : application/octet-stream
174+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
175+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
176+
177+ # - name: Build RPM package
178+ # if: matrix.build == 'linux'
179+ # uses: defGuard/fpm-action@main
180+ # with:
181+ # fpm_args: "${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/sbin/defguard-gateway defguard-gateway.service=/usr/lib/systemd/system/defguard-gateway.service example-config.toml=/etc/defguard/gateway.toml.sample"
182+ # fpm_opts: "--architecture ${{ matrix.arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.rpm --after-install after-install.sh"
183+
184+ # - name: Upload RPM
185+ # if: matrix.build == 'linux'
186+ # uses: actions/upload-release-asset@v1
187+ # env:
188+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
189+ # with:
190+ # upload_url: ${{ needs.create-release.outputs.upload_url }}
191+ # asset_path: defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.rpm
192+ # asset_name: defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.rpm
193+ # asset_content_type: application/octet-stream
194+
195+ # - name: Build FreeBSD package
196+ # if: matrix.build == 'freebsd'
197+ # uses: defGuard/fpm-action@main
198+ # with:
199+ # fpm_args:
200+ # "${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/local/sbin/defguard-gateway
201+ # defguard-gateway.service.freebsd=/usr/local/etc/rc.d/defguard_gateway
202+ # example-config.toml=/etc/defguard/gateway.toml.sample
203+ # defguard-rc.conf=/etc/rc.conf.d/defguard_gateway"
204+ # fpm_opts: "--architecture ${{ matrix.arch }} --debug --output-type freebsd --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.pkg --freebsd-osversion '*'"
205+
206+ # - name: Upload FreeBSD
207+ # if: matrix.build == 'freebsd'
208+ # uses: actions/upload-release-asset@v1
209+ # env:
210+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
211+ # with:
212+ # upload_url: ${{ needs.create-release.outputs.upload_url }}
213+ # asset_path: defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.pkg
214+ # asset_name: defguard-gateway_${{ env.VERSION }}_${{ matrix.target }}.pkg
215+ # asset_content_type: application/octet-stream
216+
217+ # - name: Build OPNsense package
218+ # if: matrix.build == 'freebsd'
219+ # uses: defGuard/fpm-action@main
220+ # with:
221+ # fpm_args:
222+ # "${{ matrix.asset_name }}-${{ github.ref_name }}=/usr/local/sbin/defguard-gateway
223+ # defguard-gateway.service.freebsd=/usr/local/etc/rc.d/defguard_gateway
224+ # example-config.toml=/etc/defguard/gateway.toml.sample
225+ # defguard-rc.conf=/etc/rc.conf.d/defguard_gateway
226+ # opnsense/src/etc/=/usr/local/etc/
227+ # opnsense/src/opnsense/=/usr/local/opnsense/"
228+ # fpm_opts: "--architecture ${{ matrix.arch }} --debug --output-type freebsd --version ${{ env.VERSION }} --package defguard-gateway_${{ env.VERSION }}_x86_64-unknown-opnsense.pkg --freebsd-osversion '*'"
229+
230+ # - name: Upload OPNsense package
231+ # if: matrix.build == 'freebsd'
232+ # uses: actions/upload-release-asset@v1
233+ # env:
234+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
235+ # with:
236+ # upload_url: ${{ needs.create-release.outputs.upload_url }}
237+ # asset_path: defguard-gateway_${{ env.VERSION }}_x86_64-unknown-opnsense.pkg
238+ # asset_name: defguard-gateway_${{ env.VERSION }}_x86_64-unknown-opnsense.pkg
239+ # asset_content_type: application/octet-stream
0 commit comments