Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions .github/workflows/generate_release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Note: Indentation here is of 2 spaces.

name: Generate release with ebooks


on:
push:
branches:
- master

workflow_dispatch: {} # For manual switch.
# End of on.


jobs:
release_ebooks:
runs-on: ubuntu-latest

permissions:
contents: write

steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
ref: master

- name: Setup node
uses: actions/setup-node@v3
with:
node-version: "latest"

# HonKit is a maintained fork of GitBook.
- name: Install honkit
run: npm install honkit -g

# APT install can take a long time due to installing dependencies,
# so we will use caching.
- name: Install calibre for ebook-convert
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: calibre

# HonKit uses highlight.js for syntax highlighting, which doesn't have
# "assembly" option, but has "x86asm". Currently, there is a better
# "x86asmatt" option in main branch but it is unreleased.
- name: Change highlighting code for honkit
run: find . -type f -name "*.md" -exec sed -i 's/```assembly/```x86asm/g' {} \;

# Create environment variables for convenience.
# GITHUB_ENV stores the env variables between steps.
- name: Get commit hash and create filename prefix
run: |
commit="$(git rev-parse --short HEAD)"
echo "commit=$commit" >> $GITHUB_ENV
echo "filename_prefix='linux-insides_$commit'" >> $GITHUB_ENV

- name: Generate PDF
run: honkit pdf ./ "./$filename_prefix.pdf"

- name: Generate EPUB
run: honkit epub ./ "./$filename_prefix.epub"

- name: Generate MOBI
run: honkit mobi ./ "./$filename_prefix.mobi"

# Create a release on GitHub.
- name: Create release
uses: ncipollo/release-action@v1
with:
artifacts: "${{ env.filename_prefix }}.*"
generateReleaseNotes: true
allowUpdates: true
artifactErrorsFailBuild: true
tag: "${{ env.commit }}"
commit: "master"
# End of steps.
# End of release_ebooks.
# End of jobs.


# End of file.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ A book-in-progress about the linux kernel and its insides.

**Questions/Suggestions**: Feel free about any questions or suggestions by pinging me at twitter [@0xAX](https://twitter.com/0xAX), adding an [issue](https://github.com/0xAX/linux-insides/issues/new) or just drop me an [email](mailto:[email protected]).

Generating eBooks and PDFs - [documentation](https://github.com/GitbookIO/gitbook/blob/master/docs/ebook.md)
PDF, EPUB, and MOBI files can be downloaded from the [releases page](https://github.com/0xAX/linux-insides/releases).

# Mailing List

Expand Down