Closed sleevi closed 3 years ago
@cabforum/infrastructure-subcommittee Does someone with familiarity with (Makefiles, Docker) want to take a look?
I'm still working through how to publish the image (which would have avoided this issue entirely, by being a static image with all the dependencies), but in the interim, this unblocks the further Pandoc cleanup work and is something I'll update the SCWG repository to use once this is merged.
Alternatively, if you're fine with me just squash-and-merging (i.e. you don't want/can't review, but don't object to me just landing), feel free to add a 👍 reaction to this comment.
The action is currently failing because it's built on demand (i.e. not published to Docker Hub or GitHub Packages), and so it is built on demand.
I don't follow the meaning of the ", and so it is built on demand."
The current Pandoc base image being used by the 2.0 RC has an older tlmgr, and as a result, the initial image building step fails due to needing to update tlmgr.
What does "the 2.0 RC" refer to?
I don't follow the meaning of the ", and so it is built on demand."
Right now, every time the documents are built ( in https://github.com/cabforum/servercert ), it runs "docker build" on the Dockerfile, and then uses that resulting image to run the step.
The Docker build command relies on tlmgr
to install the necessary packages, and the issues is none of the documents can currently be built, because the tlmgr
used as part of building the image is out of date. This would be similar to, say, if PyPy was out of date. Even though PyPy would be fetching a specific versioned package, thus giving a deterministic build, PyPy failing to run breaks the whole thing. That's effectively what's happening here. Updating the version of the Pandoc Docker image used updates the version of tlmgr
(resolving it), as does the tlmgr update
(so they're mutually independent solutions).
Long term, publishing the image on Docker Hub or GitHub Packages provides a static, canonical image with all of the dependencies, without having to fetch-and-build for every doc compile.
The current Pandoc base image being used by the 2.0 RC has an older tlmgr, and as a result, the initial image building step fails due to needing to update tlmgr.
What does "the 2.0 RC" refer to?
https://github.com/cabforum/build-guidelines-action/releases/tag/v2.0.0-rc1
The action is currently failing because it's built on demand (i.e. not published to Docker Hub or GitHub Packages), and so it is built on demand.
The current Pandoc base image being used by the 2.0.0-rc1 has an older
tlmgr
, and as a result, the initial image building step fails due to needing to updatetlmgr
.This adds a step to explicitly update
tlmgr
as part of building the image. However, it also updates the base Pandoc image further than 2.0-RC (which also/alternatively resolves this issue), in order to take advantage of the Latex writer now supporting multi-column/multi-row tables.In order to make sure such changes are safe in the future, it also introduces a base set of unit tests that build a PDF, a DOCX, a PDF redline, and lints for broken links, testing the core functionality of the action, and wires them up to GitHub Actions.