name: Build and Publish Debian Package #on: [push] on: push: tags: - "v*" env: DISTRIBUTION: bookworm COMPONENT: main jobs: build: runs-on: docker container: image: catthehacker/ubuntu:act-latest steps: - name: Checkout code uses: actions/checkout@v3 # - name: Debug file structure # run: ls -R # - name: Debug pwd # run: pwd - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.13' - name: Install FPM dependencies run: | sudo apt-get update sudo apt-get install -y ruby ruby-dev build-essential sudo gem install --no-document fpm - name: Prepare package structure run: | # Create temporary packaging directory mkdir -p package/usr/local/bin mkdir -p package/etc/systemd/system # Copy magicfw.py as the executable and rename if needed cp src/magicfw.py package/usr/local/bin/magicfw chmod +x package/usr/local/bin/magicfw # Copy the systemd service file cp systemd/magicfw.service package/etc/systemd/system/ - name: Generate version number run: | VERSION=$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//') echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Build Debian package with FPM run: | # The -s dir option tells FPM the source is a directory. # The -t deb option builds a deb package. # -n is the package name and -v the version. fpm -s dir -t deb -n magicfw-docker -v $VERSION -C package \ -d "python3" \ -d "python3-docker" - name: Upload to Forgejo Debian Registry env: FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} run: | PACKAGE_NAME="magicfw-docker_${VERSION}_amd64.deb" # Update version accordingly curl --user "your_username:$FORGEJO_TOKEN" \ --upload-file ./${PACKAGE_NAME} \ "https://git.marcorealacci.me/api/packages/${{ github.repository_owner }}/debian/pool/${{env.DISTRIBUTION}}/${{env.COMPONENT}}/upload"