{"id":40874684,"url":"https://github.com/jacaudi/github-actions","last_synced_at":"2026-04-09T08:23:43.721Z","repository":{"id":333013528,"uuid":"1135931762","full_name":"jacaudi/github-actions","owner":"jacaudi","description":"Reusable GitHub Actions workflows for CI/CD standardization: linting, testing, semantic releases, Docker builds, and Helm publishing","archived":false,"fork":false,"pushed_at":"2026-04-04T22:25:52.000Z","size":396,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T23:31:51.115Z","etag":null,"topics":["ci-cd","docker","github-actions","helm","renovate","reusable-workflows","semantic-release"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacaudi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-16T19:52:30.000Z","updated_at":"2026-04-04T22:19:02.000Z","dependencies_parsed_at":"2026-02-27T09:00:24.445Z","dependency_job_id":null,"html_url":"https://github.com/jacaudi/github-actions","commit_stats":null,"previous_names":["jacaudi/github-actions","asininefrankenstein/github-actions"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/jacaudi/github-actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacaudi%2Fgithub-actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacaudi%2Fgithub-actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacaudi%2Fgithub-actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacaudi%2Fgithub-actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacaudi","download_url":"https://codeload.github.com/jacaudi/github-actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacaudi%2Fgithub-actions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31419549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","docker","github-actions","helm","renovate","reusable-workflows","semantic-release"],"created_at":"2026-01-22T01:02:03.016Z","updated_at":"2026-04-05T00:01:57.521Z","avatar_url":"https://github.com/jacaudi.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reusable GitHub Actions Components\n\nComponent workflows for CI/CD pipelines. Each component handles one responsibility and composes into end-to-end pipelines via `needs:` dependencies.\n\n## Quick Start\n\nReference any component from your repository:\n\n```yaml\njobs:\n  lint:\n    uses: jacaudi/github-actions/.github/workflows/component-lint.yml@main\n    with:\n      yaml: true\n      go: true\n```\n\nSee [docs/examples.md](docs/examples.md) for complete pipeline templates.\n\n## Components\n\n| Component | Description |\n|-----------|-------------|\n| `component-lint.yml` | Multi-language linting (Python, Go, Shell, YAML, Helm, JSON) |\n| `component-test.yml` | Test runner with coverage (Go, Python, Node.js, Bun) |\n| `component-semantic-release.yml` | Semantic versioning, tags, and GitHub Releases via [go-semantic-release](https://github.com/go-semantic-release/semantic-release) |\n| `component-container-build.yml` | Multi-arch container builds with native runners |\n| `component-helm-publish.yml` | Helm chart publishing to OCI registries |\n| `component-pipeline-summary.yml` | Collects block metadata into a single pipeline artifact |\n\n## Three-Stage Pipeline\n\nThe recommended pipeline pattern for Go projects with containers and Helm charts:\n\n```\nPR -----\u003e lint, test, verify, container build (no push)\n\nmain ---\u003e lint, test, approve, semantic-release (tag + GitHub Release)\n                                    |\n                               tag v1.2.3\n                                    |\n                                    v\nrelease -\u003e container build + push, helm publish, pipeline summary\n```\n\n| Template | Trigger | Jobs |\n|----------|---------|------|\n| [example-three-stage-pr.yml](docs/example-three-stage-pr.yml) | Pull request | lint, test, verify, container build |\n| [example-three-stage-ci.yml](docs/example-three-stage-ci.yml) | Push to main | lint, test, approve, semantic-release |\n| [example-three-stage-release.yml](docs/example-three-stage-release.yml) | Tag `v*` | container build, helm publish, summary |\n\nSee [pipeline-three-stage-go.md](docs/pipeline-three-stage-go.md) for the full design spec.\n\n## Configurable Variables\n\nSet in **Settings \u003e Secrets and variables \u003e Actions \u003e Variables**:\n\n| Variable | Default | Used by |\n|----------|---------|---------|\n| `GO_VERSION` | `stable` | lint, test |\n| `TEST_PACKAGES` | `./...` | test |\n| `COVERAGE_THRESHOLD` | `0` | test |\n| `HELM_CHART_NAME` | repo name | helm-publish |\n| `HELM_CHART_PATH` | `chart` | helm-publish |\n\n## Required Secrets\n\n| Secret | Used by | Description |\n|--------|---------|-------------|\n| `APP_ID` | semantic-release | GitHub App ID (tags must trigger downstream workflows) |\n| `APP_PRIVATE_KEY` | semantic-release | GitHub App private key |\n\n## Conventional Commits\n\n| Commit | 0.x.x Bump | \u003e=1.0.0 Bump |\n|--------|-----------|-------------|\n| `feat:` | Minor (0.X.0) | Minor (x.Y.0) |\n| `fix:` | Patch (0.0.X) | Patch (x.y.Z) |\n| `feat!:` | Minor (0.X.0) | **Major (X.0.0)** |\n| `chore:`, `docs:` | Patch (0.0.X) | Patch (x.y.Z) |\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| [docs/README.md](docs/README.md) | Detailed component reference |\n| [docs/examples.md](docs/examples.md) | Pipeline templates and configuration guide |\n| [docs/pipeline-three-stage-go.md](docs/pipeline-three-stage-go.md) | Three-stage pipeline design spec |\n| [docs/architecture.md](docs/architecture.md) | Building block design philosophy |\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacaudi%2Fgithub-actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacaudi%2Fgithub-actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacaudi%2Fgithub-actions/lists"}