Auto Release #13
This file contains hidden or 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: 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" |