Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Sintaxe de metadados para o GitHub Actions

Você pode criar ações para executar tarefas no repositório. As ações requerem um arquivo de metadados que usa sintaxe YAML.

Observação: GitHub Actions estava disponível para GitHub Enterprise Server 2.22 como um beta limitado. O beta terminou. GitHub Actions está agora geralmente disponível em GitHub Enterprise Server 3.0 ou posterior. Para obter mais informações, consulte as observações sobre a versão GitHub Enterprise Server 3.0.


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

Ações Docker e JavaScript requerem 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, as saídas e o ponto de entrada principal 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

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.

outputs (saídas)

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

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>.description (veja "saídas para GitHub Actions"), mas também inclui o token do valor.

Exemplo

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 para ações de JavaScript

Obrigatório Configura o caminho para o código da ação e o aplicativo usado para executar o código.

Exemplo usando Node.js

executa:
  using: 'node12'
  main: 'main.js'

runs.using

Obrigatório O aplicativo usado para executar o código especificado em principal.

runs.main

Obrigatório O arquivo que contém o código da ação. O aplicativo especificado em usando executa este arquivo.

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 aplicativo especificado com a sintaxe using executará esse arquivo. A ação pre: é sempre executada como padrão, mas você pode substituí-la usando pre-if.

Neste exemplo, a ação pre: executa um script denominado setup.js.:

executa:
  using: 'node12'
  pre: 'setup.js'
  main: 'index.js'
  post: 'cleanup.js'

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(). 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'

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 aplicativo especificado com a sintaxe using executará esse arquivo.

Neste exemplo, a ação post: executa um script chamado cleanup.js:

executa:
  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.

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().

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 para a ação composta, e o aplicativo usado para executar o código.

runs.using

Obrigatório Para usar uma ação composta, defina-o como "cmposto".

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ê desejar modificar a variável de ambiente armazenada no fluxo de trabalho, use echo "::set-env name={name}::{value}" em uma etapa composta.

runs.steps[*].working-directory

Opcional Especifica o diretório de trabalho onde o comando é executado.

runs para ações do Docker

Obrigatório Configura a imagem usada para a ação Docker.

Exemplos de uso do arquivo Docker no repositório

runs:
  using: 'docker'
  image: 'Dockerfile'

Exemplo usando um contêiner de registro Docker público

runs:
  using: 'docker'
  image: 'docker://debian:stretch-slim'

runs.using

Obrigatório Você deve definir este valor como 'docker'.

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 substituí-la usando pre-if.

O aplicativo especificado com a sintaxe using executará esse 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 substituí-la usando 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:

  1. Documente os argumentos necessários no README das ações e omita-os da instrução CMD.
  2. Use padrões que permitam o uso da ação sem especificação de args.
  3. Se a ação expõe uma bandeira --help ou 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

runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - ${{ inputs.greeting }}
    - 'foo'
    - 'bar'

branding (marca)

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

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

Nome do ícone Feather (pena) para usar.

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
facebook 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