name: Build Arch Package on: schedule: - cron: "@weekly" workflow_dispatch: jobs: check-and-build: runs-on: archlinux-basedevel-latest permissions: packages: write contents: write steps: - name: Checkout repo uses: actions/checkout@v4 - name: Setup build user run: | pacman -Sy --noconfirm git pacman-contrib sudo useradd -m builduser echo "builduser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/builduser chmod 0440 /etc/sudoers.d/builduser chown -R builduser:builduser $PWD - name: Get Pandora Version id: get_tag run: | VERSION=$(git ls-remote --tags --sort='version:refname' https://github.com/Moulberry/PandoraLauncher.git | tail -n 1 | cut -d/ -f3 | sed 's/^v//') echo "latest_tag=$VERSION" >> $GITHUB_OUTPUT - name: Read Current pkgver id: current run: | source PKGBUILD echo "current=$pkgver" >> $GITHUB_OUTPUT - name: Compare Version id: compare run: | if [ "${{ steps.get_tag.outputs.latest_tag }}" != "${{ steps.current.outputs.current }}" ]; then echo "build=true" >> $GITHUB_OUTPUT else echo "build=false" >> $GITHUB_OUTPUT fi - name: Update PKGBUILD if: steps.compare.outputs.build == 'true' run: | sed -i "s/pkgver=.*/pkgver=${{ steps.get_tag.outputs.latest_tag }}/" PKGBUILD sudo -u builduser updpkgsums sudo -u builduser makepkg --printsrcinfo > .SRCINFO - name: Build Package if: steps.compare.outputs.build == 'true' run: | sudo -u builduser makepkg -sf --noconfirm - name: Upload On Gitea Package if: steps.compare.outputs.build == 'true' env: TOKEN: ${{ secrets.GITEA_TOKEN }} run: | curl -H "Authorization: token $TOKEN" \ -H "Content-Type: application/octet-stream" \ --upload-file *.pkg.tar.zst \ https://git.azur.webhop.me/api/packages/Azur/arch/pandora-arch - name: Configure Git if: steps.compare.outputs.build == 'true' run: | git config user.name "gitea-actions" git config user.email "actions@gitea.local" - name: Commit changes if: steps.compare.outputs.build == 'true' run: | git add PKGBUILD .SRCINFO git commit -m "chore: bump to ${{ steps.get_tag.outputs.latest_tag }}" || echo "No changes" - name: Push changes if: steps.compare.outputs.build == 'true' env: TOKEN: ${{ secrets.GITEA_TOKEN }} run: | git remote set-url origin https://oauth2:${TOKEN}@git.azur.webhop.me/Azur/pandora-arch.git git push origin HEAD:main