Tags: n0ss4/cv
Tags
perf(ci): install poppler without refreshing the apt index first The install step cost ten seconds, almost all of it `apt-get update`. The runner image carries an apt index already, so attempt the install against it and refresh only if that fails.
perf(ci): cache the TeX Live bundle and skip a redundant apt update The job spent 37s compiling and 10s installing PDF tools, both avoidable. Tectonic keeps its downloaded TeX Live files and a precompiled LaTeX format under one directory, ~46MB here, half of it that format. Building it from scratch is nearly all of a cold compile, so the directory is now pointed at the workspace via TECTONIC_CACHE_DIR -- deterministic for actions/cache, and the runner context is unavailable in a workflow-level env block, which rules out RUNNER_TEMP -- and restored across runs. The key includes the engine version because the cached format is only valid for the binary that built it. The poppler install ran apt-get update unconditionally, ~10s, even though the runner image may already provide pdftotext. It now installs only on a miss. Also drop fontawesome5.pdf: it was the only tracked file nothing references, left over from a texdoc run.
build: compile with pinned tectonic through the Makefile in CI too The build had three definitions and none of them agreed. The Makefile called latexmk, which is not installed on the machine this CV is written on -- `make` there only appeared to work because the PDFs were already newer than the sources. The PDFs were in fact produced by running tectonic by hand. CI, in turn, compiled with pdfLaTeX through xu-cheng/latex-action using its own flag set, which had already drifted from the Makefile's (-halt-on-error, -file-line-error). The published PDF and the locally built one wrapped a line of the summary differently as a result. Make the Makefile the only definition of the build and have CI run it: - Compile with tectonic, the engine actually used locally. It needs no TeX Live installation, and its TeX Live snapshot is fixed by the binary's version, so pinning the version pins the output. - Install tectonic in CI from a version- and checksum-pinned release tarball. latex-action pulled a Docker image tagged :latest that is rebuilt quarterly, so the TeX Live version -- and with it the line breaks -- could change with no commit in this repository. - Run `make` and `make verify` in the workflow instead of restating the compiler invocation there. Also tighten the page-count check from "at most 3" to "exactly 2". The CV is deliberately two pages, and the loose bound would have let a reflow push a nearly-empty third page into a release: it is valid PDF and passes every other check.
ci: bump actions off the deprecated Node 20 runtime actions/checkout@v4, actions/upload-artifact@v4 and softprops/action-gh-release@v2 all target Node 20, which the runner now force-runs on Node 24 with a deprecation warning. checkout v7, upload-artifact v7 and action-gh-release v3 are the first majors of each on node24. None changes the inputs this workflow uses; checkout v6+ moves the persisted token to $RUNNER_TEMP, but authenticated git push from a later step keeps working unchanged.