Skip to content
Lukas Deutz edited this page Mar 23, 2020 · 5 revisions

Stages

The build process is defined by stages, which will sequentially (unless defined to always run, even when the build fails, like the Notify stage).

Setup

Setup all environments needed for the test and/or build:

  • Ruby 2.6 or later
    • Installed gems

Test

Run all tests defined in lib/extensions.d:

  • ID Checker
  • if Checker
  • Pattern Checker (using a blacklist)
  • Link Checker
  • more to come...

You can write your own tests during this stage, consult [Test/Extension](Stages/Test/Extension.md** for more information.

Pre

Runs Pre Processing, defined by BaseProcesses in lib/pre.d:

  • Combine and transpile Javascript: Transpile new ES features to increase cross-browser compatibility and combine all Javascript tags (that are not marked noblob) into one blob file for faster loading.

To create your own processes, refert to PrePost/Process.

Build

Build the documentation. The build uses a custom version of the HTML5 Multipage Converter and produces a custom Table of Contents.

Available formats:

  • HTML

Planned formats:

  • PDF

Post

Runs Post Processing, defined by BaseProcesses in lib/post.d:

  • CodeRay Style: include CodeRay stylesheet on every page (overwrites default: includes CodeRay style on pages with source code samples)
  • Compile search index: compiles Lunr search index
  • HTML check: runs htmltest if the architecture and OS is supported (Linux, Windows or Mac 64 bit)
  • Rename: Copies the page titled Home.html (if it exists) to index.html, because index.html is just an overview page generated by the HTML5 Multipage Converter.

Disabled processes:

  • HTML Post Processing: This is not registered with the PostProcessManager, because the functionality is executed durint the Build stage.

To create your own processes, refert to PrePost/Process.

Deploy

Deploy to either Github Pages or S3 (using wirecard/s3-deploy).

Notify (WIP)

Send message to e.g. Slack (or other services). Please see the Github Actions Marketplace, as this is not integrated in the toolchain.

Clone this wiki locally