CI/CD
Pipelines
Dev PR workflows (ci-dev-*.yml) use pull_request with paths globs so they run only when relevant files change (GitHub glob syntax, not regex).
ci-dev-golang.yml:- (
mod-verify∥go-fmt∥go-vet∥check-license∥goreleaser-check) → (lint∥unit) →build→docker-build-push
- (
ci-dev-charts.yml:chart-version->lint->test->package(if anything undercharts/<name>/changes,Chart.yamlversionmust differ from the PR base)
ci-dev-markdown.yml: markdownlint when**/*.mdor markdownlint config changes.ci-dev-docs.yml: Docusaurusyarn run buildunderdocs/whendocs/**changes.ci-dev-actions.yml:actionlintviamake -C .github verify/actionlintwhen.github/workflows/**or.github/Makefilechanges.release-golang.yml: image and binary release via GoReleaser; git tags are semver-stylev*(e.g.v1.0.0,v1.0.0-rc.1) so OSS GoReleaser can parse them; artifacts and OCI tags use the samev+ version form (see.goreleaser.yaml).release-chart.yml: chart release flow forchart/<name>/v<version>tags.publish-pages.yml: publishes Docusaurus and chart index to GitHub Pages.
GitHub Pages layout
Single Pages domain with split paths:
- Docs site root:
https://ptrvsrg.github.io/csi-driver-ipfs/ - Chart repository:
https://ptrvsrg.github.io/csi-driver-ipfs/charts/index.yaml
This allows Artifact Hub registration with chart index URL while keeping docs on the same domain.
Release conventions
- Git tags for Go releases use
v*(e.g.v1.0.0); publishedmain.driverVersionand OCI tags align with that (e.g.v1.0.0). - Chart tags use:
chart/csi-driver-ipfs/vX.Y.Zchart/ipfs-cluster/vX.Y.Z
Version in tag must match Chart.yaml.
What to update when behavior changes
- docs under
docs/docs/, - chart docs in
charts/*/README.md, - CI docs in
.github/README.mdwhen workflow logic changes.