blob: 9f584a197541e9b10f14298f808117bb07dc7fca (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
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
|