Skip to content

Commit 3c5fba2

Browse files
committed
Auto-update AUR package on release
- Generates PKGBUILD and .SRCINFO without makepkg - Skips gracefully if AUR_SSH_KEY secret is not set - Uses separate SSH key for aur.archlinux.org
1 parent a670ef1 commit 3c5fba2

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,71 @@ jobs:
144144
git add Formula/jcode.rb
145145
git commit -m "Update to ${VERSION}" || echo "No changes"
146146
git push
147+
148+
- name: Update AUR package
149+
if: ${{ secrets.AUR_SSH_KEY != '' }}
150+
env:
151+
AUR_SSH_KEY: ${{ secrets.AUR_SSH_KEY }}
152+
run: |
153+
VERSION="${GITHUB_REF_NAME}"
154+
VERSION_NUM="${VERSION#v}"
155+
156+
LINUX_SHA=$(sha256sum artifacts/jcode-linux-x86_64/jcode-linux-x86_64.tar.gz | cut -d' ' -f1)
157+
LINUX_URL="https://github.com/1jehuang/jcode/releases/download/${VERSION}/jcode-linux-x86_64.tar.gz"
158+
159+
mkdir -p ~/.ssh
160+
echo "$AUR_SSH_KEY" > ~/.ssh/aur_key
161+
chmod 600 ~/.ssh/aur_key
162+
echo -e "Host aur.archlinux.org\n IdentityFile ~/.ssh/aur_key\n User aur\n StrictHostKeyChecking no" >> ~/.ssh/config
163+
164+
git clone ssh://aur@aur.archlinux.org/jcode-bin.git /tmp/jcode-aur
165+
166+
cat > /tmp/jcode-aur/PKGBUILD << 'PKGBUILD_END'
167+
# Maintainer: Jeremy Huang <jeremyhuang55555@gmail.com>
168+
pkgname=jcode-bin
169+
pkgver=VERSION_PLACEHOLDER
170+
pkgrel=1
171+
pkgdesc="AI coding agent powered by Claude and ChatGPT"
172+
arch=('x86_64')
173+
url="https://github.com/1jehuang/jcode"
174+
license=('MIT')
175+
provides=('jcode')
176+
conflicts=('jcode')
177+
source=("URL_PLACEHOLDER")
178+
sha256sums=('SHA_PLACEHOLDER')
179+
180+
package() {
181+
install -Dm755 "${srcdir}/jcode-linux-x86_64" "${pkgdir}/usr/bin/jcode"
182+
}
183+
PKGBUILD_END
184+
185+
sed -i "s|VERSION_PLACEHOLDER|${VERSION_NUM}|" /tmp/jcode-aur/PKGBUILD
186+
sed -i "s|URL_PLACEHOLDER|${LINUX_URL}|" /tmp/jcode-aur/PKGBUILD
187+
sed -i "s|SHA_PLACEHOLDER|${LINUX_SHA}|" /tmp/jcode-aur/PKGBUILD
188+
sed -i 's/^ //' /tmp/jcode-aur/PKGBUILD
189+
190+
# Generate .SRCINFO without makepkg
191+
cat > /tmp/jcode-aur/.SRCINFO << SRCINFO
192+
pkgbase = jcode-bin
193+
pkgdesc = AI coding agent powered by Claude and ChatGPT
194+
pkgver = ${VERSION_NUM}
195+
pkgrel = 1
196+
url = https://github.com/1jehuang/jcode
197+
arch = x86_64
198+
license = MIT
199+
provides = jcode
200+
conflicts = jcode
201+
source = ${LINUX_URL}
202+
sha256sums = ${LINUX_SHA}
203+
204+
pkgname = jcode-bin
205+
SRCINFO
206+
207+
sed -i 's/^ //' /tmp/jcode-aur/.SRCINFO
208+
209+
cd /tmp/jcode-aur
210+
git config user.name "Jeremy Huang"
211+
git config user.email "jeremyhuang55555@gmail.com"
212+
git add PKGBUILD .SRCINFO
213+
git commit -m "Update to ${VERSION}" || echo "No changes"
214+
git push

0 commit comments

Comments
 (0)