From f7598e5e2305a13ae805450f4a78519dd8d54c37 Mon Sep 17 00:00:00 2001 From: Rootiest Date: Fri, 21 Aug 2026 00:52:55 -0400 Subject: [PATCH 1/3] fix(ci): set DEBIAN_FRONTEND=noninteractive for apt-get installs apt-get install was probing for a Dialog then Readline debconf frontend before falling back to Teletype on the non-interactive CI runner, adding noise and failed-negotiation log lines to every run. Passing DEBIAN_FRONTEND=noninteractive directly on the sudo command line (env vars set via step-level `env:` don't survive sudo's env_reset) skips the negotiation and goes straight to the frontend that actually works here. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ec9dcc..c809a12 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,10 +30,10 @@ jobs: - name: Install fish run: | sudo apt-get update -qq - sudo apt-get install -y software-properties-common + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common sudo add-apt-repository -y ppa:fish-shell/release-4 sudo apt-get update -qq - sudo apt-get install -y fish + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y fish - name: Run fish config tests run: fish tests/run-tests.fish @@ -50,10 +50,10 @@ jobs: - name: Install dependencies run: | sudo apt-get update -qq - sudo apt-get install -y software-properties-common + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common sudo add-apt-repository -y ppa:fish-shell/release-4 sudo apt-get update -qq - sudo apt-get install -y pandoc python3-yaml fish + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y pandoc python3-yaml fish - name: Generate concatenated markdown run: python3 docs/build-manual.py --concat -o docs/fish-config.md -- 2.54.0 From c4e225b00768b903831f91b71b1eb6a32ea3e348 Mon Sep 17 00:00:00 2001 From: Rootiest Date: Fri, 21 Aug 2026 00:54:54 -0400 Subject: [PATCH 2/3] fix(ci): retry apt-get update and skip recommended packages Two more sources of CI noise/fragility alongside the debconf frontend fix: fish's install pulls in man-db/groff-base/xsel as recommends, triggering a slow mandb rebuild for tooling nothing here uses; --no-install-recommends skips that. apt-get update had no retry policy, so a transient blip against the PPA mirror failed the whole job; -o Acquire::Retries=3 gives it a few chances first. --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c809a12..0483788 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,11 +29,11 @@ jobs: - name: Install fish run: | - sudo apt-get update -qq - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common + sudo apt-get -o Acquire::Retries=3 update -qq + sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y software-properties-common sudo add-apt-repository -y ppa:fish-shell/release-4 - sudo apt-get update -qq - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y fish + sudo apt-get -o Acquire::Retries=3 update -qq + sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y fish - name: Run fish config tests run: fish tests/run-tests.fish @@ -49,11 +49,11 @@ jobs: - name: Install dependencies run: | - sudo apt-get update -qq - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common + sudo apt-get -o Acquire::Retries=3 update -qq + sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y software-properties-common sudo add-apt-repository -y ppa:fish-shell/release-4 - sudo apt-get update -qq - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y pandoc python3-yaml fish + sudo apt-get -o Acquire::Retries=3 update -qq + sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y pandoc python3-yaml fish - name: Generate concatenated markdown run: python3 docs/build-manual.py --concat -o docs/fish-config.md -- 2.54.0 From c47b51cd6edb5c00ba097aa69a963c5e651dcec9 Mon Sep 17 00:00:00 2001 From: Rootiest Date: Fri, 21 Aug 2026 00:58:30 -0400 Subject: [PATCH 3/3] feat(ci): allow triggering test or build-docs individually workflow_dispatch already ran the whole pipeline manually, but there was no way to fire just one job (e.g. re-run docs generation without re-running the fish test suite) the way the old standalone build-docs.yml let you. Add a job choice input (all/test/build-docs, defaulting to all) and gate each job on it via `if:`, while leaving the push-triggered path's needs: test gating untouched. --- .github/workflows/ci.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0483788..9a3b9b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,9 +17,20 @@ on: - "integrations/**" - "tests/**" workflow_dispatch: + inputs: + job: + description: "Job to run" + required: false + default: all + type: choice + options: + - all + - test + - build-docs jobs: test: + if: github.event_name != 'workflow_dispatch' || github.event.inputs.job == 'all' || github.event.inputs.job == 'test' runs-on: racknerd-mini steps: - name: Checkout @@ -40,6 +51,11 @@ jobs: build-docs: needs: test + if: | + always() && + (github.event.inputs.job == 'build-docs' || + ((github.event_name != 'workflow_dispatch' || github.event.inputs.job == 'all') && + needs.test.result == 'success')) runs-on: racknerd-mini steps: - name: Checkout -- 2.54.0