Skip to content

ci: gate pull requests on a single Build Success check - #284

Merged
onedr0p merged 1 commit into
mainfrom
ci/consolidate-pull-request-checks
Jul 25, 2026
Merged

onedr0p merged 1 commit into
mainfrom
ci/consolidate-pull-request-checks

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Overview

Collapses the per-concern CI workflows into a single ci.yaml whose jobs fan in
to a Build Success job, so a ruleset can require branches to be up to date
before merge.

All job bodies are unchanged. Job ids form consistent families, each name: is
derived from its id, and jobs are ordered alphabetically with the fan-in last.

Same change as home-operations/kromgo#321.

Additional information

GitHub rejects strict_required_status_checks_policy unless at least one check
is required, and the individual jobs are unsafe to require: they are skipped for
release-please PRs, and a required check that never reports blocks the PR
permanently. Build Success runs on !cancelled(), so it reports whether its
dependencies pass or skip.

The pull request trigger drops paths-ignore for the same reason. Those filters
covered **.md and .release-please-manifest.json — the release-please PR
footprint that the per-job conditions already skip.

Verified before pushing: every job body is byte-identical to origin/main,
Build Success gates every job, and actionlint, zizmor and oxfmt are clean.

Requirements

  • I have read and agree with the contributing guidelines
  • AI usage disclosure: YES — the workflow change and this description were
    written by an AI agent (Claude Code) under maintainer direction, as part of a
    wider branch-protection rollout. Per the AI Usage Policy this exceeds assistive
    use and needs maintainer review before merge.

Collapses the per-concern CI workflows into one ci.yaml whose jobs fan in
to a Build Success job. All job bodies are unchanged.

A ruleset can only require branches to be up to date when at least one
status check is required, and requiring the individual jobs is unsafe:
they are skipped for release-please PRs, and a required check that never
reports blocks the pull request permanently. Build Success runs on
!cancelled(), so it reports whether its dependencies pass or skip.

The pull request trigger drops paths-ignore for the same reason. Those
filters covered **.md and .release-please-manifest.json, which is the
release-please PR footprint the per-job conditions already skip.

Job ids form consistent families, each job name is derived from its id,
and the jobs are ordered alphabetically with the fan-in last.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p merged commit f9244d6 into main Jul 25, 2026
5 checks passed
@onedr0p
onedr0p deleted the ci/consolidate-pull-request-checks branch July 25, 2026 17:40
@greptile-apps

greptile-apps Bot commented Jul 25, 2026

Copy link
Copy Markdown

Greptile Summary

Consolidates the existing lint, unit-test, and end-to-end workflows into one CI workflow.

  • Preserves the existing validation job bodies and release-please skip conditions.
  • Adds pull-request, push, merge-group, and manual triggers as applicable.
  • Adds a Build Success fan-in job that reports the combined validation result.
  • Removes the superseded standalone workflow files.

Confidence Score: 5/5

The PR appears safe to merge with the consolidated Build Success check.

The validation jobs retain their prior behavior, the aggregate job fails when any dependency fails, and intentional release automation skips remain reportable through the final check.

T-Rex T-Rex Logs

What T-Rex did

  • Performed base structural capture to identify the original job steps and confirm the absence of an aggregate status job.
  • Performed head structural capture and verified equality for each preserved job body, with VALIDATION PASSED.
  • Executed the base E2E run, which completed in 49.318 seconds and exited with code 0.
  • Executed the head E2E run, which completed in 8.792 seconds and exited with code 0.
  • Reviewed and cross-checked the associated logs and artifacts to support the overall validation.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
.github/workflows/ci.yaml Consolidates all validation jobs and adds a final aggregate status check without an identified actionable defect.
.github/workflows/e2e.yaml Deletes the standalone E2E workflow after moving its unchanged job body into ci.yaml.
.github/workflows/lint.yaml Deletes the standalone lint workflow after moving its unchanged job body into ci.yaml.
.github/workflows/tests.yaml Deletes the standalone test workflow after moving its unchanged job body into ci.yaml.

