Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.
Sobre sintaxe YAML para o GitHub Actions
Todas as ações exigem um arquivo de metadados. O nome do arquivo dos metadados deve ser action.yml ou action.yaml. Os dados no arquivo de metadados definem as entradas, saídas e executam a configuração para sua ação.
Arquivos de metadados de ação usam a sintaxe YAML. Se você não souber o que é YAML, consulte "Aprender a usar YAML em cinco minutos".
name
Necessário: O nome de sua ação. O GitHub exibe o nome na aba Ações para facilitar a identificação visual das ações em cada trabalho.
autor
Opcional: O nome do autor da ação.
descrição
Necessário: uma descrição curta da ação.
inputs
Opcional: parâmetros de entrada permitem que você especifique os dados que a ação espera usar no momento da execução. O GitHub armazena parâmetros como variáveis de ambiente. Identificações de entrada com letras maiúsculas são alteradas para letras minúsculas no momento da execução. Recomenda-se usar identificações de entrada com letras minúsculas.
Exemplo: Especificando entradas
Este exemplo configura duas entradas: numOctocats e octocatEyeColor. A entrada numOctocats não é necessária e assumirá o valor '1'. A entrada octocatEyeColor é necessária e não tem valor padrão. Arquivos de fluxo de trabalho que usam essa ação devem usar a palavra-chave with (com) para definir um valor de entrada para octocatEyeColor. Para obter mais informações sobre a sintaxe with (com), consulte "Sintaxe de fluxo de trabalho para o GitHub Actions".
inputs: numOctocats: description: 'Number of Octocats' required: false default: '1' octocatEyeColor: description: 'Eye color of the Octocats' required: true Quando você especifica uma entrada em um arquivo de fluxo de trabalho ou usar um valor de entrada padrão, o GitHub criará uma variável de ambiente para a entrada com o nome INPUT_<VARIABLE_NAME>. A variável de ambiente criada altera os nomes de entrada para letras maiúsculas e substitui espaços por caracteres _.
Se a ação for escrita usando um composto, ela não receberá INPUT_<VARIABLE_NAME> automaticamente. Se não ocorrer a conversão, você poderá alterar estas entradas manualmente.
Para acessar a variável de ambiente em uma ação do contêiner do Docker, você deverá passar a entrada usando a palavra-chave args no arquivo de metadados da ação. Para obter mais informações sobre o arquivo de metadados de ação para ações de contêiner do Docker, consulte "Criar uma ação de contêiner do Docker".
Por exemplo, se um fluxo de trabalho definiu as entradas numOctocats e octocatEyeColor, o código de ação poderia ler os valores das entradas usando as variáveis de ambiente do INPUT_NUMTOCATS e INPUT_OCTOCATEYECOLOR.
inputs.<input_id>
Necessário: um identificador string para associar � entrada. O valor de <input_id> é um mapa dos metadados da entrada. <input_id> deve ser um identificador único dentro do objeto inputs (entradas). <input_id> deve iniciar com uma letra ou _ e conter somente caracteres alfanuméricos, - ou _.
inputs.<input_id>.description
Necessário: descrição de string do parâmetro de entrada.
inputs.<input_id>.required
Necessário: um booleano para indicar se a ação exige o parâmetro de entrada. Defina para true quando o parâmetro for necessário.
inputs.<input_id>.default
Opcional: uma string que representa o valor padrão. O valor padrão é usado quando um parâmetro de entrada não é especificado em um arquivo de fluxo de trabalho.
inputs.<input_id>.deprecationMessage
Opcional Se o parâmetro de entrada for usado, esta string será registrada como uma mensagem de aviso. Você pode usar este aviso para notificar os usuários de que o valor de entrada está obsoleto e mencionar outras alternativas.
sapidas para o contêiner do Docker e ações do JavaScript
Opcional Os parâmetros de saída permitem que você declare os dados definidos por uma ação. As ações executadas posteriormente em um fluxo de trabalho podem usar os dados de saída definidos em ações executadas anteriormente. Por exemplo, se uma ação executou a adição de duas entradas (x + y = z), a ação poderia usar o resultado da soma (z) como entrada em outras ações.
Se você não declarar uma saída no seu arquivo de metadados de ação, você ainda poderá definir as saídas e usá-las no seu fluxo de trabalho. Para obter mais informações sobre a definição de saídas em uma ação, consulte "Comandos do fluxo de trabalho para GitHub Actions."
Exemplo: Declarando saídas para o contêiner do Docker e ações do JavaScript
saídas: soma: número do ID da saída descrição: 'Soma das entradas' outputs.<output_id>
Necessário: um identificador string para associar � saída. O valor de <output_id> é um mapa dos metadados de saída. <output_id> deve ser um identificador único dentro do objeto outputs (saídas). <output_id> deve iniciar com uma letra ou _ e conter somente caracteres alfanuméricos, - ou _.
outputs.<output_id>.description
Necessário: descrição de string do parâmetro de saída.
outputs para ações compostas
As saídas opcionais usam os mesmos parâmetros que outputs.<output_id> e outputs.<output_id>escription (consulte "saída para o contêiner do Docker e ações do JavaScript"), mas também inclui o token do valor.
Exemplo: Declarando saídas para ações compostas
outputs: random-number: description: "Random number" value: ${{ steps.random-number-generator.outputs.random-id }} runs: using: "composite" steps: - id: random-number-generator run: echo "::set-output name=random-id::$(echo $RANDOM)" shell: bash outputs.<output_id>.value
Obrigatório O valor com o qual o parâmetro de saída será mapeado. Você pode defini-lo como uma string ou uma expressão com contexto. Por exemplo, você pode usar o contexto das etapas para definir o valor de uma saída como o valor de saída de uma etapa.
Para obter mais informações sobre como usar a sintaxe de contexto, consulte "Contextos".
runs
Obrigatório Especifica se esta é uma ação do JavaScript, uma ação composta, ou uma ação de contêiner do Docker e como a ação é executada.
runs para ações de JavaScript
Obrigatório Configura o caminho para o código da ação e o tempo de execução usado para executar o código.
Exemplo: Usando o Node.js v12
runs: using: 'node12' main: 'main.js' runs.using
Obrigatório O tempo de execução usado para executar o código especificado em principal.
- Use
node12para o Node.js v12.
runs.main
Obrigatório O arquivo que contém o código da ação. O tempo de execução especificado em uso executa este arquivo.
runs.pre
Opcional Permite que você execute um script no início de um trabalho antes de a ação main: começar. Por exemplo, você pode usar pre: para executar um pré-requisito da configuração do script. O tempo de execução especificado com a sintaxe em uso irá executar este arquivo. A ação pre: sempre é executada por padrão, mas você pode substitui-la usando runs.pre-if.
Neste exemplo, a ação pre: executa um script denominado setup.js.:
runs: using: 'node12' pre: 'setup.js' main: 'index.js' post: 'cleanup.js' runs.pre-if
Opcional Permite que você defina condições para a execução da ação pre:. A ação pre: será executada apenas se as condições em pre-if forem atendidas. Se não forem definidas, o padrão de pre-if será sempre(). Em pre-if, verifique as funções para avaliar com base no status do trabalho, não o status próprio da ação.
Observe que o contexto da etapa está indisponível, uma vez que nenhuma etapa foi executada ainda.
Neste exemplo, o cleanup.js é executado apenas nos executores baseados no Linux:
pre: 'cleanup.js' pre-if: runner.os == 'linux' runs.post
Opcional Permite que você execute um script no final do trabalho, uma vez que a ação main: foi finalizada. Por exemplo, você pode usar post: para encerrar uns processos ou remover arquivos desnecessários. O tempo de execução especificado com a sintaxe em uso irá executar este arquivo.
Neste exemplo, a ação post: executa um script chamado cleanup.js:
runs: using: 'node12' main: 'index.js' post: 'cleanup.js' A ação post: é executada sempre por padrão, mas você pode substituí-la usando post-if.
runs.post-if
Opcional Permite que você defina condições para a execução da ação post:. A ação post: só será executada se as condições em post-if forem atendidas. Se não forem definidas, o padrão de post-if será sempre(). Em post-if, verifique as funções para avaliar com base no status do trabalho, não o status próprio da ação.
Por exemplo, este cleanup.js só será executado em executores baseados no Linux:
post: 'cleanup.js' post-if: runner.os == 'linux' runs para ações compostas
Obrigatório Configura o caminho da ação composta.
runs.using
Obrigatório Você deve definir este valor como'composto'.
runs.steps
Obrigatório As etapas de que você planeja executar nesta ação.
runs.steps[*].run
Obrigatório O comando que você deseja executar. Isso pode ser inline ou um script no seu repositório de ação:
runs: using: "composite" steps: - run: ${{ github.action_path }}/test/script.sh shell: bash Como alternativa, você pode usar $GITHUB_ACTION_PATH:
runs: using: "composite" steps: - run: $GITHUB_ACTION_PATH/script.sh shell: bash Para obter mais informações, consulte "github context".
runs.steps[*].shell
Obrigatório O shell onde você quer executar o comando. Você pode usar qualquer um dos shells listados aqui. Obrigatório se run estiver configurado.
runs.steps[*].name
Opcional O nome da etapa composta.
runs.steps[*].id
Opcional Um identificador único para a etapa. Você pode usar id para fazer referência � etapa em contextos. Para obter mais informações, consulte "Contextos".
runs.steps[*].env
Opcional Define um mapa de variáveis de ambiente apenas para essa etapa. Se você deseja modificar a variável de ambiente armazenada no fluxo de trabalho, use eco "{name}={value}" >> $GITHUB_ENV em uma etapa composta.
runs.steps[*].working-directory
Opcional Especifica o diretório de trabalho onde o comando é executado.
runs par ações do contêiner do Docker
Obrigatório Configura a imagem usada para a ação do contêiner do Docker.
Exemplo: Usando um arquivo do Dockerfile no seu repositório
runs: using: 'docker' image: 'Dockerfile' Exemplo: Usando o contêiner de registro público do Docker
runs: using: 'docker' image: 'docker://debian:stretch-slim' runs.using
Obrigatório Você deve definir este valor como 'docker'.
runs.pre-entrypoint
Opcional Permite que você execute um script antes de a ação do entrypoint começar. Por exemplo, você pode usar o pre-entrypoint: para executar um pré-requisito do script da configuração. GitHub Actions usa a execução do docker para lançar esta ação e executa o script dentro de um novo contêiner que usa a mesma imagem-base. Isso significa que o momento de execução é diferente do contêiner principal do entrypoint e qualquer status de que você precisar devem ser acessado na área de trabalho, em HOME, ou como uma variável STATE_. A ação pre-entrypoint: sempre é executada por padrão, mas você pode substitui-la usando runs.pre-if.
O tempo de execução especificado com a sintaxe em uso irá executar este arquivo.
Neste exemplo, a ação pre-entrypoint: executa um script denominado setup.sh:
runs: using: 'docker' image: 'Dockerfile' args: - 'bzz' pre-entrypoint: 'setup.sh' entrypoint: 'main.sh' runs.image
Obrigatório A imagem do Docker a ser usada como contêiner para executar a ação. O valor pode ser o nome da imagem de base do Docker, um arquivo Docker local no seu repositório u uma imagem pública no Docker Hub ou outro registro. Para fazer referência a um arquivo Docker local no seu repositório, o arquivo precisa ser denominado arquivo Docker e você precisa usar um caminho relativo ao seu arquivo de metadados de ação. O aplicativo do docker executará este arquivo.
runs.env
Opcional Especifica um mapa da chave/valor das variáveis do ambiente a serem definidas no ambiente do contêiner.
runs.entrypoint
Opcional Substitui o ENTRYPOINT do Docker no arquivo Docker ou o define, caso nenhum já tenha sido especificado. Use o entrypoint quando o arquivo Docker não especificar um ENTRYPOINT ou você desejar substituir a instrução doENTRYPOINT. Se você omitir o entrypoint, serão executados os comandos que você especificar na instrução do ENTRYPOINT do Docker. A instrução do ENTRYPOINT do Docker tem forma de shell e forma de exec. A documentação do ENTRYPOINT do docker recomenda o uso da forma exec da instrução do ENTRYPOINT.
Para obter mais informações sobre como o entrypoint é executado, consulte "Suporte do arquivo Docker para GitHub Actions".
post-entrypoint
OpcionalPermite que você execute um script de cleanup, uma vez finalizada a açãoruns.entrypoint. GitHub Actions usa a execução do docker para lançar esta ação. Porque GitHub Actions executa o script dentro de um novo contêiner usando a mesma imagem-base, o estado do momento da execução é diferente do contêiner principal do entrypoint. Você pode acessar qualquer estado que precisar na área de trabalho, em HOME ou como variável STATE_. A ação post-entrypoint: sempre é executada por padrão, mas você pode substitui-la usando runs.post-if.
runs: using: 'docker' image: 'Dockerfile' args: - 'bzz' entrypoint: 'main.sh' post-entrypoint: 'cleanup.sh' runs.args
Opcional Um array de strings que define as entradas para um contêiner Docker. As entradas podem incluir strings com codificação rígida. O GitHub entrega os args ao ENTRYPOINT do contêiner quando o contêiner inicia.
args são usados em substituição � instrução CMD em um Dockerfile. Se você usar CMD no Dockerfile, use as diretrizes ordenadas por preferência:
- Documente os argumentos necessários no README das ações e omita-os da instrução
CMD. - Use padrões que permitam o uso da ação sem especificação de
args. - Se a ação expõe uma bandeira
--helpou algo parecido, use isso para fazer sua ação se auto-documentar.
Se você precisar passar variáveis de ambiente para uma ação, certifique-se de que sua ação executa um shell de comando para realizar a substituição de variáveis. Por exemplo, se seu atributo entrypoint é definido como "sh -c", os args serão executados em um terminal de comando. Como alternativa, se o seu arquivo Docker usar um Entrypoint para executar o mesmo comando ("sh-c"), os Args serão executado em um shell de comando.
Para obter mais informações sobre o uso da instrução CMD com GitHub Actions, consulte "Suporte do arquivo Docker para GitHub Actions".
Exemplo: Definir argumentos para o contêiner do Docker
runs: using: 'docker' image: 'Dockerfile' args: - ${{ inputs.greeting }} - 'foo' - 'bar' branding
Você pode usar uma cor e o ícone da Pena para criar um selo para personalizar e distinguir a sua ação. Os selos são exibidos ao lado do nome da sua ação em GitHub Marketplace.
Exemplo: Configurar a marca para uma ação
branding: icon: 'award' color: 'green' branding.color
Cor de fundo do selo. Pode ser: branco, amarelo, azul, verde, laranja, vermelho, roxo ou cinza-escuro.
branding.icon
The name of the v4.28.0 Feather icon to use. Brand icons are omitted as well as the following:
| coffee | colunas | divide-circle | divide-square |
| divide | frown | hexagon | Chave |
| meh | mouse-pointer | smile | ferramenta |
| x-octagon |
Here is an exhaustive list of all currently supported icons:
| atividade | frequência de execução | alerta-círculo | alerta-octágono |
| alerta-triângulo | alinhar-centro | alinhar-justificar | alinhar-esquerda |
| alinhar-direita | âncora | abertura | arquivar |
| flecha-abaixo-círculo | flecha-abaixo-esquerda | flecha-abaixo-direita | flecha-abaixo |
| flecha-esquerda-círculo | flecha-esquerda | flecha-direita-círculo | flecha-direita |
| flecha-acima-círculo | flecha-acima-esquerda | flecha-acima-direita | flecha-acima |
| arroba | prêmio | barra-quadro-2 | barra-quadro |
| bateria-carregando | bateria | sino-desativado | sino |
| bluetooth | negrito | livro-aberto | livro |
| favorito | caixa | pasta | calendário |
| câmera-desligada | câmera | molde | marcar-círculo |
| marcar-quadrado | marcar | chevron-abaixo | chevron-esquerda |
| chevron-direita | chevron-acima | chevrons-abaixo | chevrons-esquerda |
| chevrons-direita | chevrons-acima | círculo | clipboard |
| relógio | nuvem-chuvisco | nuvem-relâmpago | nuvem-desativada |
| nuvem-chuva | nuvem-neve | nuvem | código |
| comando | bússula | copy | canto-abaixo-esquerda |
| canto-abaixo-direita | canto-esquerda-abaixo | canto-esquerda-acima | canto-direita-abaixo |
| canto-direita-acima | canto-acima-esquerda | canto-acima-direita | cpu |
| cartão-de-crédito | cortar | mira | banco de dados |
| delete | disco | dólar-sinal | download-nuvem |
| download | gota | editar-2 | editar-3 |
| edit | link-externo | olho-fechado | olho |
| fast-forward | pena | arquivo-menos | |
| arquivo-mais | arquivo-texto | arquivo | filme |
| filtro | sinalizador | pasta-menos | pasta-mais |
| pasta | presente | git-branch | git-commit |
| git-merge | git-pull-request | globo | grade |
| disco-rígido | hash | fones-de-ouvido | coração |
| ajuda-círculo | casa | image | caixa de entrada |
| info | itálico | camadas | layout |
| boia salva-vidas | link-2 | link | lista |
| carregador | bloquear | log-in | log-out |
| correio | fixar-mapa | map | maximizar-2 |
| maximizar | menu | mensagem-círculo | mensagem-quadrado |
| microfone-desligado | microfone | minimizar-2 | minimizar |
| menos-círculo | menos-quadrado | menos | monitor |
| lua | mais-horizontal | mais-vertical | mover |
| música | navegação-2 | navegação | octágono |
| pacote | clips de papel | pausa-círculo | pausa |
| porcentagem | chamada-telefônica | telefone-transferência | telefone-entrada |
| telefone-perdido | telefone-desligado | telefone-fora | telefone |
| gráfico-pizza | reproduzir-círculo | reproduzir | mais-círculo |
| mais-quadrado | mais | bolso | energia |
| impressora | rádio | atualizar-ccw | atualizar-cw |
| repetir | retroceder | girar-ccw | girar-cw |
| rss | salvar | tesoura | pesquisar |
| enviar | servidor | settings | compartilhar-2 |
| compartilhar | escudo-desabilitado | escudo | sacola-de-compras |
| carrinho-de-compras | aleatório | barra lateral | pular-atrás |
| pular-frente | barra | cursor | smartphone |
| alto-falante | quadrado | estrela | parar-círculo |
| sol | nascer-do-sol | pôr-do-sol | tablet |
| tag | target | terminal | termômetro |
| polegar-para-baixo | polegar-para-cima | alternar-esquerda | alternar-direita |
| lixeira-2 | lixeira | tendência-baixa | tendência-alta |
| triângulo | caminhão | tv | tipo |
| guarda-chuva | sublinhar | desbloquear | carregar-nuvem |
| fazer upload | usuário-marcar | usuário-menos | usuário-mais |
| usuário-x | usuário | users | vídeo-desligado |
| vídeo | correio de voz | volume-1 | volume-2 |
| volume-x | volume | inspecionar | wifi-desligado |
| wifi | vento | x-círculo | x-quadrado |
| x | zapear-desligado | zapear | aproximar |
| afastar |