name: Build and Publish Debian Packages on: push: branches: - main - master paths: - 'sources/**' - 'buildpackages.sh' - '.gitea/workflows/**' workflow_dispatch: jobs: build: name: Build Packages runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install build dependencies run: | sudo apt-get update sudo apt-get install -y dpkg-dev rsync - name: Build all packages run: | chmod +x buildpackages.sh ./buildpackages.sh all - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: debian-packages path: staging/*.deb publish: name: Publish to eendoe repository needs: build runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' && github.event_name == 'push' steps: - name: Checkout repository uses: actions/checkout@v4 - name: Download built artifacts uses: actions/download-artifact@v4 with: name: debian-packages path: staging - name: Deploy packages to eendoe server env: SSH_KEY: ${{ secrets.EENDOE_SSH_KEY }} REMOTE_HOST: "eendoe.nl" REMOTE_USER: "bart" REMOTE_DIR: "/sites/repository/staging/" run: | if [ -n "$SSH_KEY" ]; then mkdir -p ~/.ssh echo "$SSH_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H "$REMOTE_HOST" >> ~/.ssh/known_hosts 2>/dev/null rsync -avz staging/*.deb "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}" echo "Successfully deployed packages to $REMOTE_HOST:$REMOTE_DIR" else echo "Secret EENDOE_SSH_KEY not configured. Skipping automated remote sync." fi