Skip to content

Fixing Ch 86 newspaper headlines #76

Fixing Ch 86 newspaper headlines

Fixing Ch 86 newspaper headlines #76

name: Check and Make eBook
# This workflow runs upon
# - push to main (check, make, publish)
# - create new PR (check, make)
on:
workflow_dispatch:
push:
branches: ["main"]
pull_request:
branches: ["main"]
# permissions:
# contents: read
jobs:
#
# check source code
#
check:
runs-on: ubuntu-24.04
outputs:
cache-hit: ${{ steps.cache-lookup.outputs.cache-hit }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 1 # 0 if you want to push to repo
- name: Calculate hash on chapters/*.tex
id: calculate-hash
run: |
echo "hash=${{ hashFiles('chapters/*.tex') }}" >> $GITHUB_OUTPUT
touch hash-chapters.txt
- name: Cache lookup
id: cache-lookup
uses: actions/cache@v4
with:
path: hash-chapters.txt
key: chapter-hash-for-ebook-${{ github.ref_name }}-${{ steps.calculate-hash.outputs.hash }}
- name: Python set up
uses: actions/setup-python@v5
with:
python-version: "3.12"
# no packages besides pytest installed, so no caching needed
# cache: "pip"
- name: Run pytest unittests
run: |
pip install pytest
pytest
- name: Check chapters for known issues
run: python3 -O scripts/check_chapters.py
- name: Check pre-commit hooks
uses: pre-commit/action@v3.0.1
#
# make eBook
#
make:
needs: check
# do not run for unchanged tex files
if: needs.check.outputs.cache-hit != 'true'
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 1 # 0 if you want to push to repo
- name: Python set up
uses: actions/setup-python@v5
with:
python-version: "3.12"
# no packages installed, so no caching
# cache: "pip"
# - name: setup environment to DE lang
# run: |
# cd /usr/share/locales
# sudo ./install-language-pack de_DE.UTF-8
- name: ls before
run: |
pwd
ls -l
- name: Install apt packages using cache
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: texlive-extra-utils pandoc calibre imagemagick ghostscript
version: 1.0
# execute_install_scripts: true
- name: Install ImageMagick to fix caching issue
# since cache does not properly work / "convert" not found
run: |
sudo apt-get install imagemagick
- name: Print versions
run: |
cat /etc/os-release
# xelatex -v
# latexmk -v
calibre --version
pandoc --version
python3 --version
- name: Make eBooks
run: |
wget --quiet https://github.com/entorb/hpmor-de/releases/download/WorkInProgress/hpmor.pdf -O hpmor.pdf
sh scripts/make_ebooks.sh > /dev/null
- name: ls after
run: |
pwd
ls -l
- name: Upload eBooks as artifact
uses: actions/upload-artifact@v4
with:
name: ebooks
path: |
./hpmor.docx
./hpmor.html
./hpmor.epub
./hpmor.mobi
./hpmor.fb2
retention-days: 7
#
# make upload to release WorkInProgress
#
upload:
needs: make
# only for push into main branch
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-24.04
steps:
- name: Download eBooks artifact
uses: actions/download-artifact@v4
with:
name: ebooks
- name: Publish eBooks to release WorkInProgress
uses: softprops/action-gh-release@v2
with:
tag_name: WorkInProgress
prerelease: true
files: |
./hpmor.docx
./hpmor.html
./hpmor.epub
./hpmor.mobi
./hpmor.fb2