PhilippTheServer

ci-cd

Pipelines, builds and getting a change from a branch to a running system.

  1. nginx: The Map Variable That Fixes the URI in proxy_pass

    nginx: [emerg] invalid URI prefix in proxy_pass: a regex location needs a bare upstream, and a map on $uri keeps a path-specific Cache-Control header.

  2. A Daily Digest of What Actually Got Merged, Built from MQTT and a Local LLM

    paho-mqtt subscriber to SQLite plus a local LLM: a daily digest that summarises merged pull requests per repository from diff stats, no cloud API.

  3. Documentation as a Repository: Publishing a Wiki.js Site from Reviewed Markdown

    Wiki.js Git storage for docs as code: publish reviewed Markdown and fail a pull request when src/ changes without docs/, checked with git diff.

  4. Testing Infrastructure Code by Executing Its Real Expressions

    Ansible Templar in pytest: render the shipped combine(recursive=True) expression from defaults/main.yml instead of a shallow Python paraphrase.

  5. Keeping Documentation Honest with an OpenAPI Snapshot Diff

    FastAPI app.openapi() snapshot test in pytest: fail CI when the live OpenAPI schema drifts from the committed openapi.snapshot.json.

  6. Verifying an Agent's Work Against Reality, Not Its Own Report

    git diff --quiet HEAD and a re-run test command in a separate CI job: verifying a coding agent's work from repository state instead of its own report.

  7. A Deterministic Daemon That Turns a Labelled Issue Into a Pull Request

    git apply --check before git commit: an issue-to-PR daemon where the model only returns a patch and plain Python commits, pushes and opens the PR.

  8. Pinning Image Tags to Git SHAs Because GitOps Diffs Manifests, Not Registries

    image :latest never triggers an Argo CD rollout because GitOps diffs manifest text. Tagging with git rev-parse --short HEAD and committing it back.

  9. Running BuildKit as a Remote Builder Without a Docker Daemon

    open /var/run/docker.sock: no such file or directory from docker buildx on a containerd CI worker: run buildkitd with mTLS and use the remote driver.

  10. Replacing pip, venv, flake8, black and isort with uv and Ruff

    uv sync --locked and ruff check replacing pip install -r requirements.txt, venv, flake8, black and isort: uv.lock plus one pyproject.toml config.

All topics · All writing