Skip to content

CI

CI #79

Workflow file for this run

name: CI
on:
push:
pull_request:
schedule:
- cron: '0 8 * * 3' # Every Wednesday at 08:00
jobs:
build:
runs-on: ubuntu-latest
container:
image: registry.gitlab.com/islandoftex/images/texlive:latest
strategy:
matrix:
engine: [pdflatex, lualatex, xelatex]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
# `actions/checkout` default input `set-safe-directory: true` doesn't work
# for containers.
# see for example https://github.com/actions/checkout/issues/766
- name: Fixup Run actions/checkout
run: git config --global --add safe.directory '*'
- name: 'Install pgf-pie'
run: |
tlmgr init-usertree --usertree $PWD
echo "TEXMFHOME=$PWD" >> $GITHUB_ENV
- name: 'Get the revision'
run: |
echo "GIT_TAG=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV
- name: 'Build the manual'
run: |
cd doc/latex/pgf-pie
while : ; do
${{ matrix.engine }}-dev -shell-escape -halt-on-error -interaction=nonstopmode pgf-pie-manual.tex
grep -q -E "(There were undefined references|Rerun to get (cross-references|the bars) right)" *.log || break
[ "$(( thisrun=$(( thisrun + 1 )) ))" -lt 5 ] || { echo "Reruns exceeded"; exit 1; }
done
if [ "${{ matrix.engine }}" = "latex" ]; then
dvips pgf-pie-manual.dvi
ps2pdf pgf-pie-manual.ps
fi
cd -
- name: 'ZIP: Build'
run: |
git ls-files | sed '/^\./d;/^ci/d' | tee FILES
echo doc/latex/pgf-pie/pgf-pie-manual.pdf | tee -a FILES
tar --xform='s$\(doc\|tex\)/latex/pgf-pie/$$g' \
--xform='s$^$pgf-pie/$g' \
-czvf pgf-pie_${GIT_TAG}.tar.gz $(cat FILES)
- name: "ZIP: Sign"
if: |
matrix.engine == 'pdflatex' &&
github.event_name != 'pull_request' &&
env.GPG_SECRET_KEY != null
env:
GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }}
GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }}
run: |
# get the keys
printenv GPG_SECRET_KEY > "pgf-${GIT_TAG}.sec"
printenv GPG_PUBLIC_KEY > "pgf-${GIT_TAG}.pub"
# sign the products
export GNUPGHOME=$(mktemp -d)
install -dm 0700 "$GNUPGHOME"
gpg --import "pgf-${GIT_TAG}.sec"
gpg --armor --output "pgf-pie_${GIT_TAG}.tar.gz.sig" --detach-sign "pgf-pie_${GIT_TAG}.tar.gz"
rm -rf "$GNUPGHOME"
# verify the signature against the distributed public key
export GNUPGHOME=$(mktemp -d)
install -dm 0700 "$GNUPGHOME"
gpg --import "pgf-${GIT_TAG}.pub"
gpg --verify "pgf-pie_${GIT_TAG}.tar.gz.sig"
rm -rf "$GNUPGHOME"
- name: "Release: create"
uses: actions/create-release@v1
id: create_release
if: matrix.engine == 'pdflatex' && startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.GIT_TAG }}
release_name: ${{ env.GIT_TAG }}
body_path: doc/latex/pgf-pie/RELEASE_NOTES.md
- name: "Release: upload manual"
uses: actions/upload-release-asset@v1
if: matrix.engine == 'pdflatex' && startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: doc/latex/pgf-pie/pgf-pie-manual.pdf
asset_name: pgf-pie-manual-${{ env.GIT_TAG }}.pdf
asset_content_type: application/pdf
- name: "Release: upload public key"
uses: actions/upload-release-asset@v1
if: matrix.engine == 'pdflatex' && startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./pgf-${{ env.GIT_TAG }}.pub
asset_name: pgf-${{ env.GIT_TAG }}.pub
asset_content_type: text/plain
- name: "Release: upload ZIP"
uses: actions/upload-release-asset@v1
if: matrix.engine == 'pdflatex' && startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./pgf-pie_${{ env.GIT_TAG }}.tar.gz
asset_name: pgf-pie_${{ env.GIT_TAG }}.tar.gz
asset_content_type: application/gzip
- name: "Release: upload ZIP signature"
uses: actions/upload-release-asset@v1
if: matrix.engine == 'pdflatex' && startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./pgf-pie_${{ env.GIT_TAG }}.tar.gz.sig
asset_name: pgf-pie_${{ env.GIT_TAG }}.tar.gz.sig
asset_content_type: text/plain
- name: "CTAN: Validate"
if: matrix.engine == 'pdflatex'
uses: pgf-tikz/actions/ctan-upload@master
with:
action: validate
announcement: doc/latex/pgf-pie/RELEASE_NOTES.md
author: 'The PGF/TikZ Team;Xu Yuan'
bugs: https://github.com/pgf-tikz/pgf-pie/issues
ctanPath: /graphics/pgf/contrib/pgf-pie
description: doc/latex/pgf-pie/description.html
email: [email protected]
file: 'pgf-pie_${{ env.GIT_TAG }}.tar.gz'
license: 'gpl2;lppl1.3c'
note: |
The release files are signed using a detached signature. You can obtain the
signature from the GitHub release page
https://github.com/pgf-tikz/pgf-pie/releases/download/${{ env.GIT_TAG }}/pgf-pie_${{ env.GIT_TAG }}.tar.gz.sig
pkg: pgf-pie
repository: https://github.com/pgf-tikz/pgf-pie
summary: Draw pie charts, using PGF
support: https://tug.org/mailman/listinfo/pgf-tikz
update: true
uploader: github-actions
version: ${{ env.GIT_TAG }}
- name: "CTAN: Upload"
if: |
matrix.engine == 'pdflatex' &&
startsWith(github.ref, 'refs/tags/') &&
github.repository == 'pgf-tikz/pgf-pie'
uses: pgf-tikz/actions/ctan-upload@master
with:
action: upload
announcement: doc/latex/pgf-pie/RELEASE_NOTES.md
author: 'The PGF/TikZ Team;Xu Yuan'
bugs: https://github.com/pgf-tikz/pgf-pie/issues
ctanPath: /graphics/pgf/contrib/pgf-pie
description: doc/latex/pgf-pie/description.html
email: [email protected]
file: 'pgf-pie_${{ env.GIT_TAG }}.tar.gz'
license: 'gpl2;lppl1.3c'
note: |
The release files are signed using a detached signature. You can obtain the
signature from the GitHub release page
https://github.com/pgf-tikz/pgf-pie/releases/download/${{ env.GIT_TAG }}/pgf-pie_${{ env.GIT_TAG }}.tar.gz.sig
pkg: pgf-pie
repository: https://github.com/pgf-tikz/pgf-pie
summary: Draw pie charts, using PGF
support: https://tug.org/mailman/listinfo/pgf-tikz
update: true
uploader: github-actions
version: ${{ env.GIT_TAG }}