Introdução
Neste guia, você aprenderá os componentes básicos necessários para criar e usar uma ação composta empacotada. Para manter o foco deste guia nos componentes necessários para empacotar a ação, a funcionalidade do código da ação é mínima. A ação imprime "Hello World" e "Goodbye", ou, se você fornecer um nome personalizado, imprimirá "Hello [who-to-greet]" e "Goodbye". A ação também mapeia um número aleatório para a variável de saída random-number
e executa um script chamado goodbye.sh
.
Ao concluir este projeto, você entenderá como criar a sua própria ação composta e testá-la em um fluxo de trabalho.
Aviso: ao criar fluxos de trabalho e ações, você sempre deve considerar se o seu código pode executar entradas não confiáveis de possíveis invasores. Certos contextos devem ser tratados como entradas não confiáveis, uma vez que um invasor pode inserir seu próprio conteúdo malicioso. Para obter mais informações, confira "Fortalecimento de segurança para o GitHub Actions".
Pré-requisitos
Antes de começar, você criará um repositório em GitHub.com.
-
Crie um repositório público novo no GitHub.com. Você pode escolher qualquer nome de repositório ou usar o exemplo de
hello-world-composite-action
a seguir. É possível adicionar esses arquivos após push do projeto no GitHub Enterprise Cloud. Para obter mais informações, confira "Criar um repositório". -
Clone o repositório para seu computador. Para obter mais informações, confira "Clonar um repositório".
-
No seu terminal, mude os diretórios para seu novo repositório.
Shell cd hello-world-composite-action
cd hello-world-composite-action
-
No repositório
hello-world-composite-action
, crie um arquivo chamadogoodbye.sh
e adicione o seguinte código de exemplo:Bash echo "Goodbye"
echo "Goodbye"
-
No terminal, torne
goodbye.sh
executável.Shell chmod +x goodbye.sh
chmod +x goodbye.sh
-
Ainda no terminal, faça check-in do arquivo
goodbye.sh
.Shell git add goodbye.sh git commit -m "Add goodbye script" git push
git add goodbye.sh git commit -m "Add goodbye script" git push
Criar um arquivo de metadados de ação
-
No repositório
hello-world-composite-action
, crie um arquivo chamadoaction.yml
e adicione o código de exemplo a seguir. Para obter mais informações sobre essa sintaxe, confira "Sintaxe de metadados para o GitHub Actions".
action.yml
```yaml copy
name: 'Hello World'
description: 'Greet someone'
inputs:
who-to-greet: # id of input
description: 'Who to greet'
required: true
default: 'World'
outputs:
random-number:
description: "Random number"
value: ${{ steps.random-number-generator.outputs.random-number }}
runs:
using: "composite"
steps:
- run: echo Hello ${{ inputs.who-to-greet }}.
shell: bash
- id: random-number-generator
run: echo "random-number=$(echo $RANDOM)" >> $GITHUB_OUTPUT
shell: bash
- run: echo "${{ github.action_path }}" >> $GITHUB_PATH
shell: bash
- run: goodbye.sh
shell: bash
```
Esse arquivo define a entrada de who-to-greet
, mapeia o número gerado aleatoriamente para a variável de saída random-number
, adiciona o caminho da ação ao caminho do sistema executor (para localizar o script goodbye.sh
durante a execução) e executa o script goodbye.sh
.
Para obter mais informações sobre como gerenciar saídas, confira "[AUTOTITLE](/actions/creating-actions/metadata-syntax-for-github-actions#outputs-for-composite-actions)".
Para obter mais informações sobre como usar o `github.action_path`, confira "[AUTOTITLE](/actions/learn-github-actions/contexts#github-context)".
-
No terminal, faça check-in do arquivo
action.yml
.Shell git add action.yml git commit -m "Add action" git push
git add action.yml git commit -m "Add action" git push
-
No seu terminal, adicione uma tag. Este exemplo usa uma tag chamada
v1
. Para obter mais informações, confira "Sobre ações personalizadas".Shell git tag -a -m "Description of this release" v1 git push --follow-tags
git tag -a -m "Description of this release" v1 git push --follow-tags
Testar sua ação em um fluxo de trabalho
O código de fluxo de trabalho a seguir usa a ação olá, mundo concluída que você criou em "Criar uma ação composta".
Copie o código de fluxo de trabalho em um arquivo .github/workflows/main.yml
em outro repositório, mas substitua actions/hello-world-composite-action@v1
pelo repositório e pela tag que você criou. Você também pode substituir a entrada who-to-greet
pelo seu nome.
.github/workflows/main.yml
on: [push] jobs: hello_world_job: runs-on: ubuntu-latest name: A job to say hello steps: - uses: actions/checkout@v4 - id: foo uses: actions/hello-world-composite-action@v1 with: who-to-greet: 'Mona the Octocat' - run: echo random-number ${{ steps.foo.outputs.random-number }} shell: bash
on: [push]
jobs:
hello_world_job:
runs-on: ubuntu-latest
name: A job to say hello
steps:
- uses: actions/checkout@v4
- id: foo
uses: actions/hello-world-composite-action@v1
with:
who-to-greet: 'Mona the Octocat'
- run: echo random-number ${{ steps.foo.outputs.random-number }}
shell: bash
No repositório, clique na guia Ações e selecione a execução mais recente do fluxo de trabalho. A saída deve incluir: "Hello Mona the Octocat", o resultado do script "Goodbye" e um número aleatório.
Exemplos de ações compostas do GitHub.com
Encontre muitos exemplos de ações compostas do GitHub.com.