Skip to content

feat: run the action inside the embedded-devcontainer-documentation container - #4

Merged
gabrielfrasantos merged 2 commits into
mainfrom
feat/documentation-container
Nov 7, 2026
Merged

gabrielfrasantos merged 2 commits into
mainfrom
feat/documentation-container

Conversation

@gabrielfrasantos

Copy link
Copy Markdown
Contributor

Summary

Lets the action run inside the embedded-devcontainer-documentation container image, which already contains Pandoc and LaTeX. Consumers such as e-foc's release build_documentation job can then stop installing the tool chain on every run.

Inside a container the action currently fails in two places:

  • The container runs as root and has no sudo, so the sudo apt-get install step fails.
  • The image's Python is externally managed (PEP 668), and actions/setup-python doesn't support the image's Ubuntu release, so pip install into the system Python fails.

Changes

action.yml

  • python-version: "" skips actions/setup-python and uses the python3 on the PATH. The default stays 3.11, so existing users are unaffected.
  • The package is installed into a virtual environment under $RUNNER_TEMP, which is added to the PATH. This works with a runner Python and with an externally managed system Python.
  • The Pandoc/LaTeX installation is skipped when pandoc, pdflatex, lmodern.sty and titlesec.sty are already available. Otherwise it installs as before, using sudo only when not running as root.

CI

  • The Integration tests job runs in the documentation container (pinned v7.4.0@sha256:…) instead of installing Pandoc/LaTeX with apt.
  • The new Action smoke test (documentation container) job runs the action in the container with python-version: "". It produces the requirements PDF, the documentation PDFs and the traceability-matrix PDF without installing anything.

Docs: README.md and docs/usage.md describe the empty python-version and the container.

Verification

In the published gabrielfrasantos/embedded-devcontainer-documentation:v7.4.0 image:

  • The new install check finds all four tools (kpsewhich returns non-zero if any file is missing), and there is no sudo.
  • A venv install of the package from source works.
  • validate-requirements, generate-requirements-pdf, build-pdfs (architecture, design, theory and requirements PDFs) and the traceability matrix plus its pdflatex PDF all succeed on examples/e-foc.
  • pytest tests/integration: 13 passed.

Follow-up

After this is released, e-foc's release build_documentation job can run in the same container with python-version: "" and drop its own TikZ/LaTeX install step.


Generated by Claude Code

…ontainer

- skip setup-python when python-version is empty and use the python3 on
  the PATH instead
- install the package into a virtual environment, so it also works with
  an externally managed system Python (PEP 668)
- skip the Pandoc/LaTeX installation when the tools are already
  available, and only use sudo when not running as root
- run the integration tests in the documentation container, and add a
  smoke test that runs the action there without installing anything

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014WUWh7MxCGbjgikbK3RwEv
The pip bundled with a fresh venv (24.0 on Python 3.11) rejects
"project-documentation @ git+file://..." as an invalid requirement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014WUWh7MxCGbjgikbK3RwEv
@gabrielfrasantos
gabrielfrasantos merged commit 62d3d36 into main Nov 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants