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.
- Para obter mais informações sobre a atualização para GitHub Enterprise Server 3.0 ou posterior, consulte "Atualizar GitHub Enterprise Server".
- Para obter mais informações sobre a configuração de GitHub Actions após atualizar, consulte a documentação para 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 os comandos do fluxo de trabalho
As ações podem comunicar-se com a máquina do executor para definir as variáveis de ambiente, valores de saída usados por outras ações, adicionar mensagens de depuração aos registros de saída e outras tarefas.
Os comandos do gluxo de trabalho usam o comando echo
em um formato específico.
echo "::workflow-command parameter1={data},parameter2={data}::{command value}"
Observação: Os nomes do comando do fluxo de trabalho e do parâmetro não diferenciam maiúsculas e minúsculas.
Aviso: se você estiver usando um prompt do comando, omita as aspas duplas ("
) ao usar comandos do fluxo de trabalho.
Usar comandos do fluxo de trabalho para acessar funções do kit de de ferramentas
O actions/toolkit inclui uma quantidade de funções que podem ser executadas como comandos do fluxo de trabalho. Use a sintaxe ::
para executar os comandos do fluxo de trabalho no arquivo YAML. Em seguida, esses comandos serão enviados para a o executor por meio do stdout
. Por exemplo, em vez de usar o código para definir uma saída, como abaixo:
core.setOutput('SELECTED_COLOR', 'green');
Você pode usar o comando set-output
no seu fluxo de trabalho para definir o mesmo valor:
- name: Set selected color
run: echo '::set-output name=SELECTED_COLOR::green'
id: random-color-generator
- name: Get color
run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}"
A tabela a seguir mostra quais funções do conjunto de ferramentas estão disponíveis dentro de um fluxo de trabalho:
Função do kit de ferramentas | Comando equivalente do fluxo de trabalho |
---|---|
core.addPath | |
add-path | |
core.debug | debug |
core.error | erro |
core.endGroup | endgroup |
core.exportVariable | |
set-env | |
core.getInput | Acessível por meio do uso da variável de ambiente INPUT_{NAME} |
core.getState | Acessível por meio do uso da variável de ambiente STATE_{NAME} |
core.isDebug | Acessível por meio do uso da variável de ambiente RUNNER_DEBUG |
core.saveState | save-state |
core.setFailed | Usado como um atalho para ::error e exit 1 |
core.setOutput | set-output |
core.setSecret | add-mask |
core.startGroup | grupo |
core.warning | aviso |
Definir uma variável de ambiente
::set-env name={name}::{value}
Cria ou atualiza uma variável de ambiente para quaisquer etapas a serem executadas em seguida no trabalho. A etapa que cria ou atualiza a variável de ambiente não tem acesso ao novo valor, mas todos os passos subsequentes em um trabalho terão acesso. As variáveis de ambiente diferenciam maiúsculas de minúsculas e podem ter pontuação.
Exemplo
echo "::set-env name=action_state::yellow"
Definir um parâmetro de saída
::set-output name={name}::{value}
Configura um parâmetro de saída da ação.
Opcionalmente, você também pode declarar os parâmetros de saída no arquivo de metadados de uma ação. Para obter mais informações, consulte "Sintaxe de metadados para o GitHub Actions".
Exemplo
echo "::set-output name=action_fruit::strawberry"
Adicionar um caminho do sistema
::add-path::{path}
Agrega um diretório à variável de sistema PATH
para todas as ações subsequentes no trabalho atual. A ação que está em execução não pode acessar a nova variável de caminho.
Exemplo
echo "::add-path::/path/to/dir"
Configurar uma mensagem de depuração
::debug::{message}
Imprime uma mensagem de erro no log. Você deve criar um segredo nomeado ACTIONS_STEP_DEBUG
com o valor true
para ver as mensagens de erro configuradas por esse comando no log. Para obter mais informações, consulte "Habilitar o registro de depuração".
Exemplo
echo "::debug::Set the Octocat variable"
Configurar uma mensagem de aviso
::warning file={name},line={line},endLine={endLine},title={title}::{message}
Cria uma mensagem de aviso e a imprime no log. This message will create an annotation, which can associate the message with a particular file in your repository. Optionally, your message can specify a position within the file.
| Parameter | Value | | :- | :- | | file
| Filename | | col
| Column number, starting at 1 | | line
| Line number, starting at 1 |
Exemplo
echo "::warning file=app.js,line=1,col=5,endColumn=7::Missing semicolon"
Configurar uma mensagem de erro
::error file={name},line={line},endLine={endLine},title={title}::{message}
Cria uma mensagem de erro e a imprime no log. This message will create an annotation, which can associate the message with a particular file in your repository. Optionally, your message can specify a position within the file.
| Parameter | Value | | :- | :- | | file
| Filename | | col
| Column number, starting at 1 | | line
| Line number, starting at 1 |
Exemplo
echo "::error file=app.js,line=1,col=5,endColumn=7::Missing semicolon"
Agrupar linhas dos registros
::group::{title}
::endgroup::
Cria um grupo expansível no registro. Para criar um grupo, use o comando grupo
e especifique um título
. Qualquer coisa que você imprimir no registro entre os comandos grupo
e endgroup
estará aninhada dentro de uma entrada expansível no registro.
Exemplo
echo "::group::My title"
echo "Inside group"
echo "::endgroup::"
Mascarar um valor no registro
::add-mask::{value}
Mascarar um valor evita que uma string ou variável seja impressa no log. Cada palavra mascarada separada por espaço em branco é substituída pelo caractere *
. Você pode usar uma variável de ambiente ou string para o value
da máscara.
Exemplo de máscara de string
Quando você imprime "Mona The Octocat"
no log, você verá "***"
.
echo "::add-mask::Mona The Octocat"
Exemplo de máscara de uma variável de ambiente
Ao imprimir a variável MY_NAME
ou o valor "Mona The Octocat"
no log, você verá "***"
em vez de "Mona The Octocat"
.
MY_NAME="Mona The Octocat"
echo "::add-mask::$MY_NAME"
Parar e iniciar os comandos no fluxo de trabalho
::stop-commands::{endtoken}
Para de processar quaisquer comandos de fluxo de trabalho. Esse comando especial permite fazer o registro do que você desejar sem executar um comando do fluxo de trabalho acidentalmente. Por exemplo, é possível parar o log para gerar um script inteiro que tenha comentários.
Para parar o processamento de comandos de fluxo de trabalho, passe um token único para stop-commands
. Para retomar os comandos do fluxo de trabalho, passe o mesmo token que você usou para parar os comandos do fluxo de trabalho.
Aviso: Certifique-se de que o token que você está usando é gerado aleatoriamente e exclusivo para cada execução. Como demonstrado no exemplo abaixo, você pode gerar um hash exclusivo do seu github.token
para cada execução.
::{endtoken}::
Exemplo de parar e iniciar comandos de workflow
jobs:
workflow-command-job:
runs-on: ubuntu-latest
steps:
- name: disable workflow commands
run: |
echo '::warning:: this is a warning'
echo "::stop-commands::`echo -n ${{ github.token }} | sha256sum | head -c 64`"
echo '::warning:: this will NOT be a warning'
echo "::`echo -n ${{ github.token }} | sha256sum | head -c 64`::"
echo '::warning:: this is a warning again'
Enviar valores para as ações anterior e posterior
Você pode usar o comando save-state
para criar variáveis de ambiente para compartilhar com as ações pre:
ou post:
. Por exemplo, você pode criar um arquivo com a ação pre:
, passar o local do arquivo para a ação main:
e, em seguida, usar a ação post:
para excluir o arquivo. Como alternativa, você pode criar um arquivo com a ação main:
ação, passar o local do arquivo para a ação post:
, além de usar a ação post:
para excluir o arquivo.
Se você tiver múltiplas ações pre:
ou post:
ações, você poderá apenas acessar o valor salvo na ação em que save-state
foi usado. Para obter mais informações sobre a ação post:
, consulte "Sintaxe de metadados para GitHub Actions".
O comando save-state
pode ser executado apenas em uma ação e não está disponível para arquivos YAML. O valor salvo é armazenado como um valor de ambiente com o prefixo STATE_
.
Este exemplo usa o JavaScript para executar o comando save-state
. A variável de ambiente resultante é denominada STATE_processID
com o valor de 12345
:
console.log('::save-state name=processID::12345')
A variável STATE_processID
está exclusivamente disponível para o script de limpeza executado na ação principal
. Este exemplo é executado em principal
e usa o JavaScript para exibir o valor atribuído à variável de ambiente STATE_processID
:
console.log("O PID em execução a partir da ação principal é: " + process.env.STATE_processID);