fix secret name for ZOTERO_API_KEY #74
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.EXA_MA_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 | |
run: | | |
bash ./a.cli update-bibtex | |
- name: Commit new references.bib | |
run: | | |
git config --local user.email "${{ github.actor }}@users.noreply.github.com" | |
git config --local user.name "${{ github.actor }}" | |
git add references.bib | |
git commit -m "Update references.bib from Zotero" | |
- 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) | |
tar -czvf "${temp_dir}/${{ needs.workflow-setup.outputs.prefixwithref }}.tar.gz" -C artifact ./ | |
mv "${temp_dir}/${{ needs.workflow-setup.outputs.prefixwithref }}.tar.gz" ./ | |
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 }}.tar.gz |