tzpfms/.build.yml
2021-10-15 23:16:04 +02:00

96 lines
3.6 KiB
YAML

image: debian/sid
secrets:
- ccb6777e-650b-4fa2-87e1-e2342f5bb605 # tzpfms SSH key
- 513a97a6-300c-4749-93a7-7816b2c4f41d # tzpfms auth token
packages:
- clang
- llvm-dev
- pkg-config
- libtss2-dev
- libtspi-dev
- mandoc
- shellcheck
- curl
- groff
- ghostscript
- gsfonts
tasks:
- get-zfs: |
sudo sed -i 's/main/main contrib non-free/' /etc/apt/sources.list
sudo apt update
sudo apt install -y libzfslinux-dev
- build-gcc: |
cd tzpfms
make
find out/ -maxdepth 1 -type f -exec readelf -d {} +
make clean
- build-clang: |
cd tzpfms
CC=clang CXX=clang++ make
find out/ -maxdepth 1 -type f -exec readelf -d {} +
# https://nabijaczleweli.xyz/content/blogn_t/007-groff-Tps-cyrillic-et-al.html
- prep-fonts: |
mkdir /tmp/devps; cd /tmp/devps
for f in {C,T}{R,B,I,BI}; do
in="$(awk '$1 == "internalname" {print $2; exit}' "/usr/share/groff/current/font/devps/$f")";
echo $f: $in;
src="$(awk -v cur="/$in" '
$1 ~ /^\// && $2 ~ /^[\/\(]/ {
if($2 ~ /^\//)
aliases[$1] = $2;
else
paths[$1] = $2;
}
END {
while(cur in aliases)
cur = aliases[cur];
if(cur in paths) {
sub(/^\(/, "", paths[cur]);
sub(/(pfb)?\)$/, "", paths[cur]);
print paths[cur]
} else {
print "last: " cur > "/dev/stderr";
exit 1
}
}' /var/lib/ghostscript/fonts/Fontmap)";
echo ${src}afm;
afmtodit $(expr "$f" : C > /dev/null && printf -- -n) -cmi0 \
-d /usr/share/groff/current/font/devps/DESC \
-e /usr/share/groff/current/font/devps/text.enc \
"${src}afm" /usr/share/groff/current/font/devps/generate/textmap "$f";
done
- manpages: |
git -C tzpfms/ worktree add ../tzpfms-man man
cd tzpfms-man
git ls-tree -z --name-only HEAD | xargs -0 rm -r
cp -pr ../tzpfms/out/man/* .
git add .
sed -e 's/…/.../g' $(ls *.[12345678] | awk -F. '{print $2 "\t" $1}' | sort | awk -F'\t' '{print $2 "." $1}') | groff -K utf8 -tpe -mdoc -Tps > tzpfms.ps
ps2pdf tzpfms.ps tzpfms.pdf
git config user.email "nabijaczleweli/autouploader@nabijaczleweli.xyz"
git config user.name "наб autouploader"
git commit -m "Manpage update by job $JOB_ID" || exit 0
git remote set-url origin 'git@git.sr.ht:~nabijaczleweli/tzpfms'
ssh-keyscan git.sr.ht > ~/.ssh/known_hosts
git push
- release: |
tag="$(git -C tzpfms describe --abbrev=0 --tags || echo HEAD~1)"
[ "$(git -C tzpfms rev-list -n1 "$tag")" = "$(git -C tzpfms rev-list -n1 HEAD)" ] || exit 0
mkdir "tzpfms-$tag-bin-amd64"
mv tzpfms/out/zfs-tpm* "tzpfms-$tag-bin-amd64"
mv tzpfms/out/dracut "tzpfms-$tag-dracut"
mv tzpfms/out/initramfs-tools "tzpfms-$tag-initramfs-tools"
mv tzpfms/out/man "tzpfms-$tag-man"
mv tzpfms-man/tzpfms.ps "tzpfms-$tag-manual.ps"
mv tzpfms-man/tzpfms.pdf "tzpfms-$tag-manual.pdf"
for s in bin-amd64 dracut initramfs-tools man; do
tar -caf "tzpfms-$tag-$s.tbz2" "tzpfms-$tag-$s"
done
set +x # Avoid echoing the token
for f in *.tbz2 "tzpfms-$tag-manual.ps" "tzpfms-$tag-manual.pdf"; do
curl -H "Authorization: Bearer $(cat ~/.release-token)" \
-XPOST \
-F "file=@$f" \
"https://git.sr.ht/api/repos/tzpfms/artifacts/$tag"
done