Skip to content

Commit 88ce8ee

Browse files
authored
copy APT repo update workflow from main (#268)
* copy APT repo update workflow from main * update fpm config
1 parent fd034d8 commit 88ce8ee

2 files changed

Lines changed: 97 additions & 2 deletions

File tree

.fpm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
-s dir
22
--name defguard-proxy
3-
--description "defguard proxy service"
3+
--description "Defguard Edge service"
44
--url "https://defguard.net/"
5-
--maintainer "teonite"
5+
--maintainer "Defguard"
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: Update repositories with packages
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
update-apt:
9+
runs-on:
10+
- self-hosted
11+
- Linux
12+
- X64
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
17+
- name: Install gh cli
18+
run: |
19+
sudo apt-get install -y gh
20+
21+
- name: Download .deb assets from release
22+
env:
23+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24+
run: |
25+
mkdir debs
26+
gh release download "${{ github.event.release.tag_name }}" \
27+
--pattern "*.deb" \
28+
--dir debs
29+
30+
- name: Install ruby with deb-s3
31+
run: |
32+
sudo apt-get install -y ruby
33+
gem install deb-s3
34+
echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH
35+
36+
- name: Upload DEB to APT repository
37+
run: |
38+
if [[ "${{ github.event.release.prerelease }}" == "true" ]]; then
39+
component="pre-release"
40+
else
41+
component="release"
42+
fi
43+
44+
for deb_file in debs/*.deb; do
45+
if [[ "$deb_file" == *"ubuntu-22-04-lts"* ]]; then
46+
codename="bookworm"
47+
else
48+
codename="trixie"
49+
fi
50+
51+
echo "Uploading $deb_file to $codename"
52+
deb-s3 upload -l \
53+
--bucket=apt.defguard.net \
54+
--access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} \
55+
--secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} \
56+
--s3-region=eu-north-1 \
57+
--no-fail-if-exists \
58+
--codename="$codename" \
59+
--component="$component" \
60+
"$deb_file"
61+
done
62+
63+
apt-sign:
64+
needs:
65+
- update-apt
66+
runs-on:
67+
- self-hosted
68+
- Linux
69+
- X64
70+
steps:
71+
- name: Sign APT repository
72+
run: |
73+
export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_APT }}
74+
export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY_APT }}
75+
export AWS_REGION=eu-north-1
76+
sudo apt update -y
77+
sudo apt install -y awscli curl jq
78+
79+
for DIST in trixie bookworm; do
80+
aws s3 cp s3://apt.defguard.net/dists/${DIST}/Release .
81+
82+
curl -X POST "${{ secrets.DEFGUARD_SIGNING_URL }}?signature_type=both" \
83+
-H "Authorization: Bearer ${{ secrets.DEFGUARD_SIGNING_API_KEY }}" \
84+
-F "file=@Release" \
85+
-o response.json
86+
87+
cat response.json | jq -r '.files["Release.gpg"].content' | base64 --decode > Release.gpg
88+
cat response.json | jq -r '.files.Release.content' | base64 --decode > InRelease
89+
90+
aws s3 cp Release.gpg s3://apt.defguard.net/dists/${DIST}/ --acl public-read
91+
aws s3 cp InRelease s3://apt.defguard.net/dists/${DIST}/ --acl public-read
92+
93+
done
94+
(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
95+
aws s3 cp index.html s3://apt.defguard.net/ --acl public-read

0 commit comments

Comments
 (0)