Skip to main content

Creating starter workflows for your organization

Learn how you can create starter workflows to help people in your team add new workflows more easily.

Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.

Overview

Os fluxos de trabalho iniciais permitem que todos na sua organização que tenham permissão para criar fluxos de trabalho façam isso com mais rapidez e facilidade. Ao criar um fluxo de trabalho, você pode escolher um fluxo de trabalho inicial, e uma parte ou todo o trabalho de escrever o fluxo de trabalho será feito para você. Você pode usar fluxos de trabalho iniciais como ponto de partida para criar seu fluxo de trabalho personalizado ou usá-los no estado em que se encontram. Isso não só poupa tempo, como promove consistência e práticas recomendadas na sua organização.

O GitHub fornece fluxos de trabalho iniciais prontos para uso para as seguintes categorias de alto nível:

  • Implantação (CD) . Para obter mais informações, confira "Sobre a implantação contínua".
  • CI (integração contínua) . Para obter mais informações, confira "Sobre a integração contínua".
  • Automação. Os fluxos de trabalho iniciais de automação oferecem soluções para automatizar os fluxos de trabalho, como a triagem de solicitações de pull e a aplicação de um rótulo com base nos caminhos modificados na solicitação de pull ou a saudação de usuários que estão colaborando pela primeira vez no repositório.

Creating a starter workflow

Starter workflows can be created by users with write access to the organization's .github repository. These can then be used by organization members who have permission to create workflows.

Note: To avoid duplication among starter workflows you can call reusable workflows from within a workflow. This can help make your workflows easier to maintain. For more information, see "Reusing workflows."

This procedure demonstrates how to create a starter workflow and metadata file. The metadata file describes how the starter workflows will be presented to users when they are creating a new workflow.

  1. If it doesn't already exist, create a new public repository named .github in your organization.

  2. Create a directory named workflow-templates.

  3. Create your new workflow file inside the workflow-templates directory.

    If you need to refer to a repository's default branch, you can use the $default-branch placeholder. When a workflow is created the placeholder will be automatically replaced with the name of the repository's default branch.

    For example, this file named octo-organization-ci.yml demonstrates a basic workflow.

    name: Octo Organization CI
    
    on:
      push:
        branches: [ $default-branch ]
      pull_request:
        branches: [ $default-branch ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
    
          - name: Run a one-line script
            run: echo Hello from Octo Organization
    
  4. Create a metadata file inside the workflow-templates directory. The metadata file must have the same name as the workflow file, but instead of the .yml extension, it must be appended with .properties.json. For example, this file named octo-organization-ci.properties.json contains the metadata for a workflow file named octo-organization-ci.yml:

    {
        "name": "Octo Organization Workflow",
        "description": "Octo Organization CI starter workflow.",
        "iconName": "example-icon",
        "categories": [
            "Go"
        ],
        "filePatterns": [
            "package.json$",
            "^Dockerfile",
            ".*\\.md$"
        ]
    }
    
    • name - Required. The name of the workflow. This is displayed in the list of available workflows.
    • description - Required. The description of the workflow. This is displayed in the list of available workflows.
    • iconName - Optional. Specifies an icon for the workflow that's displayed in the list of workflows. The iconName must be the name of an SVG file, without the file name extension, stored in the workflow-templates directory. For example, an SVG file named example-icon.svg is referenced as example-icon.
    • categories - Optional. Defines the language category of the workflow. When a user views the available starter workflows for a repository, the workflows that match the identified language for the project are featured more prominently. For information on the available language categories, see https://github.com/github/linguist/blob/master/lib/linguist/languages.yml.
    • filePatterns - Optional. Allows the workflow to be used if the user's repository has a file in its root directory that matches a defined regular expression.

To add another starter workflow, add your files to the same workflow-templates directory. For example:

Workflow files

Next steps

To continue learning about GitHub Actions, see "Using starter workflows."