include prelude.mk .PHONY: all all: build .PHONY: build build: @echo '======================================================= Build ===' makepkg --clean --cleanbuild --force --noconfirm --noprogressbar --syncdeps makepkg --printsrcinfo > .SRCINFO @echo '=================================================================' .PHONY: commit commit: @echo '====================================================== Commit ===' git add PKGBUILD .SRCINFO source PKGBUILD && git commit -m "aur: $$pkgver-$$pkgrel" @echo '=================================================================' .PHONY: push push: @echo '================================================= Push to AUR ===' source PKGBUILD && git push "ssh://aur@aur.archlinux.org/$$pkgname.git" "$$( git symbolic-ref HEAD ):master" @echo '============================================ Push to upstream ===' git push @echo '=================================================================' .PHONY: pkgver pkgver: @git fetch && \ new_pkgver="$$( git describe --tags --abbrev=0 origin/master | sed 's/^v//' )" && \ source PKGBUILD && \ echo '================================================ Check pkgver ===' && \ echo "Package pkgver: $$pkgver" && \ echo "Upstream pkgver: $$new_pkgver" && \ echo '=================================================================' && \ if [ "$$pkgver" != "$$new_pkgver" ]; then \ sed -i -e "s/^pkgver=.*/pkgver=$$new_pkgver/" PKGBUILD && \ sed -i -e "s/^pkgrel=.*/pkgrel=1/" PKGBUILD ; \ fi .PHONY: maintenance maintenance: pkgver $(MAKE) build @git_status="$$( git status --porcelain=v1 )" && \ if [ -z "$$git_status" ]; then \ true; \ elif [ "$$git_status" = $$' M .SRCINFO\n M PKGBUILD' ]; then \ $(MAKE) commit && \ $(MAKE) push ; \ else \ echo; \ echo '-----------------------------------------------------------------'; \ echo 'Error: unrecognized modifications in the repository:'; \ echo "$$git_status"; \ echo '-----------------------------------------------------------------'; \ exit 1; \ fi .PHONY: ci/deps ci/deps: @echo '============================================ CI: dependencies ===' pacman -Syu --noconfirm git openssh # makepkg for no reason hard-forbids running as root. Kill me now. .PHONY: ci/user ci/user: @echo '============================================ CI: builder user ===' useradd -m -s /bin/bash builder passwd -d builder echo 'builder ALL=(ALL) ALL' >> /etc/sudoers chown -R builder:builder -- "$$GITHUB_WORKSPACE" # See https://github.com/actions/checkout#push-a-commit-using-the-built-in-token .PHONY: ci/git ci/git: @echo '=========================================== CI: configure git ===' runuser -u builder -- git -C "$$GITHUB_WORKSPACE" config user.name "github-actions[bot]" runuser -u builder -- git -C "$$GITHUB_WORKSPACE" config user.email "41898282+github-actions[bot]@users.noreply.github.com" .PHONY: ci/setup ci/setup: ci/deps ci/setup: ci/user ci/setup: ci/git .PHONY: ci ci: ci/setup ci: runuser -u builder -- $(MAKE) -C "$$GITHUB_WORKSPACE" maintenance