fah-debian13/.forgejo/workflows/build.yml
mrkmntal 4a2379be7d
All checks were successful
Build & Upload FAH Client DEB / build (push) Successful in 2m18s
Add rsync to workflow build
2025-11-07 18:06:02 -05:00

50 lines
1.5 KiB
YAML

name: Build & Upload FAH Client DEB
on:
push:
branches:
- master
jobs:
build:
runs-on: [self-hosted]
env:
BRANCH: ${{ github.ref_name }}
COMMIT: ${{ github.sha }}
steps:
- name: Clone current branch
run: |
git clone --branch "$BRANCH" https://mentalnet.xyz/forgejo/markmental/fah-debian13.git .
echo "✅ Checked out branch $BRANCH ($COMMIT)"
- name: Install packaging tools
run: |
apt-get update
apt-get install -y dpkg-dev rsync fakeroot lintian
- name: Build Debian package
run: |
mkdir -p build/"$BRANCH"/staging
SHORT_HASH=$(echo "$COMMIT" | cut -c1-7)
PKG_NAME="fahclient-${BRANCH}-${SHORT_HASH}.deb"
# Copy only actual package data, excluding Git/CI junk
rsync -a --exclude='.git*' --exclude='build' --exclude='.forgejo' ./ build/"$BRANCH"/staging/
# Build from clean staging dir
dpkg-deb --build build/"$BRANCH"/staging build/"$BRANCH"/"$PKG_NAME"
echo "🎉 Built $PKG_NAME from clean staging directory"
- name: Verify package
run: |
lintian build/"$BRANCH"/*.deb || true
dpkg-deb --info build/"$BRANCH"/*.deb
dpkg-deb --contents build/"$BRANCH"/*.deb | head -20
- name: Upload .deb artifact
uses: actions/upload-artifact@v3
with:
name: fahclient-${{ env.BRANCH }}-${{ env.COMMIT }}
path: build/${{ env.BRANCH }}/*.deb