Skip to content

fix: add CI, dependabot, and auto-release workflows#13

Merged
edu-diaz merged 5 commits into
mainfrom
ci/test-and-release-workflows
Apr 30, 2026
Merged

fix: add CI, dependabot, and auto-release workflows#13
edu-diaz merged 5 commits into
mainfrom
ci/test-and-release-workflows

Conversation

@edu-diaz
Copy link
Copy Markdown
Contributor

@edu-diaz edu-diaz commented Apr 30, 2026

Summary

Adds CI infrastructure mirroring the conventions used in trianalab/pacto:

  • pr-title.yml — enforces conventional-commit format on PR titles (allowed types: feat, fix, docs, chore, refactor, test, ci, perf, build, style; ! for breaking).
  • test.yml — runs on push/PR to main:
    • actionlint job (lints all workflow files and the bash inside action.yml).
    • smoke job on ubuntu-latest and macos-latest: installs Pacto via the action, validates a minimal inline contract, generates docs, and diffs the contract against itself, asserting has-breaking-changes=false.
  • auto-release.yml — runs on PR merge to main:
    • Bumps version from PR title (feat: → minor, fix|perf|refactor: → patch, any <type>!: → major; everything else skips).
    • Creates a GitHub release with auto-generated notes.
    • Updates the floating major-version tag (v1, v2, …): on a major bump it creates the new vN tag at the new commit (leaving the previous vN-1 tag untouched so existing pins keep getting only that line of releases); on minor/patch it force-moves the existing vN tag to the new commit.
  • dependabot.yml + dependabot-auto-merge.yml — weekly updates for the github-actions ecosystem with auto-merge of dependabot PRs (matches trianalab/pacto and trianalab/pacto-operator).

Test plan

  • CI: actionlint job passes
  • CI: smoke job passes on ubuntu and macos (after bash-3 fix in fix: avoid unbound array expansion on macOS bash 3 #14)
  • After merge: this PR is ci: so auto-release should skip — verify it skips and no tag/release is created
  • Future feat: PR creates a release and moves v1
  • Future feat!: PR creates vN+1 tag and leaves prior vN untouched
  • Dependabot opens its first PR within ~a week and is auto-merged after checks pass

- pr-title: enforce conventional-commit format on PR titles
- test: actionlint + smoke tests (setup/validate/doc/diff) on
  ubuntu and macos using an inline minimal contract
- auto-release: on merged PR, bump version from PR title, create
  GitHub release with generated notes, and update the floating
  major-version tag (creates a new vN tag on a major bump; moves
  the existing vN tag on minor/patch)
@edu-diaz edu-diaz force-pushed the ci/test-and-release-workflows branch from 81faed3 to 43754cb Compare April 30, 2026 09:44
Mirrors the setup used in trianalab/pacto and trianalab/pacto-operator,
scoped to the github-actions ecosystem since this repo has no other
package manifests.
@edu-diaz edu-diaz changed the title ci: add test and auto-release workflows fix: add CI, dependabot, and auto-release workflows Apr 30, 2026
The upstream install script makes unauthenticated calls to
api.github.com which get rate-limited on shared macOS runner IPs.
Bypass it by downloading the release binary directly; release
download URLs are not API-rate-limited.

Once the install script supports GITHUB_TOKEN auth, switch back
to using the action's `setup` command end-to-end.
@edu-diaz edu-diaz merged commit 5a210e8 into main Apr 30, 2026
5 checks passed
@edu-diaz edu-diaz deleted the ci/test-and-release-workflows branch April 30, 2026 09:54
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