Skip to content

Commit f63eef9

Browse files
committed
Add release workflow
1 parent 7065652 commit f63eef9

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
tags:
6+
- '[0-9][0-9][0-9][0-9].[0-9]*'
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
container:
12+
image: archlinux:base-devel
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Validate version
19+
run: |
20+
TAG_VERSION="${GITHUB_REF_NAME}"
21+
PKGBUILD_VERSION=$(grep -oP '^pkgver=\K.*' PKGBUILD)
22+
if [ "$TAG_VERSION" != "$PKGBUILD_VERSION" ]; then
23+
echo "::error::Tag ($TAG_VERSION) does not match PKGBUILD pkgver ($PKGBUILD_VERSION)"
24+
exit 1
25+
fi
26+
27+
- name: Create build user
28+
run: |
29+
useradd -m builder
30+
chown -R builder:builder .
31+
32+
- name: Build packages
33+
run: su builder -c 'makepkg'
34+
35+
- name: Build repo database
36+
run: su builder -c 'repo-add lemuel.db.tar.xz *.pkg.tar.zst'
37+
38+
- name: Prepare database files
39+
run: |
40+
rm lemuel.db lemuel.files
41+
cp lemuel.db.tar.xz lemuel.db
42+
cp lemuel.files.tar.xz lemuel.files
43+
44+
- name: Create GitHub Release
45+
uses: softprops/action-gh-release@v2
46+
with:
47+
tag_name: ${{ github.ref_name }}
48+
name: ${{ github.ref_name }}
49+
files: |
50+
*.pkg.tar.zst
51+
lemuel.db
52+
lemuel.db.tar.xz
53+
lemuel.files
54+
lemuel.files.tar.xz

0 commit comments

Comments
 (0)