- JavaScript 100%
|
All checks were successful
- avoid compiling Buf and its dependency graph on every cold runner - keep architecture-aware pinned installation before generating SDKs |
||
|---|---|---|
| .forgejo/workflows | ||
| actions | ||
| tests | ||
| actionlint.yaml | ||
| README.md | ||
Shared Forgejo CI
Public reusable workflows and composite actions for repositories on git.hayshin.dev.
Reusable workflows
Consumer workflows stay responsible for triggers. Jobs call versioned workflows:
jobs:
ci:
uses: infra/ci/.forgejo/workflows/go-ci.yml@v1
with:
check-links: true
Available workflows:
go-ci.yml: separate format, vet, build, test, and optional link-check jobs.python-ci.yml: separate lock, lint, typecheck, test, and package jobs.go-release.yml: calculate SemVer, validate, then tag and create release.python-release.yml: calculate SemVer, validate package version, then tag and upload distributions.go-module-release.yml: validate and publish a manually versioned nested Go module.python-module-release.yml: validate and attach distributions for a tagged nested Python package.
Release workflows must only be called for pushes to the protected main branch.
Actions
actions/semantic-version: derives next version from Conventional Commits.actions/forgejo-release: pushes validated tag and creates release.actions/go/*: Go module, build, and test cache setup plus individual checks.actions/python/*: uv cache setup and individual Python checks.actions/protobuf/setup: pinned Go, Buf, and protobuf generator setup.actions/protobuf/check: Python/Go SDK regeneration, Buf lint, and drift detection.
Semantic version rules: fix/perf produce patch, feat produces minor, and ! or BREAKING CHANGE: produces major. Other commits produce no release.
Versioning
Publish immutable SemVer tags and moving major tags. Consumers normally use @v1; pin commit SHA where immutable references are required. Breaking workflow inputs, outputs, or behavior require new major version.
Bootstrap
- Create public Forgejo repository
infra/ci. - Push this repository.
- Tag tested initial revision as
v1.0.0andv1. - Replace consumer workflows only after tags resolve.
Cross-repository reusable workflows require this repository to remain public. Go and Python workflows require Forgejo runner caching to be enabled and reachable from job containers.