Skip to content

Ci#1

Merged
thumbrise merged 24 commits into
mainfrom
ci
Mar 17, 2026
Merged

Ci#1
thumbrise merged 24 commits into
mainfrom
ci

Conversation

@thumbrise

@thumbrise thumbrise commented Mar 17, 2026

Copy link
Copy Markdown
Owner

CI/CD infrastructure for otelext

Bootstrap the project with CI quality gates and automated semantic versioning.

CI workflow (ci.yml) — runs on PRs to main

Three parallel jobs:

  • golangci — runs golangci-lint v2.4.0 with 80+ linters enabled, only reports new issues
  • test — runs unit tests and benchmarks across Go 1.25.x / 1.26.x matrix via go-task
  • commitlint — validates all PR commits follow Conventional Commits format

Release workflow (release.yml) — runs on push to main + manual dispatch

Runs semantic-release to automatically create GitHub releases with version bumps based on commit types:

  • feat → minor
  • fix / docs / chore → patch
  • BREAKING CHANGE → major
    Includes workflow_dispatch trigger for manual recovery if release automation needs re-running.

Configuration files

File Purpose
.golangci.yaml Linter config — 80+ linters, relaxed rules for tests/handlers/middlewares
.releaserc.json semantic-release config — commit analyzer rules, release notes generator with conventionalcommits preset
.commitlintrc.json Commit message rules — requires type + subject, relaxed line length
Taskfile.yaml Task runner — test (unit tests + benchmarks), lint
.editorconfig 4-space indent for JSON files

Node.js tooling

package.json declares devDependencies for commitlint and semantic-release. Both CI and Release workflows use npm ci with cache: npm for fast installs.

Temporary

stub.go — placeholder so Go toolchain has something to compile until real code is added.

devin-ai-integration[bot]

This comment was marked as resolved.

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

Using base.ref (main) causes semantic-release to silently skip analysis
because the current HEAD commit is not on main. Using head.ref (the PR
branch) lets semantic-release actually process the commits.
devin-ai-integration[bot]

This comment was marked as resolved.

…n release dry-run job

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
devin-ai-integration[bot]

This comment was marked as resolved.

@thumbrise

Copy link
Copy Markdown
Owner Author

logs of dry-run semantic-release:

Run npx semantic-release --branches "$BRANCH_REF" --dry-run
npm warn exec The following package was not found and will be installed: semantic-release@25.0.3
[9:03:11 PM] [semantic-release] › ℹ Running semantic-release version 25.0.3
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "verifyConditions" from "@semantic-release/github"
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "publish" from "@semantic-release/github"
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "addChannel" from "@semantic-release/github"
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "success" from "@semantic-release/github"
[9:03:11 PM] [semantic-release] › ✔ Loaded plugin "fail" from "@semantic-release/github"
[9:03:11 PM] [semantic-release] › ℹ This run was triggered by a pull request and therefore a new version won't be published.

Need to recognize way to check possibility to guaranteed release version after merge PRs.
Now semantic-release skips with 0 exit code

BRANCH_REF was referenced but never set. Assign it from head.ref so
semantic-release actually processes the PR branch commits instead of
silently skipping because HEAD is not on main.
semantic-release refuses to analyze commits on PR branches, making the
dry-run a no-op. Commitlint already validates commit messages (the main
failure mode). Added workflow_dispatch to release.yml for manual recovery
if release automation breaks on main.
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@thumbrise thumbrise merged commit fe93b22 into main Mar 17, 2026
5 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.0.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

1 similar comment
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.0.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@thumbrise thumbrise deleted the ci branch March 18, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant