Skip to content

Add GitHub Actions CI and Pages deployment #3

Description

@johnnygreco

Objective

Replace the legacy GitLab Pages automation with GitHub Actions workflows that validate Zensical docs builds on pull requests and deploy the built site/ output to GitHub Pages from main.

Context

  • Tracker: GitHub goal delivery: convert repo from GitLab to GitHub #2
  • Self-contained context: This private repo already lives on GitHub at NVIDIA/OpenShell-Research, default branch main. The docs site uses Zensical with source under docs/, config in zensical.toml, pinned docs dependency in requirements-docs.txt, and canonical build script scripts/build-docs.sh. The repository currently has .gitlab-ci.yml for GitLab Pages, no .github/workflows, and no configured GitHub Pages site yet. Actions are enabled with write workflow permissions; GitHub-owned actions and official Pages actions are allowed. Backward compatibility is not required.
  • Supporting links: GitHub goal delivery: convert repo from GitLab to GitHub #2

Scope

  • In scope: add GitHub Actions workflow files for docs CI and main GitHub Pages deployment; use current official GitHub-owned actions for checkout, Python setup, Pages configuration, Pages artifact upload, and Pages deployment; remove the obsolete .gitlab-ci.yml file if the new workflows supersede it.
  • Non-goals: live Pages verification and repository documentation cleanup beyond workflow-adjacent comments belong to later issues.
  • Backward compatibility: do not worry about it unless explicitly specified; do not preserve legacy GitLab CI behavior or add shims by default.
  • Dependencies: none.
  • Sequencing: first implementation issue; later issues depend on the concrete workflow paths and deployment behavior added here.

Implementation Notes

Relevant files likely include .gitlab-ci.yml, .github/workflows/*.yml, scripts/build-docs.sh, requirements-docs.txt, and zensical.toml. Prefer the existing scripts/build-docs.sh command so local and CI builds share behavior. The deploy workflow should grant least permissions needed for Pages: contents: read, pages: write, and id-token: write, with appropriate concurrency. Pull request validation should build docs without deploying.

Acceptance Criteria

  • GitHub Actions validates the docs build for pull requests and main pushes.
  • GitHub Actions deploys docs to Pages only from main after a successful build.
  • The legacy .gitlab-ci.yml no longer remains as the active CI/deployment path.
  • Workflow YAML uses allowed official GitHub-owned actions.
  • Local validation commands pass.

Required Validation

  • python3 scripts/render-dev-notes.py exits 0.
  • python3 -m py_compile scripts/render-dev-notes.py exits 0.
  • scripts/build-docs.sh exits 0 and writes the generated site to site/.
  • Inspect workflow YAML enough to confirm PR validation does not deploy and main deploy does.

PR Expectations

Include exact validation commands and results. Call out any repository settings still required for GitHub Pages activation after merge.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions