{"id":13573956,"url":"https://github.com/BretFisher/github-actions-templates","last_synced_at":"2025-04-04T13:30:33.966Z","repository":{"id":39057736,"uuid":"377892889","full_name":"BretFisher/github-actions-templates","owner":"BretFisher","description":"Reusable GitHub Actions workflow examples for cloud native DevOps","archived":false,"fork":false,"pushed_at":"2025-03-15T04:41:02.000Z","size":154,"stargazers_count":87,"open_issues_count":1,"forks_count":27,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-30T03:05:52.216Z","etag":null,"topics":["actions","ci-cd","devops","devsecops","docker","github-actions","workflow","workflow-reusable"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BretFisher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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},"funding":{"custom":"bretfisher.com/members"}},"created_at":"2021-06-17T16:19:23.000Z","updated_at":"2025-03-15T04:41:04.000Z","dependencies_parsed_at":"2023-10-02T17:14:32.656Z","dependency_job_id":"cc939563-f6a5-4ebc-80ed-f7f5e51cb69d","html_url":"https://github.com/BretFisher/github-actions-templates","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BretFisher%2Fgithub-actions-templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BretFisher%2Fgithub-actions-templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BretFisher%2Fgithub-actions-templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BretFisher%2Fgithub-actions-templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BretFisher","download_url":"https://codeload.github.com/BretFisher/github-actions-templates/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247184859,"owners_count":20897844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["actions","ci-cd","devops","devsecops","docker","github-actions","workflow","workflow-reusable"],"created_at":"2024-08-01T15:00:44.067Z","updated_at":"2025-04-04T13:30:31.555Z","avatar_url":"https://github.com/BretFisher.png","language":"Dockerfile","readme":"# GitHub Actions DevOps Examples\n\n[![Lint Code Base](https://github.com/BretFisher/github-actions-templates/actions/workflows/call-super-linter.yaml/badge.svg)](https://github.com/BretFisher/github-actions-templates/actions/workflows/call-super-linter.yaml)\n\nThese workflow examples comprise three parts:\n\n- `.github/workflows/reusable-*.yaml` - Designed to be reusable as a \"called\" workflow, and has a `workflow_call` event in it. They would exist in a central repository and called by other repositories. The central repository needs to be `public`, `internal`, or `private` and enabled for GitHub Actions sharing in repository Settings.\n- `templates/call-*.yaml` - these are the \"calling\" templates that you would copy to all your code and IaC repositories. Each of their jobs has the special `uses: \u003cgithub-path\u003e` to point to the reusable workflow.\n- `.github/workflows/call-local*.yaml` - For testing. Calls a local workflow in the same directory. ProTip: Make tests for your reusable workflows! Either in the same repository as this one shows, or from a separate repository full of tests. You'll thank me later.\n\n\u003e ⚠️ **DO NOT call this workflow directly**, rather, use it as a template repository and fork it for your own reusable workflow. I might change this workflow at anytime, based on new GHA features or learnings, and your calling workflow might break. ⚠️\n\n## Examples\n\n- [`.github/dependabot.yml`](.github/dependabot.yml) will make PRs for version updates to your Actions *and* Dockerfiles.\n- [`.github/linters/`](.github/linters/) stores linter configs used by Super-Linter. ProTip: symlink these to the preferred location to use the same linters locally.\n- [`templates/call-super-linter.yaml`](templates/call-super-linter.yaml) is a workflow that calls Super-Linter, which I'm storing the full reusable workflow in [bretfisher/super-linter-workflow](https://github.com/BretFisher/super-linter-workflow).\n- [`templates/call-docker-build.yaml`](templates/call-docker-build.yaml) is a workflow that calls a Docker build (awesomesauce!), which I'm storing the full reusable workflow in [bretfisher/docker-build-workflow](bretfisher/docker-build-workflow).\n- [`templates/call-docker-build-promotion.yaml`](templates/call-docker-build-promotion.yaml) is an advanced workflow that calls a build workflow on PR, and then on merge it will call that workflow with different values and [also creates a GitOps-style PR](.github/workflows/reusable-gitops-pr.yaml) to deploy the new image to a Kubernetes cluster.\n- [`templates/call-snyk-scan-image.yaml`](templates/call-snyk-scan-image.yaml) is a workflow that calls a [Snyk](https://github.com/snyk/cli) scan [in this repository](.github/workflows/reusable-snyk-scan-image.yaml).\n- [`templates/call-trivy-scan-image.yaml`](templates/call-trivy-scan-image.yaml) is a workflow that calls a reusable [Trivy](https://github.com/marketplace/actions/aqua-security-trivy) scan [in this repository](.github/workflows/reusable-trivy-scan-image.yaml).\n\n## This repository is part of my examples on GitHub Actions\n\n- (you are here) [bretfisher/github-actions-templates](https://github.com/BretFisher/github-actions-templates) - Main reusable templates repository\n- [bretfisher/super-linter-workflow](https://github.com/BretFisher/super-linter-workflow) - Reusable linter workflow\n- [bretfisher/docker-build-workflow](https://github.com/BretFisher/docker-build-workflow)- Reusable docker build workflow\n- [bretfisher/docker-ci-automation](https://github.com/BretFisher/docker-ci-automation) - Step-by-step video and example of a Docker CI workflow\n- [My full list of container examples and tools](https://github.com/bretfisher)\n\n## More reading\n\n- [Docker Build/Push Action advanced examples](https://github.com/docker/build-push-action/tree/master/docs/advanced)\n- [My full list of container examples and tools](https://github.com/bretfisher)\n\n## 🎉🎉🎉 Join my cloud native DevOps community 🎉🎉🎉\n\n- [My Cloud Native DevOps Discord server](https://devops.fan)\n- [My weekly YouTube Live show](https://www.youtube.com/@BretFisher)\n- [My weekly newsletter](https://www.bretfisher.com/newsletter)\n- [My courses and coupons](https://www.bretfisher.com/courses)\n","funding_links":["bretfisher.com/members"],"categories":["Dockerfile"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBretFisher%2Fgithub-actions-templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBretFisher%2Fgithub-actions-templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBretFisher%2Fgithub-actions-templates/lists"}