fix typos in document #147
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Compile Latex and Release PDF | |
on: | |
push: | |
tags: | |
- 'v*' | |
branches: | |
- '*' | |
jobs: | |
workflow-setup: | |
name: Workflow Setup | |
runs-on: ubuntu-24.04 | |
outputs: | |
runner: ${{ steps.texlive_runner.outputs.runner }} | |
prefix: ${{ steps.doc_prefix.outputs.prefix }} | |
prefixwithref: ${{ steps.doc_prefix.outputs.prefixwithref }} | |
pdf: ${{ steps.doc_prefix.outputs.pdf }} | |
tex: ${{ steps.doc_prefix.outputs.tex }} | |
steps: | |
- name: Get TeXLive Runner | |
id: texlive_runner | |
run: | | |
if ! [ -z "$GH_TOKEN" ]; then | |
runners=$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /orgs/${{ github.repository_owner }}/actions/runners) | |
texlive=$(echo $runners | jq --arg label "self-texlive" '[.runners[] | any(.labels[]; .name == $label) and .status == "online"] | any') | |
if [ "$texlive" = "false" ]; then | |
echo "runner=ubuntu-latest" >> "$GITHUB_OUTPUT" | |
else | |
echo "runner=self-texlive" >> "$GITHUB_OUTPUT" | |
fi | |
else | |
echo "runner=ubuntu-latest" >> "$GITHUB_OUTPUT" | |
fi | |
env: | |
GH_TOKEN: ${{ secrets.TOKEN_RUNNER }} | |
- name: Get Document Prefix | |
id: doc_prefix | |
run: | | |
prefix=$(echo "${{ github.repository }}" | cut -d'/' -f2) | |
echo "prefix=$prefix" >> "$GITHUB_OUTPUT" | |
prefixwithref=$(echo "$prefix")-${{ github.ref_name }} | |
echo "prefixwithref=$prefixwithref" >> "$GITHUB_OUTPUT" | |
echo "pdf=$prefixwithref.pdf" >> "$GITHUB_OUTPUT" | |
echo "tex=$prefix.tex" >> "$GITHUB_OUTPUT" | |
- | |
name: Show Outputs | |
run: | | |
echo "runner=${{ steps.texlive_runner.outputs.runner }}" | |
echo "prefix=${{ steps.doc_prefix.outputs.prefix }}" | |
echo "prefixwithref=${{ steps.doc_prefix.outputs.prefixwithref }}" | |
echo "pdf=${{ steps.doc_prefix.outputs.pdf }}" | |
echo "tex=${{ steps.doc_prefix.outputs.tex }}" | |
build_latex: | |
needs: workflow-setup | |
runs-on: ${{ needs.workflow-setup.outputs.runner }} | |
name: Build LaTeX Artifact | |
env: | |
VERSION: ${{ github.ref_name }} | |
ZOTERO_API_KEY: ${{ secrets.ZOTERO_API_KEY }} | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: Install hooks | |
run: | | |
bash ./a.cli setup | |
- name: Update BibTeX references | |
if: ${{ github.ref != 'refs/heads/main' }} | |
run: | | |
bash ./a.cli update-bibtex | |
- name: Commit new references.bib | |
if: ${{ github.ref != 'refs/heads/main' }} | |
run: | | |
git config --local user.email "${{ github.actor }}@users.noreply.github.com" | |
git config --local user.name "${{ github.actor }}" | |
git add references.bib | |
if ! git diff --cached --quiet; then | |
git commit -m "Update references.bib from Zotero" | |
git push | |
else | |
echo "No changes in references.bib to commit." | |
fi | |
- name: Compile LaTeX document | |
uses: xu-cheng/latex-action@v3 | |
if: ${{ needs.workflow-setup.outputs.runner == 'ubuntu-latest' }} | |
with: | |
root_file: ${{ needs.workflow-setup.outputs.tex }} | |
latexmk_shell_escape: true | |
post_compile: "latexmk -c; rm -rf _minted*" | |
- name: Compile LaTeX document | |
if: ${{ needs.workflow-setup.outputs.runner == 'self-texlive' }} | |
run: | | |
latexmk -shell-escape -pdf -file-line-error -halt-on-error -interaction=nonstopmode ${{ needs.workflow-setup.outputs.tex }} | |
- name: Rename PDF | |
run: mv ${{ needs.workflow-setup.outputs.prefix }}.pdf ${{ needs.workflow-setup.outputs.pdf }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ needs.workflow-setup.outputs.prefixwithref }} | |
path: | | |
./*.tex | |
./*.bib | |
./*.gin | |
./*.bbl | |
./${{ needs.workflow-setup.outputs.pdf }} | |
./README.adoc | |
./hooks* | |
./img* | |
./dat* | |
./*.png | |
./a.cli | |
./*.sty | |
./chapters* | |
./software* | |
./exclude.txt | |
./sections* | |
./litterature* | |
./graphics* | |
!./.git* | |
!./.github* | |
!./.vscode* | |
!./.idea* | |
!./.DS_Store* | |
!./.gitignore* | |
check: | |
needs: [build_latex,workflow-setup] | |
runs-on: ${{ needs.workflow-setup.outputs.runner }} | |
name: Check LaTeX Artifact | |
steps: | |
- | |
name: Download Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ needs.workflow-setup.outputs.prefixwithref }} | |
path: ${{ github.workspace }}/artifact | |
- | |
name: List Artifact | |
run: ls -R ${{ github.workspace }} | |
- | |
name: Check compilation of LaTeX document from artifact | |
if: ${{ needs.workflow-setup.outputs.runner == 'ubuntu-latest' }} | |
uses: xu-cheng/latex-action@v3 | |
with: | |
root_file: ${{ needs.workflow-setup.outputs.tex }} | |
latexmk_shell_escape: true | |
post_compile: "latexmk -c; rm -rf _minted*" | |
working_directory: ${{ github.workspace }}/artifact | |
- | |
name: Check compilation of LaTeX document from artifact | |
if: ${{ needs.workflow-setup.outputs.runner == 'self-texlive' }} | |
run: | | |
latexmk -shell-escape -pdf -file-line-error -halt-on-error -interaction=nonstopmode ${{ needs.workflow-setup.outputs.tex }} | |
working-directory: ${{ github.workspace }}/artifact | |
release: | |
needs: [workflow-setup,build_latex, check] | |
runs-on: ${{ needs.workflow-setup.outputs.runner }} | |
name: Create Release | |
if: startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- name: Download Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ needs.workflow-setup.outputs.prefixwithref }} | |
path: ${{ github.workspace }}/artifact | |
- name: Archive Article | |
run: | | |
temp_dir=$(mktemp -d) | |
cd artifact | |
zip -r "${temp_dir}/${{ needs.workflow-setup.outputs.prefixwithref }}.zip" ./ | |
cd .. | |
mv "${temp_dir}/${{ needs.workflow-setup.outputs.prefixwithref }}.zip" ./ | |
rm -rf "$temp_dir" | |
rm -rf "$temp_dir" | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: false | |
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc') || contains(github.ref, 'preview') }} | |
name: Release ${{ github.ref_name }} | |
generate_release_notes: true | |
tag_name: ${{ github.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: | | |
artifact/${{ needs.workflow-setup.outputs.prefixwithref }}.pdf | |
${{ needs.workflow-setup.outputs.prefixwithref }}.zip |