Reviews (1): Last reviewed commit: "ci: gate pull requests on a single Build..." | Re-trigger Greptile

@sticky-gecko sticky-gecko Bot mentioned this pull request Jul 27, 2026
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Aug 21, 2026
…fi-webhook (0.10.9 ➔ 0.10.11) (#384)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/external-dns-unifi-webhook](https://github.com/home-operations/external-dns-unifi-webhook) | patch | `0.10.9` → `0.10.11` |

---

### Release Notes

<details>
<summary>home-operations/external-dns-unifi-webhook (ghcr.io/home-operations/external-dns-unifi-webhook)</summary>

### [`v0.10.11`](https://github.com/home-operations/external-dns-unifi-webhook/blob/HEAD/CHANGELOG.md#01011-2026-08-21)

[Compare Source](home-operations/external-dns-unifi-webhook@0.10.10...0.10.11)

##### Bug Fixes

- **go:** update to go 1.27.0 ([#&#8203;313](home-operations/external-dns-unifi-webhook#313)) ([931e211](home-operations/external-dns-unifi-webhook@931e211))

### [`v0.10.10`](https://github.com/home-operations/external-dns-unifi-webhook/blob/HEAD/CHANGELOG.md#01010-2026-08-21)

[Compare Source](home-operations/external-dns-unifi-webhook@0.10.9...0.10.10)

##### Features

- **deps:** update module github.com/prometheus/client\_golang (v1.23.2 → v1.24.0) ([#&#8203;276](home-operations/external-dns-unifi-webhook#276)) ([cc63630](home-operations/external-dns-unifi-webhook@cc63630))
- **deps:** update module golang.org/x/sync (v0.21.0 → v0.22.0) ([#&#8203;271](home-operations/external-dns-unifi-webhook#271)) ([45f002d](home-operations/external-dns-unifi-webhook@45f002d))
- **go:** update module sigs.k8s.io/external-dns (v0.21.0 → v0.22.0) ([#&#8203;312](home-operations/external-dns-unifi-webhook#312)) ([ada3935](home-operations/external-dns-unifi-webhook@ada3935))

##### Bug Fixes

- **ci:** fail the merge gate on cancelled jobs, and key the lint cache on the toolchain ([#&#8203;293](home-operations/external-dns-unifi-webhook#293)) ([0d0abca](home-operations/external-dns-unifi-webhook@0d0abca))
- **deps:** update module github.com/prometheus/client\_golang (v1.24.0 → v1.24.1) ([#&#8203;281](home-operations/external-dns-unifi-webhook#281)) ([b5ca23b](home-operations/external-dns-unifi-webhook@b5ca23b))
- **go:** update module go (1.26.4 → 1.26.5) ([#&#8203;302](home-operations/external-dns-unifi-webhook#302)) ([ed85692](home-operations/external-dns-unifi-webhook@ed85692))
- **go:** update module go (1.26.5 → 1.26.6) ([#&#8203;307](home-operations/external-dns-unifi-webhook#307)) ([c3a0c92](home-operations/external-dns-unifi-webhook@c3a0c92))

##### Documentation

- add AGENTS.md with Go conventions ([#&#8203;296](home-operations/external-dns-unifi-webhook#296)) ([47d1025](home-operations/external-dns-unifi-webhook@47d1025))
- point the CI badge at ci.yaml ([#&#8203;285](home-operations/external-dns-unifi-webhook#285)) ([ac12f51](home-operations/external-dns-unifi-webhook@ac12f51))

##### Styles

- indent markdown at 2 to match embedded yaml ([#&#8203;277](home-operations/external-dns-unifi-webhook#277)) ([0194a09](home-operations/external-dns-unifi-webhook@0194a09))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;286](home-operations/external-dns-unifi-webhook#286)) ([a9a633a](home-operations/external-dns-unifi-webhook@a9a633a))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;284](home-operations/external-dns-unifi-webhook#284)) ([f9244d6](home-operations/external-dns-unifi-webhook@f9244d6))
- **github-action:** Update action actions/checkout (v7.0.0 → v7.0.1) ([7d0f63a](home-operations/external-dns-unifi-webhook@7d0f63a))
- **github-action:** Update action actions/stale (v10.3.0 → v10.4.0) ([fed963e](home-operations/external-dns-unifi-webhook@fed963e))
- **github-action:** Update action actions/stale (v10.4.0 → v11.0.0) ([#&#8203;294](home-operations/external-dns-unifi-webhook#294)) ([39338f0](home-operations/external-dns-unifi-webhook@39338f0))
- **github-action:** Update action docker/github-builder (v1.12.0 → v1.13.0) ([7aaa300](home-operations/external-dns-unifi-webhook@7aaa300))
- **github-action:** Update action docker/github-builder (v1.13.0 → v1.14.0) ([dddd3a9](home-operations/external-dns-unifi-webhook@dddd3a9))
- **github-action:** Update action docker/github-builder (v1.14.0 → v1.15.0) ([#&#8203;292](home-operations/external-dns-unifi-webhook#292)) ([fc10a57](home-operations/external-dns-unifi-webhook@fc10a57))
- **github-action:** Update action docker/github-builder (v1.15.0 → v1.16.0) ([#&#8203;305](home-operations/external-dns-unifi-webhook#305)) ([a05131f](home-operations/external-dns-unifi-webhook@a05131f))
- **github-action:** Update action home-operations/.github/actions/workflow-lint (v1.0.2 → v1.0.3) ([#&#8203;301](home-operations/external-dns-unifi-webhook#301)) ([cd22d30](home-operations/external-dns-unifi-webhook@cd22d30))
- **github-action:** Update action jdx/mise-action (v4.2.0 → v4.2.1) ([39bb0fb](home-operations/external-dns-unifi-webhook@39bb0fb))
- **github-action:** Update action jdx/mise-action (v4.2.1 → v4.2.2) ([#&#8203;288](home-operations/external-dns-unifi-webhook#288)) ([b371250](home-operations/external-dns-unifi-webhook@b371250))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;290](home-operations/external-dns-unifi-webhook#290)) ([af33171](home-operations/external-dns-unifi-webhook@af33171))
- **github-action:** Update action jdx/mise-action (v4.2.3 → v4.2.4) ([#&#8203;303](home-operations/external-dns-unifi-webhook#303)) ([f9e4782](home-operations/external-dns-unifi-webhook@f9e4782))
- **github-action:** update workflow-lint action (1.0.0 → v1.0.2) ([#&#8203;298](home-operations/external-dns-unifi-webhook#298)) ([b36f7e7](home-operations/external-dns-unifi-webhook@b36f7e7))
- lint workflows with the shared composite action ([#&#8203;287](home-operations/external-dns-unifi-webhook#287)) ([24556e2](home-operations/external-dns-unifi-webhook@24556e2))
- **renovate:** reactive dashboard + config runs in one workflow ([#&#8203;282](home-operations/external-dns-unifi-webhook#282)) ([73dc821](home-operations/external-dns-unifi-webhook@73dc821))
- skip release-please churn and stop cancelling main runs ([#&#8203;275](home-operations/external-dns-unifi-webhook#275)) ([9608dc2](home-operations/external-dns-unifi-webhook@9608dc2))
- skip release-please version-bump PRs in checks ([#&#8203;283](home-operations/external-dns-unifi-webhook#283)) ([45c7f27](home-operations/external-dns-unifi-webhook@45c7f27))
- wire govulncheck into mise and CI ([#&#8203;300](home-operations/external-dns-unifi-webhook#300)) ([8ea7966](home-operations/external-dns-unifi-webhook@8ea7966))

##### Miscellaneous Chores

- **github-action:** update action jdx/mise-action (v4.2.4 → v4.2.5) ([#&#8203;309](home-operations/external-dns-unifi-webhook#309)) ([6291830](home-operations/external-dns-unifi-webhook@6291830))
- **go:** pin go directive to 1.26.1 ([#&#8203;310](home-operations/external-dns-unifi-webhook#310)) ([0674b98](home-operations/external-dns-unifi-webhook@0674b98))
- **mise:** Lock file maintenance tool ([#&#8203;280](home-operations/external-dns-unifi-webhook#280)) ([a140d90](home-operations/external-dns-unifi-webhook@a140d90))
- **mise:** prune lockfile to used platforms ([#&#8203;299](home-operations/external-dns-unifi-webhook#299)) ([d8cd350](home-operations/external-dns-unifi-webhook@d8cd350))
- **mise:** Update tool go (1.26.4 → 1.26.5) ([#&#8203;272](home-operations/external-dns-unifi-webhook#272)) ([4e08b20](home-operations/external-dns-unifi-webhook@4e08b20))
- **mise:** update tool go (1.26.5 → 1.26.6) ([#&#8203;311](home-operations/external-dns-unifi-webhook#311)) ([25f566e](home-operations/external-dns-unifi-webhook@25f566e))
- **mise:** update tool go:golang.org/x/vuln/cmd/govulncheck (1.6.0 → v1.7.0) ([#&#8203;308](home-operations/external-dns-unifi-webhook#308)) ([0874d3f](home-operations/external-dns-unifi-webhook@0874d3f))
- **mise:** Update tool lefthook (2.1.9 → 2.1.10) ([#&#8203;270](home-operations/external-dns-unifi-webhook#270)) ([94a9f77](home-operations/external-dns-unifi-webhook@94a9f77))
- **mise:** Update tool oxfmt (0.57.0 → 0.58.0) ([#&#8203;268](home-operations/external-dns-unifi-webhook#268)) ([18cdddf](home-operations/external-dns-unifi-webhook@18cdddf))
- **mise:** Update tool oxfmt (0.58.0 → 0.59.0) ([#&#8203;273](home-operations/external-dns-unifi-webhook#273)) ([1d1cf5b](home-operations/external-dns-unifi-webhook@1d1cf5b))
- **mise:** Update tool oxfmt (0.59.0 → 0.60.0) ([#&#8203;279](home-operations/external-dns-unifi-webhook#279)) ([ddcdf65](home-operations/external-dns-unifi-webhook@ddcdf65))
- **mise:** Update tool oxfmt (0.60.0 → 0.61.0) ([#&#8203;289](home-operations/external-dns-unifi-webhook#289)) ([ebbeed6](home-operations/external-dns-unifi-webhook@ebbeed6))
- **mise:** Update tool oxfmt (0.61.0 → 0.62.0) ([#&#8203;304](home-operations/external-dns-unifi-webhook#304)) ([b71b144](home-operations/external-dns-unifi-webhook@b71b144))
- **mise:** Update tool oxfmt (0.62.0 → 0.63.0) ([#&#8203;306](home-operations/external-dns-unifi-webhook#306)) ([6a018b0](home-operations/external-dns-unifi-webhook@6a018b0))
- **mise:** Update tool zizmor (1.26.1 → 1.27.0) ([#&#8203;274](home-operations/external-dns-unifi-webhook#274)) ([573fa64](home-operations/external-dns-unifi-webhook@573fa64))
- **mise:** Update tool zizmor (1.27.0 → 1.28.0) ([#&#8203;278](home-operations/external-dns-unifi-webhook#278)) ([2f39159](home-operations/external-dns-unifi-webhook@2f39159))
- **mise:** Update tool zizmor (1.28.0 → 1.29.0) ([#&#8203;297](home-operations/external-dns-unifi-webhook#297)) ([3173103](home-operations/external-dns-unifi-webhook@3173103))
- **release-please:** standardize the release pull request title pattern ([#&#8203;295](home-operations/external-dns-unifi-webhook#295)) ([5f825de](home-operations/external-dns-unifi-webhook@5f825de))
- standardize release-please changelog sections ([#&#8203;291](home-operations/external-dns-unifi-webhook#291)) ([5f0866a](home-operations/external-dns-unifi-webhook@5f0866a))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/384
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.

1 participant