@@ -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