Skip to content

test(ci): try same PR against direct branch, not forked - #48

Open
rfay wants to merge 8 commits into
mainfrom
20260821_test_fork_pr_image
Open

test(ci): try same PR against direct branch, not forked#48
rfay wants to merge 8 commits into
mainfrom
20260821_test_fork_pr_image

Conversation

@rfay

@rfay rfay commented Aug 21, 2026

Copy link
Copy Markdown
Member

This PR tests

using a branch on ddev-test; I've tested the other two possibilities directly

rfay and others added 8 commits August 18, 2026 21:57
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…authorized authors [skip ci]

Moves the maintainer approval for a fork PR's image build/push from after the build finishes to right after detect knows a build is needed, and skips it entirely when the PR author already has push access to the repo.

Follow-up to ddev#8707. Two rough edges in the fork-PR image build/push flow:

1. The approval gate lived in image-push.yml, triggered via workflow_run only after the entire (often multi-minute, multi-arch) fork build finished. A maintainer had no visibility into the pending approval until well after it was actually knowable.
2. A maintainer's own fork PR (author_association OWNER/MEMBER/COLLABORATOR) still had to wait on the same approval as an unknown external contributor, even though they already have push access.

- image-build-push.yml's detect job gains an `is_authorized` output (from `github.event.pull_request.author_association`) alongside the existing `is_fork`.
- A new `approve` job runs right after detect, gated on the `image-push` environment, only when the PR is from a fork and the author is not authorized. The `build` job now depends on it.
- image-push.yml no longer has its own approval gate — by the time an artifact exists to push, image-build-push.yml's `approve` job already required sign-off.
- Updated the workflow header comments and the two docs pages (building-contributing.md, release-management.md) that described the old flow.
- Added a bullet to CLAUDE.md's Comments section: write comments as a plain description of the current design, not framed relative to what changed.

- `actionlint .github/workflows/image-build-push.yml .github/workflows/image-push.yml` passes clean.
- Open a PR from an external fork that touches `containers/**`: confirm the `image-push` environment approval request appears as soon as the "Image build" workflow's `detect` job completes, not after `build` finishes.
- Open a PR from a maintainer's own fork: confirm no approval is requested and the image still builds and pushes via the existing fork-safe split.
- Open a same-repo PR or push to main: confirm behavior is unchanged (no gate, direct build-and-push).

No new automated tests — this is GitHub Actions workflow orchestration, validated with actionlint and manual PR runs as described above.

No user-facing behavior change. Affects only the internal container image build/push CI flow for ddev/ddev.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Pushed updated container image(s) for this PR:

  • ddevhq/ddev-traefik-router:c1d38d9d1e

@github-actions

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant