Update check-and-ebook.yml #87
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: 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/[email protected] | |
# | |
# 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: Download previous hpmor.html | |
run: | | |
wget --quiet https://github.com/entorb/hpmor-de/releases/download/WorkInProgress/hpmor.html -O hpmor-prev.html | |
- 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: Compare to previous hpmor.html | |
run: | | |
diff -u hpmor-prev.html hpmor.html > hpmor-html-diff.log | |
rm hpmor-prev.html | |
- 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-html-diff.log | |
./hpmor.epub | |
./hpmor.mobi | |
./hpmor.fb2 | |
retention-days: 14 | |
# | |
# 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 |