Skip to content

CICD: Derive integration test provider list from profiles.json#4245

Merged
TomOnTime merged 3 commits into
DNSControl:mainfrom
cafferata:cicd/providers-from-profiles
May 12, 2026
Merged

CICD: Derive integration test provider list from profiles.json#4245
TomOnTime merged 3 commits into
DNSControl:mainfrom
cafferata:cicd/providers-from-profiles

Conversation

@cafferata
Copy link
Copy Markdown
Member

@cafferata cafferata commented May 12, 2026

Replaces the hardcoded PROVIDERS array in pr_integration_tests.yml with a dynamic read from integrationTest/profiles.json. New providers no longer need to be added to a separate list in the workflow file.

The existing filtering on *_DOMAIN env vars remains intact, so providers without configured secrets are skipped automatically. For reference, profiles.json currently has 57 providers while the old hardcoded list only had 28. The missing 29 are simply skipped since they have no secrets configured in CI.

Documentation in writing-providers.md, byo-secrets.md and release-engineering.md updated to remove instructions about manually adding providers to the PROVIDERS list.

Relates to #4241 (GHA workflow part only; the GoReleaser regexp is out of scope for this PR).

cafferata added 2 commits May 12, 2026 09:52
- Replace hardcoded PROVIDERS array with dynamic read from `integrationTest/profiles.json`.
- Add sparse-checkout step to fetch only the profiles file.
- Existing filtering on `*_DOMAIN` env vars remains intact, so providers without configured secrets are skipped automatically.
…n_tests.yml`.

- Remove instructions to manually add providers to the PROVIDERS list in `writing-providers.md`, `byo-secrets.md` and `release-engineering.md`.
- Update checklist and FAQ to reflect the new automated approach.
@cafferata cafferata requested a review from TomOnTime May 12, 2026 08:09
…n_tests.yml`.

- Use `-AsHashtable` flag because `profiles.json` contains keys with mixed casing (`TYPE` vs `domain`), which PowerShell rejects without this flag.
Copy link
Copy Markdown
Collaborator

@TomOnTime TomOnTime left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow! That's awesome!

The fact that this deletes a lot of docs shows how much better this is.

@TomOnTime TomOnTime merged commit 2dbde3e into DNSControl:main May 12, 2026
12 checks passed
@cafferata cafferata deleted the cicd/providers-from-profiles branch May 12, 2026 12:57
TomOnTime pushed a commit that referenced this pull request May 16, 2026
The repository has `provider-*` labels that map provider type names
(e.g. `CLOUDFLAREAPI`) to issues and pull requests, but these were
assigned manually. For pull requests this can be automated by matching
changed files against `providers/` directories.

This GitHub pull request adds a `go generate` step that builds
`.github/labeler.yml` from the registered provider constants. A
`pr_labeler.yml` workflow runs `actions/labeler@v5` on
`pull_request_target` to apply the labels automatically. New providers
are picked up on the next `go generate` run, similar to #4255
(GoReleaser) and #4245 (integration tests).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

CICD: Make it easier to refer to the list of providers (GitHub workflows PR integration tests)

2 participants