{"id":18450569,"url":"https://github.com/skills/reusable-workflows","last_synced_at":"2025-04-05T18:05:27.567Z","repository":{"id":65854600,"uuid":"536778187","full_name":"skills/reusable-workflows","owner":"skills","description":"Make a workflow reusable, call it in another workflow, and use a matrix strategy to run multiple versions.","archived":false,"fork":false,"pushed_at":"2025-03-05T09:47:06.000Z","size":51,"stargazers_count":73,"open_issues_count":1,"forks_count":49,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-29T17:02:38.459Z","etag":null,"topics":["actions","github-actions","matrix-strategy","skills-course","workflows"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skills.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}},"created_at":"2022-09-14T22:23:13.000Z","updated_at":"2025-03-16T14:56:21.000Z","dependencies_parsed_at":"2024-06-13T18:36:10.284Z","dependency_job_id":"b3589fcc-4b11-498c-896b-7c0d11839a36","html_url":"https://github.com/skills/reusable-workflows","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/skills%2Freusable-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skills%2Freusable-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skills%2Freusable-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skills%2Freusable-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skills","download_url":"https://codeload.github.com/skills/reusable-workflows/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378138,"owners_count":20929296,"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","github-actions","matrix-strategy","skills-course","workflows"],"created_at":"2024-11-06T07:25:42.757Z","updated_at":"2025-04-05T18:05:27.550Z","avatar_url":"https://github.com/skills.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cheader\u003e\n\n\u003c!--\n  \u003c\u003c\u003c Author notes: Course header \u003e\u003e\u003e\n  Read \u003chttps://skills.github.com/quickstart\u003e for more information about how to build courses using this template.\n  Include a 1280×640 image, course name in sentence case, and a concise description in emphasis.\n  In your repository settings: enable template repository, add your 1280×640 social image, auto delete head branches.\n  Next to \"About\", add description \u0026 tags; disable releases, packages, \u0026 environments.\n  Add your open source license, GitHub uses MIT license.\n--\u003e\n\n# Reusable workflows and matrix strategies\n\n_Make a workflow reusable, call it in another workflow, and use a matrix strategy to run multiple versions._\n\n\u003c/header\u003e\n\n\u003c!--\n  \u003c\u003c\u003c Author notes: Course start \u003e\u003e\u003e\n  Include start button, a note about Actions minutes,\n  and tell the learner why they should take the course.\n--\u003e\n\n## Welcome\n\nReusable workflows offer a simple and powerful way to avoid copying and pasting workflows across your repositories, and adding a matrix strategy lets you use variables in a single job definition to automatically create multiple job runs.\n\n- **Who is this for**: Developers, DevOps engineers, students, managers, teams, GitHub users.\n- **What you'll learn**: How to create and use reusable workflows, create a matrix strategy, trigger workflows, and find workflow logs.\n- **What you'll build**: An Actions workflow with a matrix strategy that calls a reusable workflow to output multiple versions of node.\n- **Prerequisites**: In this course you will work with pull requests and YAML workflow files. We recommend you take the [Introduction to GitHub](https://github.com/skills/introduction-to-github) course first or be familiar with GitHub basics, and the [Hello GitHub Actions](https://github.com/skills/hello-github-actions) course for an introduction to GitHub Actions and workflow files.\n- **How long**: This course can be finished in less than one hour.\n- **Attribution**: This Skills course was inspired by a [demo video](https://www.youtube.com/watch?v=MBpyouQtY_M) created by Mickey Gousset ([@mickeygousset](https://github.com/mickeygousset)).\n\nIn this course, you will:\n\n1. Make a reusable workflow\n2. Add a job\n3. Add a matrix strategy\n4. Merge your pull request\n5. Trigger the workflow\n\n### How to start this course\n\n\u003c!-- For start course, run in JavaScript:\n'https://github.com/new?' + new URLSearchParams({\n  template_owner: 'skills',\n  template_name: 'reusable-workflows',\n  owner: '@me',\n  name: 'skills-reusable-workflows',\n  description: 'My clone repository',\n  visibility: 'public',\n}).toString()\n--\u003e\n\n[![start-course](https://user-images.githubusercontent.com/1221423/235727646-4a590299-ffe5-480d-8cd5-8194ea184546.svg)](https://github.com/new?template_owner=skills\u0026template_name=reusable-workflows\u0026owner=%40me\u0026name=skills-reusable-workflows\u0026description=My+clone+repository\u0026visibility=public)\n\n1. Right-click **Start course** and open the link in a new tab.\n2. In the new tab, most of the prompts will automatically fill in for you.\n   - For owner, choose your personal account or an organization to host the repository.\n   - We recommend creating a public repository, as private repositories will [use Actions minutes](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions).\n   - Scroll down and click the **Create repository** button at the bottom of the form.\n3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README.\n\n\u003cfooter\u003e\n\n\u003c!--\n  \u003c\u003c\u003c Author notes: Footer \u003e\u003e\u003e\n  Add a link to get support, GitHub status page, code of conduct, license link.\n--\u003e\n\n---\n\nGet help: [Post in our discussion board](https://github.com/orgs/skills/discussions/categories/reusable-workflows) \u0026bull; [Review the GitHub status page](https://www.githubstatus.com/)\n\n\u0026copy; 2023 GitHub \u0026bull; [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md) \u0026bull; [MIT License](https://gh.io/mit)\n\n\u003c/footer\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskills%2Freusable-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskills%2Freusable-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskills%2Freusable-workflows/lists"}