Skip to content

Commit dfb3eb8

Browse files
committed
Sign release archives, publish to R2 via rclone, mark RCs as pre-releases
1 parent 5d85134 commit dfb3eb8

1 file changed

Lines changed: 36 additions & 12 deletions

File tree

.github/workflows/release.yml

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,28 @@ jobs:
4040
run: GOOS=darwin GOARCH=arm64 go build -ldflags "-X main.version=${GITHUB_REF_NAME}" -o bin/darwin-arm64/gitte .
4141
- run: tar czf bin/gitte-darwin-arm64.tar.gz -C bin/darwin-arm64 gitte
4242

43+
- name: Import GPG key
44+
if: github.ref_type == 'tag'
45+
run: echo "${GPG_PRIVATE_KEY}" | gpg --batch --import
46+
env:
47+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
48+
49+
- name: Sign release archives
50+
if: github.ref_type == 'tag'
51+
run: |
52+
for f in bin/gitte-*; do
53+
gpg --batch --default-key "noc+gitte@cego.dk" --detach-sign --armor "$f"
54+
done
55+
4356
- name: Create GitHub Release
4457
if: github.ref_type == 'tag'
4558
run: |
46-
gh release create "${GITHUB_REF_NAME}" bin/gitte-*.tar.gz bin/gitte-*.zip --generate-notes ||
47-
gh release upload "${GITHUB_REF_NAME}" bin/gitte-*.tar.gz bin/gitte-*.zip --clobber
59+
PRERELEASE_FLAG=""
60+
if [[ "${GITHUB_REF_NAME}" == *"-rc."* ]]; then
61+
PRERELEASE_FLAG="--prerelease"
62+
fi
63+
gh release create "${GITHUB_REF_NAME}" bin/gitte-* --generate-notes ${PRERELEASE_FLAG} ||
64+
gh release upload "${GITHUB_REF_NAME}" bin/gitte-* --clobber
4865
env:
4966
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5067

@@ -53,16 +70,22 @@ jobs:
5370
continue-on-error: true
5471
env:
5572
VERSION: ${{ github.ref_name }}
56-
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
57-
PPA_SSH_KEY: ${{ secrets.PPA_SSH_KEY }}
73+
RCLONE_CONFIG_R2_TYPE: s3
74+
RCLONE_CONFIG_R2_PROVIDER: Cloudflare
75+
RCLONE_CONFIG_R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
76+
RCLONE_CONFIG_R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
77+
RCLONE_CONFIG_R2_ENDPOINT: ${{ secrets.R2_ENDPOINT }}
78+
RCLONE_CONFIG_R2_NO_CHECK_BUCKET: "true"
79+
R2_BUCKET: ${{ secrets.R2_BUCKET }}
80+
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
81+
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
5882
run: |
59-
sudo apt-get install -y dpkg-dev apt-utils
60-
61-
echo "${GPG_PRIVATE_KEY}" | gpg --batch --import
83+
sudo apt-get install -y dpkg-dev apt-utils rclone
6284
6385
DESCRIPTION="Developer environment orchestration tool"
6486
6587
mkdir -p ppa
88+
rclone copy "r2:${R2_BUCKET}/" ppa/
6689
6790
for ARCH in amd64 arm64; do
6891
SRCBIN="bin/linux-${ARCH}/gitte"
@@ -89,11 +112,12 @@ jobs:
89112
(cd ppa && gpg --default-key "noc+gitte@cego.dk" -abs -o - Release > Release.gpg)
90113
(cd ppa && gpg --default-key "noc+gitte@cego.dk" --clearsign -o - Release > InRelease)
91114
92-
echo "${PPA_SSH_KEY}" > /tmp/ppa_key
93-
chmod 600 /tmp/ppa_key
94-
rsync -az -e "ssh -i /tmp/ppa_key -o StrictHostKeyChecking=no" \
95-
ppa/ deploy@gitte-ppa.cego.dk:/var/www/ppa/
96-
rm /tmp/ppa_key
115+
rclone copy ppa/ "r2:${R2_BUCKET}/"
116+
117+
curl -sf -X POST "https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/purge_cache" \
118+
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
119+
-H "Content-Type: application/json" \
120+
--data '{"purge_everything":true}'
97121
98122
- name: Generate app token for formula push
99123
if: github.ref_type == 'tag'

0 commit comments

Comments
 (0)