Published a new article, Generate PDF handbook with Docusaurus using GitHub Actions, as a new submission to the 2021 GitHub Actions Hackathon on DEV, showcasing our experience in generating a downloadable handbook from our @open-sauced documentation endpoint.
From a more technical perspective, the post details the additional workflow steps we had to add to make this possible:
- build, cache, and store a docker container as a build artifact
- mount the docs as a docker container service
- install Prince 14 binary
- make the generated pdf asset available
This is all possible by leveraging all these GitHub marketplace actions:
- actions/checkout@v2 - most performant git checkout
- actions/setup-node@v2.1.5 - we use it to set the node version to 16
- actions/upload-artifact@v2 - we use it to transport our artifacts in between jobs
- actions/download-artifact@v2 - we use it to download our artifacts in between jobs
- docker/setup-buildx-action@v1 - we use it to set up the docker builder
- actions/cache@v2 - we use it to cache docker layers
- docker/metadata-action@v3 - we use it to normalize most of our docker container values
- docker/build-push-action@v2 - we use this to build the container
- bahmutov/npm-install@v1 - lightning-fast npm ci with built-in cache
- open-sauced/semantic-release-conventional-config@v3 - semantic-release configuration, docker container and GitHub action
- peaceiris/actions-gh-pages@v3 - deploys any folder(s) to gh-pages, can use it for multiple static endpoints
- geekyeggo/delete-artifact@v1 - deletes produced artifacts
From a more technical perspective, the post details the additional workflow steps we had to add to make this possible:
- build, cache, and store a docker container as a build artifact
- mount the docs as a docker container service
- install Prince 14 binary
- make the generated pdf asset available
This is all possible by leveraging all these GitHub marketplace actions:
- actions/checkout@v2 - most performant git checkout
- actions/setup-node@v2.1.5 - we use it to set the node version to 16
- actions/upload-artifact@v2 - we use it to transport our artifacts in between jobs
- actions/download-artifact@v2 - we use it to download our artifacts in between jobs
- docker/setup-buildx-action@v1 - we use it to set up the docker builder
- actions/cache@v2 - we use it to cache docker layers
- docker/metadata-action@v3 - we use it to normalize most of our docker container values
- docker/build-push-action@v2 - we use this to build the container
- bahmutov/npm-install@v1 - lightning-fast npm ci with built-in cache
- open-sauced/semantic-release-conventional-config@v3 - semantic-release configuration, docker container and GitHub action
- peaceiris/actions-gh-pages@v3 - deploys any folder(s) to gh-pages, can use it for multiple static endpoints
- geekyeggo/delete-artifact@v1 - deletes produced artifacts