Introducción
En esta guía, aprenderás acerca de los componentes básicos necesarios para crear y usar una acción compuesta empaquetada. Para centrar esta guía en los componentes necesarios para empaquetar la acción, la funcionalidad del código de la acción es mínima. La acción imprime "Hello World" y después "Goodbye", o si proporcionas un nombre personalizado, imprime "Hello [who-to-greet]" y luego "Goodbye". La acción también asigna un número aleatorio a la variable de salida random-number
y ejecuta un script denominado goodbye.sh
.
Una vez que completes este proyecto, deberías comprender cómo crear tu propia acción compuesta y probarla en un flujo de trabajo.
Advertencia: Cuando cree flujos de trabajo y acciones, siempre debe considerar si el código podría ejecutar entradas no confiables de atacantes potenciales. Se tratará a algunos contextos como una entrada no confiable, ya que un atacante podrían insertar su propio contenido malintencionado. Para obtener más información, vea «Fortalecimiento de seguridad para GitHub Actions».
Prerrequisitos
Antes de comenzar, deberás crear un repositorio en GitHub.com.
-
Crea un repositorio público nuevo en GitHub.com. Puede elegir cualquier nombre de repositorio o usar el ejemplo
hello-world-composite-action
siguiente. Puedes agregar estos archivos después de que tu proyecto se haya subido a GitHub. Para obtener más información, vea «Crear un repositorio nuevo». -
Clona tu repositorio en tu computadora. Para obtener más información, vea «Clonar un repositorio».
-
Desde tu terminal, cambia los directorios en tu repositorio nuevo.
Shell cd hello-world-composite-action
cd hello-world-composite-action
-
En el repositorio
hello-world-composite-action
, cree un archivo denominadogoodbye.sh
y agregue el código de ejemplo siguiente:Bash echo "Goodbye"
echo "Goodbye"
-
Desde el terminal, convierta
goodbye.sh
en ejecutable.Shell chmod +x goodbye.sh
chmod +x goodbye.sh
-
Desde el terminal, registre el archivo
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
Crear un archivo de metadatos de una acción
-
En el repositorio
hello-world-composite-action
, cree un archivo denominadoaction.yml
y agregue el código de ejemplo siguiente. Para más información sobre la sintaxis, consulta "Sintaxis de metadatos para Acciones de GitHub".
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
```
Este archivo define la entrada who-to-greet
, asigna el número generado aleatoriamente a la variable de salida random-number
, agrega la ruta de acceso de la acción a la ruta del sistema del ejecutor (para buscar el script goodbye.sh
durante la ejecución) y ejecuta el script goodbye.sh
.
Para más información sobre la administración de las salidas, consulta "[AUTOTITLE](/actions/creating-actions/metadata-syntax-for-github-actions#outputs-for-composite-actions)".
Para más información sobre cómo usar `github.action_path`, consulta "[AUTOTITLE](/actions/learn-github-actions/contexts#github-context)".
-
Desde el terminal, registre el archivo
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
-
Desde tu terminal, agrega una etiqueta. En este ejemplo se usa una etiqueta denominada
v1
. Para obtener más información, vea «Acercad e las acciones 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
Probar tu acción en un flujo de trabajo
En el siguiente código de flujo de trabajo se usa la acción "Hola mundo" completada que has creado en "Crear una acción compuesta".
Copie el código de flujo de trabajo en un archivo .github/workflows/main.yml
de otro repositorio, pero reemplace actions/hello-world-composite-action@v1
por el repositorio y la etiqueta que ha creado. También puede reemplazar la entrada who-to-greet
por su nombre.
.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
En el repositorio, haga clic en la pestaña Actions y seleccione la última ejecución de flujo de trabajo. La salida deberá incluir "Hello Mona the Octocat", el resultado del script de "Goodbye" y un número aleatorio.
Acciones compuestas de ejemplo en GitHub.com
Puedes encontrar muchos ejemplos de acciones compuestas en GitHub.com.