11name : Make a new release
2-
32on :
43 push :
54 tags :
@@ -179,25 +178,19 @@ jobs:
179178 asset_name : defguard-proxy-${{ env.VERSION }}-${{ matrix.target }}.deb
180179 asset_content_type : application/octet-stream
181180
182- - name : Run `packer init`
183- if : matrix.build == 'linux' && matrix.arch == 'amd64'
184- id : init
185- run : " packer init ./images/ami/proxy.pkr.hcl"
181+ - name : Install ruby with deb-s3
182+ if : matrix.build == 'linux'
183+ run : |
184+ sudo apt-get install -y ruby
185+ gem install deb-s3
186+ echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH
186187
187- - name : Build AMI images for multiple regions
188- if : matrix.build == 'linux' && matrix.arch == 'amd64'
188+ - name : Upload DEB to apt repository
189+ if : matrix.build == 'linux'
189190 run : |
190- regions=(us-east-1 eu-west-1 ap-northeast-1 eu-central-1)
191- for region in "${regions[@]}"; do
192- echo "Building AMI for region: $region"
193- echo "Running packer validate for $region..."
194- packer validate --var "package_version=${{ env.VERSION }}" --var "region=$region" ./images/ami/proxy.pkr.hcl
195- echo "Building AMI image for $region..."
196- packer build -color=false -on-error=abort --var "package_version=${{ env.VERSION }}" --var "region=$region" ./images/ami/proxy.pkr.hcl
197- done
198- env :
199- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
200- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
191+ COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release.
192+
193+ deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=trixie --component="$COMPONENT" defguard-proxy-${{ env.VERSION }}-${{ matrix.target }}.deb
201194
202195 - name : Build RPM package
203196 if : matrix.build == 'linux'
@@ -216,3 +209,39 @@ jobs:
216209 asset_path : defguard-proxy-${{ env.VERSION }}-${{ matrix.target }}.rpm
217210 asset_name : defguard-proxy-${{ env.VERSION }}-${{ matrix.target }}.rpm
218211 asset_content_type : application/octet-stream
212+
213+ apt-sign :
214+ needs :
215+ - build-binaries
216+ runs-on :
217+ - self-hosted
218+ - Linux
219+ - X64
220+ strategy :
221+ fail-fast : false
222+ steps :
223+ - name : Sign APT repository on trixie
224+ run : |
225+ export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_APT }}
226+ export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY_APT }}
227+ export AWS_REGION=eu-north-1
228+ sudo apt update -y
229+ sudo apt install -y awscli curl jq
230+
231+ for DIST in trixie; do
232+ aws s3 cp s3://apt.defguard.net/dists/${DIST}/Release .
233+
234+ curl -X POST "${{ secrets.DEFGUARD_SIGNING_URL }}?signature_type=both" \
235+ -H "Authorization: Bearer ${{ secrets.DEFGUARD_SIGNING_API_KEY }}" \
236+ -F "file=@Release" \
237+ -o response.json
238+
239+ cat response.json | jq -r '.files["Release.gpg"].content' | base64 --decode > Release.gpg
240+ cat response.json | jq -r '.files.Release.content' | base64 --decode > InRelease
241+
242+ aws s3 cp Release.gpg s3://apt.defguard.net/dists/${DIST}/ --acl public-read
243+ aws s3 cp InRelease s3://apt.defguard.net/dists/${DIST}/ --acl public-read
244+
245+ done
246+ (aws s3 ls s3://apt.defguard.net/dists/ --recursive; aws s3 ls s3://apt.defguard.net/pool/ --recursive) | awk '{print "<a href=\""$4"\">"$4"</a><br>"}' > index.html
247+ aws s3 cp index.html s3://apt.defguard.net/ --acl public-read
0 commit comments