Skip to content

Update LTG

Update LTG #206

Workflow file for this run

name: Update Files
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}"
cancel-in-progress: true
jobs:
generatetex:
runs-on: ubuntu-latest
strategy:
matrix:
language: [en, de]
font: [default, times]
listings: [listings, minted]
enquotes: [csquotes]
tweak_outerquote: [babel]
todo: [pdfcomment]
examples: [true]
steps:
- name: Set up Git repository
uses: actions/checkout@v4
with:
submodules: recursive
ref: '${{ github.event.pull_request.head.ref }}'
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: 'generator-latex-template/package-lock.json'
- name: Make generator available globally
working-directory: ${{ github.workspace }}/generator-latex-template
run: |
npm install
npm link
npm install -g yo
- run: mkdir /tmp/ltg
- name: Generate template
shell: bash
working-directory: /tmp/ltg
run: |
yo $GITHUB_WORKSPACE/generator-latex-template/generators/app/index.js \
--githubpublish\
--docker=iot\
--documentclass=lncs\
--papersize=a4\
--latexcompiler=both\
--bibtextool=bibtex\
--overleaf=true\
--texlive=2024\
--lang=${{ matrix.language }}\
--font=${{ matrix.font }}\
--listings=${{ matrix.listings }}\
--enquotes=${{ matrix.enquotes }}\
--tweakouterquote=${{ matrix.tweak_outerquote }}\
--todo=${{ matrix.todo }}\
--examples=${{ matrix.examples }}\
--howtotext=false
env:
yeoman_test: false
- name: Prepare files
working-directory: /tmp/ltg
run: |
ls -la
cp paper.tex paper-${{ matrix.language }}-${{ matrix.font }}-${{ matrix.listings }}.tex
if [ "paper-${{ matrix.language }}-${{ matrix.font }}-${{ matrix.listings }}.tex" != "paper-en-default-listings.tex" ]; then
# keep paper.tex only for English, default font, listings, cleveref
rm paper.tex
fi
# remove files which should not be overwritten
# _latexmkrc alternates between including and excluding "--shell-escape"; we just want to keep the minted + en version of it
if [ "${{ matrix.listings }}" != "minted" ] || [ "${{ matrix.lang }}" != "en" ]; then
rm _latexmkrc
rm -r .github/workflows
fi
# the LICENSE of the repository should be kept
rm LICENSE
# Files are ready
# Overwrite old versions in $GITHUB_WORKSPACE
cp -r * $GITHUB_WORKSPACE
cp -r .* $GITHUB_WORKSPACE
# output current status
cd ${{ github.workspace }}
git status
git diff
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
message: 'Update files based on generated files by template generator'
committer_email: [email protected]
push: false
- name: Push changes
run: |
parallel --retries 10 --delay 9 ::: "git pull --rebase; git push"
publish:
runs-on: ubuntu-latest
needs: [generatetex]
steps:
- name: Set up Git repository
uses: actions/checkout@v4
with:
ref: '${{ github.event.pull_request.head.ref }}'
- run: |
# ensure latest updates
git pull
cp paper-en-default-listings.tex paper.tex
cp paper-en-default-minted.tex paper-minted.tex
cp paper-en-times-listings.tex paper-newtx.tex
cp paper-en-times-minted.tex paper-minted-newtx.tex
# use latexmkrc (which is disabled due to easy overleaf usage)
cp _latexmkrc latexmkrc
- name: Install TeX Live
uses: zauguin/install-texlive@v3
with:
package_file: '${{ github.workspace }}/Texlivefile'
- name: Prepare latexmk
run: |
updmap -sys
texhash
tlmgr generate language --rebuild-sys
- run: latexmk paper.tex
- run: latexmk paper-minted.tex
- run: latexmk paper-newtx.tex
- run: latexmk paper-minted-newtx.tex
- run: |
mkdir publish
cp *.pdf publish/
cp paper.tex publish/
cp README.md publish/
cp .github/_config.yml publish/
- uses: actions/upload-artifact@v4
with:
name: publish
path: publish/
- name: Deploy
if: github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./publish
enable_jekyll: true
force_orphan: true
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'