{"id":14969175,"url":"https://github.com/fastify/workflows","last_synced_at":"2025-09-11T06:34:46.195Z","repository":{"id":38385424,"uuid":"437927659","full_name":"fastify/workflows","owner":"fastify","description":"Reusable workflows for use in the Fastify organization","archived":false,"fork":false,"pushed_at":"2025-09-01T01:54:47.000Z","size":209,"stargazers_count":14,"open_issues_count":11,"forks_count":8,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-09-04T20:50:30.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null},"funding":{"github":"fastify","open_collective":"fastify"}},"created_at":"2021-12-13T15:35:24.000Z","updated_at":"2025-08-21T12:20:56.000Z","dependencies_parsed_at":"2023-10-29T10:24:16.509Z","dependency_job_id":"0e96ca39-5324-4116-a180-5093c83d289f","html_url":"https://github.com/fastify/workflows","commit_stats":{"total_commits":102,"total_committers":15,"mean_commits":6.8,"dds":0.6764705882352942,"last_synced_commit":"f56da2532319d825a94c607d2638d757229a6409"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/fastify/workflows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastify%2Fworkflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastify%2Fworkflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastify%2Fworkflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastify%2Fworkflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastify","download_url":"https://codeload.github.com/fastify/workflows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastify%2Fworkflows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274589627,"owners_count":25312971,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-09-24T13:41:17.490Z","updated_at":"2025-09-11T06:34:46.183Z","avatar_url":"https://github.com/fastify.png","language":null,"readme":"# Workflows\n\nReusable workflows for use in the Fastify organization.\n\n## Intro\n\nGitHub [introduced reusable workflows](https://github.blog/2021-11-29-github-actions-reusable-workflows-is-generally-available/) on 2021-11-29 which, as the name suggests, are workflows that can be referenced across the entirety of GitHub. A reusable workflow is called by using the `uses` keyword in another workflow.\n\nFor more information, including limitations, [see the GitHub Docs](https://docs.github.com/en/actions/learn-github-actions/reusing-workflows).\n\n## CI workflows\n### Usage\n\n```yml\nname: CI\n\non:\n  push:\n    branches:\n     - main\n     - next\n     - 'v*'\n    paths-ignore:\n      - 'docs/**'\n      - '*.md'\n  pull_request:\n    paths-ignore:\n      - 'docs/**'\n      - '*.md'\n\npermissions:\n  contents: read\n\njobs:\n  test:\n    permissions:\n      contents: write\n      pull-requests: write\n    uses: fastify/workflows/.github/workflows/plugins-ci.yml@v5\n```\n\nIncluded in this repo is a [basic workflow](.github/workflows/plugins-ci.yml) for use across the majority of plugins, as well as variants with service containers.\n\n### Enable workflow Linter job\n\nBy setting the `lint` option to `true` when using the [basic workflow](.github/workflows/plugins-ci.yml) the CI will first run the linter job once.\n\n**Example:** running the linter job first with the [basic workflow](.github/workflows/plugins-ci.yml)\n\n```yml\nname: CI\n\non:\n  push:\n    branches:\n     - main\n     - next\n     - 'v*'\n    paths-ignore:\n      - 'docs/**'\n      - '*.md'\n  pull_request:\n    paths-ignore:\n      - 'docs/**'\n      - '*.md'\n\npermissions:\n  contents: read\n\njobs:\n  test:\n    permissions:\n      contents: write\n      pull-requests: write\n    uses: fastify/workflows/.github/workflows/plugins-ci.yml@v5\n    with:\n      lint: true\n```\n\n### Inputs\n\n| Input Name                         | Required   | Type    | Default   | Description                                                                        |\n| ---------------------------------- | ---------- | ------- | --------- | ---------------------------------------------------------------------------------- |\n| `auto-merge-exclude`                 | false      | string  | `fastify` | Provide a semicolon separated list of packages that you do not want to be auto-merged. |\n| `fastify-dependency-integration`     | false      | boolean | `false`   | Set to `true` to run fastify tests with the (proposed) changes. |\n| `license-check`                      | false      | boolean | `false`   | Set to `true` to check that a repository's production dependencies use permissive licenses: 0BSD, Apache-2.0, BSD-2-Clause, BSD-3-Clause, MIT, or ISC. |\n| `license-check-allowed-additional`   | false      | string  |           | Provide a semicolon separated list of SPDX-license identifiers that you want to additionally allow. |\n| `lint`                               | false      | boolean | `false`   | Set to `true` to run the `lint` script in a repository's `package.json`.           |\n| `node-versions`                      | false      | string  | `'[\"20\", \"22\", \"24\"]'`   | Provide A JSON array that specifies the Node.js versions on which the job should run.           |\n\n## Benchmark PR workflow\n\nThe benchmark workflow expects `pull_request` or `pull_request_target` events. A common use for this workflow is to run benchmarks when a `benchmark` label is added to the PR.\n\n### Usage\n\n```yml\nname: Benchmark PR\n\non:\n  pull_request_target:\n    types:\n      - labeled\n\njobs:\n  benchmark:\n    if: ${{ github.event.label.name == 'benchmark' }}\n    uses: fastify/workflows/.github/workflows/plugins-benchmark-pr.yml@v5\n    with:\n      npm-script: bench\n\n  remove-label:\n    if: \"always()\"\n    needs: benchmark\n    runs-on: ubuntu-latest\n    steps:\n      - name: Remove benchmark label\n        uses: octokit/request-action@v2.x\n        id: remove-label\n        with:\n          route: DELETE /repos/{repo}/issues/{issue_number}/labels/{name}\n          repo: ${{ github.event.pull_request.base.repo.full_name }}\n          issue_number: ${{ github.event.pull_request.number }}\n          name: benchmark\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### Inputs\n| Input Name                         | Required   | Type    | Default     | Description                                                                        |\n| ---------------------------------- | ---------- | ------- | ----------- | ---------------------------------------------------------------------------------- |\n| `npm-script`                       | false      | string  | `benchmark` | Provide the name of the npm script to run                                       |\n| `node-versions`                      | false      | string  | `'[\"20\", \"22\", \"24\"]'`   | Provide A JSON array that specifies the Node.js versions on which the job should run.           |\n\n\n## Acknowledgments\n\nPast sponsors:\n\n-   [Yeovil Hospital](https://somersetft.nhs.uk/yeovilhospital/)\n\n## Contributing\n\nContributions are welcome, and any help is greatly appreciated!\n\nSee [the contributing guide](./CONTRIBUTING.md) for details on how to get started.\nPlease adhere to Fastify's [Code of Conduct](https://github.com/fastify/.github/blob/main/CODE_OF_CONDUCT.md) when contributing.\n\n## License\n\nLicensed under [MIT](./LICENSE).\n","funding_links":["https://github.com/sponsors/fastify","https://opencollective.com/fastify"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastify%2Fworkflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastify%2Fworkflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastify%2Fworkflows/lists"}