Skip to content

Auto Release

Auto Release #13

Workflow file for this run

name: Auto Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install Chromium and CJK fonts
id: setupchrome
uses: browser-actions/setup-chrome@v2
with:
chrome-version: stable
- name: Install CJK fonts
run: |
sudo apt-get update
sudo apt-get install -y fonts-noto-cjk fonts-noto-cjk-extra
- name: Install mdpress 0.7.10
env:
MDPRESS_VERSION: "0.7.10"
MDPRESS_SHA256: "17e53e455996940bbbce64c69c43b3fb543f1501e03b74cf0434074efebd2db4"
run: |
archive="/tmp/mdpress_${MDPRESS_VERSION}_linux_amd64.tar.gz"
echo "Installing mdpress ${MDPRESS_VERSION}"
curl -fsSL "https://github.com/yeasy/mdPress/releases/download/v${MDPRESS_VERSION}/mdpress_${MDPRESS_VERSION}_linux_amd64.tar.gz" -o "$archive"
echo "${MDPRESS_SHA256} $archive" | sha256sum -c -
tar xzf "$archive" -C /tmp mdpress
sudo mv /tmp/mdpress /usr/local/bin/
mdpress --version
- name: Extract tag name
id: tag
run: echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Build PDF
run: mdpress build --format pdf --output context_engineering_guide-${{ steps.tag.outputs.TAG_NAME || 'latest' }}.pdf
- name: Create Release with PDF
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: context_engineering_guide-${{ steps.tag.outputs.TAG_NAME }}.pdf
- name: Upload PDF as artifact
uses: actions/upload-artifact@v7
with:
name: context_engineering_guide-pdf
path: "context_engineering_guide-*.pdf"
- name: Build HTML reader
id: htmlreader
continue-on-error: true
env:
CHROME_BIN: ${{ steps.setupchrome.outputs.chrome-path }}
run: |
# recent pandoc (apt's is too old for --embed-resources); + mermaid-cli using system Chrome
curl -fsSL https://github.com/jgm/pandoc/releases/download/3.5/pandoc-3.5-1-amd64.deb -o /tmp/pandoc.deb
sudo dpkg -i /tmp/pandoc.deb && pandoc --version | head -1
PUPPETEER_SKIP_DOWNLOAD=true npm install -g @mermaid-js/mermaid-cli@10
TITLE=$(python3 -c "import json,os;print((json.load(open('book.json')).get('title') if os.path.exists('book.json') else '') or '${{ github.event.repository.name }}')")
TAG=$(echo "${{ steps.tag.outputs.TAG_NAME || 'latest' }}" | sed 's#.*/##') # slash-free (handles non-tag dispatch)
python3 tools/render_mermaid.py --book-dir . --svg-out /tmp/mmsvg
python3 tools/build_html_reader.py --book-dir . --title "$TITLE" --svg-dir /tmp/mmsvg \
--out "${{ github.event.repository.name }}-${TAG}.html"
ls -lh ${{ github.event.repository.name }}-${TAG}.html
- name: Attach HTML to release
if: steps.htmlreader.outcome == 'success' && startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.TAG_NAME }}
files: "${{ github.event.repository.name }}-${{ steps.tag.outputs.TAG_NAME }}.html"
- name: Upload HTML as artifact
if: steps.htmlreader.outcome == 'success'
uses: actions/upload-artifact@v7
with:
name: html-edition
path: "${{ github.event.repository.name }}-*.html"