Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Usa la sintaxis GitHub Actions en una especificación de compilación en AWS CodeBuild
Puedes usar un corredor de acciones CodeBuild gestionado para ejecutar acciones en él. GitHub CodeBuild Esto es posible añadiendo steps
a cualquier fase del archivo de especificaciones de compilación.
CodeBuild Las especificaciones de compilación admiten una lista de pasos de GitHub acción secuenciales que se ejecutan en una fase separada de los comandos. CodeBuild Estas GitHub acciones se integran con CodeBuild las funciones existentes, que incluyen el almacenamiento en caché de dependencias, las compilaciones por lotes, el acceso a AWS Secrets Manager, etc.
Temas
- ¿Cómo puedo empezar a usar una GitHub acción en mi especificación de compilación?
- ¿Qué GitHub acciones puedo usar en mi especificación de compilación?
- ¿Puedo usar otros proveedores de código fuente además de GitHub usar GitHub Actions en mi especificación de compilación?
- ¿Por qué tengo que conectarme a GitHub un proveedor de código fuente para poder usar GitHub Actions en mi especificación de compilación?
- ¿Cuánto cuesta usar GitHub Actions en mi especificación de compilación?
- ¿Qué regiones admiten el uso de GitHub Actions en mi especificación de compilación?
- Prácticas recomendadas para usar GitHub Actions en tus especificaciones de compilación
- Limitaciones del uso de GitHub acciones en tus especificaciones de compilación en CodeBuild
- GitHub Referencia de especificaciones de compilación de Action Runner
- GitHub Ejemplos de sintaxis de acciones con AWS CodeBuild
¿Cómo puedo empezar a usar una GitHub acción en mi especificación de compilación?
Los pasos generales para usar una GitHub acción en tu especificación de compilación son los siguientes:
-
Si aún no lo has hecho, conecta tu proyecto a. GitHub
Para ello, puede hacer una de las acciones siguientes:
-
Puedes añadirlo GitHub como proveedor de fuentes en la consola. Para obtener más información, consulte Conéctese GitHub con un token de acceso (consola) .
-
Puede importar sus GitHub credenciales a través de la CodeBuild API. Para obtener más información, consulte Conéctese GitHub con un token de acceso (CLI) .
nota
Esto solo debe hacerse si no te has conectado GitHub a otro proyecto.
-
-
En las especificaciones de construcción de tu proyecto, puedes añadir
steps
, cada una de las cuales hace referencia a una acción. GitHub Esto se puede editar en la CodeBuild consola o en tu repositorio de código fuente. Cada fase de compilación admite una lista de comandos o una lista de pasos, pero no es posible utilizar ambas cosas en la misma fase. Para obtener más información, consulte Usa la sintaxis GitHub Actions en una especificación de compilación en AWS CodeBuild.
¿Qué GitHub acciones puedo usar en mi especificación de compilación?
Puedes usar cualquier acción disponible en GitHub Marketplace
¿Puedo usar otros proveedores de código fuente además de GitHub usar GitHub Actions en mi especificación de compilación?
Sí, pero GitHub sigue siendo necesario conectarse a para autenticarse y acceder a Actions. GitHub GitHub Para obtener más información, consulte GitHub y un token de acceso a GitHub Enterprise Server.
¿Por qué tengo que conectarme a GitHub un proveedor de código fuente para poder usar GitHub Actions en mi especificación de compilación?
Para usar GitHub Actions en tu especificación de compilación, la fuente debe descargarse en un proceso de compilación. Las descargas anónimas tendrán una velocidad limitada, por lo que conectarte a ellas GitHub te ayudará a garantizar un acceso uniforme.
¿Cuánto cuesta usar GitHub Actions en mi especificación de compilación?
Se admite el uso de GitHub acciones en tu especificación de compilación sin coste adicional.
¿Qué regiones admiten el uso de GitHub Actions en mi especificación de compilación?
El uso de GitHub acciones en tus especificaciones de compilación está permitido en todas las regiones. CodeBuild Para obtener más información sobre Regiones de AWS dónde CodeBuild está disponible, consulta AWS Servicios
Prácticas recomendadas para usar GitHub Actions en tus especificaciones de compilación
GitHub Las acciones son de código abierto, creadas y mantenidas por la comunidad. Seguimos el modelo de responsabilidad compartida
Directrices más específicas y mejores prácticas de seguridad para Actions: GitHub
Limitaciones del uso de GitHub acciones en tus especificaciones de compilación en CodeBuild
-
GitHub No se admiten las acciones de tu buildspec que dependan internamente del
github
contextoo que hagan referencia a recursos GitHub específicos, como las solicitudes de cambios y los problemas. CodeBuild Por ejemplo, las siguientes acciones no funcionarán en: CodeBuild -
GitHub Acciones que intentan añadir, cambiar o actualizar GitHub recursos, como las acciones que actualizan las solicitudes de incorporación de cambios o que crean problemas en ellos GitHub.
nota
La mayoría de GitHub las acciones oficiales que aparecen en https://github.com/actions se
basan en github
el contexto. En su lugar, usa las acciones disponibles en GitHub Marketplace. -
-
GitHub Las acciones de tu especificación de compilación que sean acciones de contenedor de Docker
funcionarán, pero tu proyecto de compilación debe tener habilitado el modo privilegiado y ser ejecutado por el usuario predeterminado de Docker (root). -
GitHub Las acciones de tu especificación de compilación no se admiten en CodeBuild proyectos configurados para ejecutarse en Windows.
-
GitHub No se admiten los trabajos de acción (grupos de pasos) ni las propiedades de los trabajos de GitHub acción en tu especificación de compilación.
-
GitHub Las acciones de tu buildspec no se admiten en CodeBuild proyectos configurados para ser activados por un webhook para un repositorio Git público. Para obtener más información, consulta. git-credential-helper
-
Las compilaciones de VPC sin acceso público a Internet no pueden ejecutar GitHub acciones en tu especificación de compilación.
-
Cada fase de compilación admite una lista de comandos o una lista de pasos, pero no es posible utilizar ambas cosas en la misma fase. Por ejemplo, en el siguiente ejemplo, los pasos se utilizan en la fase previa a la compilación para enumerar GitHub las acciones, mientras que los comandos se utilizan en la fase de creación para enumerar los comandos. CodeBuild
version: 0.2 phases: pre-build: steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: 'true' DEFAULT_BRANCH: main build: commands: - echo "Building..." - npm run build
GitHub Referencia de especificaciones de compilación de Action Runner
Este tema contiene la referencia de especificaciones de compilación para las propiedades de Action Runner. GitHub
pasos
Secuencia opcional. Los pasos se utilizan para ejecutar comandos y acciones en. CodeBuild Para obtener más información, consulte Usa la sintaxis GitHub Actions en una especificación de compilación en AWS CodeBuild.
nota
Cada fase de compilación admite una lista de commands
o una lista de steps
, pero no es posible utilizar ambas cosas en la misma fase.
Cada paso de compilación contiene las propiedades siguientes.
- id
-
Opcional. Identificador del paso que se puede usar para hacer referencia al paso en otros contextos
. - if
Opcional. Declaración condicional que se puede usar para impedir la ejecución de un paso a menos que se cumpla una condición. Esta declaración puede usar cualquier contexto
compatible, como hacer referencia a variables de CodeBuild entorno o expresiones . - name
-
Opcional. Nombre del paso. Si no se especifica el nombre, el nombre predeterminado es el texto especificado en el comando
run
. - uses
-
Acción que se ejecuta en el paso. Para algunas acciones es necesario configurar entradas utilizando
with
. Consulte el README de la acción para determinar qué entradas son necesarias. Para obtener más información, consulte ¿Qué GitHub acciones puedo usar en mi especificación de compilación?.Si
uses
está especificado en la fase de compilación, no se puede usar conrun
.nota
Se recomienda incluir la versión de la acción que se va a utilizar. Esto se puede hacer especificando una etiqueta Git ref, SHA o Docker. Para obtener más información, consulte la sintaxis de steps.uses
. - run
-
Comando que ejecuta programas de línea de comandos. Pueden ser comandos de una sola línea o de varias líneas. De forma predeterminada, estos comandos se ejecutan mediante intérpretes de comandos sin inicio de sesión. Para elegir un intérprete de comandos distinto, utilice
shell
.Si
run
está especificado en la fase de compilación, no se puede usar conuses
. - shell
-
Opcional. Intérprete de comandos especificado para esta secuencia. Para ver los parámetros de intérprete de comandos compatibles, consulte steps.shell
. Si no se especifica, el intérprete de comandos utilizado es bash. Si bash no está disponible, se usa sh. - with
-
Opcional. Mapa de los parámetros de entrada definidos por la acción. Cada parámetro es un par clave-valor.
- with.args
-
Opcional. Cadena que define las entradas de un contenedor de Docker.
- with.entrypoint
-
Opcional. Punto de entrada de Docker especificado para el Dockerfile.
- env
-
Opcional. Variables especificadas para los pasos que se van a utilizar en el entorno.
- continue-on-error
-
Opcional. Valor booleano que indica si se puede ignorar un error en la secuencia de pasos.
false
-
Valor predeterminado. Si se produce un error en esta secuencia de pasos, se considerará la compilación como fallida.
true
-
Si se produce un error en esta secuencia de pasos, todavía es posible finalizar la compilación satisfactoriamente.
- timeout-minutes
-
Opcional. Número máximo de minutos que puede durar el paso antes de finalizar. De forma predeterminada, no hay tiempo de espera. Si el tiempo de espera del paso supera el tiempo de espera de compilación, el paso se detendrá cuando se alcance el tiempo de espera de compilación.
El siguiente es un ejemplo del uso de la acción Super-Linter
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true USE_FIND_ALGORITHM: true FILTER_REGEX_INCLUDE: '/github/workspace/buildspec.yml'
GitHub Ejemplos de sintaxis de acciones con AWS CodeBuild
Puedes usar estos grupos de ejemplos para experimentar con GitHub las acciones incluidas en tus especificaciones de construcción. CodeBuild
Temas
Ejemplo de Super-Linter Action GitHub
En este ejemplo se muestra cómo añadir la GitHub acción Super-Linter
Puedes añadir la GitHub acción Super-Linter a tu CodeBuild proyecto actualizando la sección de fases del archivo buildspec.
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true
Los registros de Super-Linter tendrán un aspecto similar al siguiente:
/github/workspace/hello-world/app.js:3:13: Extra semicolon.
/github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed.
/github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found.
/github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4.
/github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
Ejemplo de grafo de compilación por lotes
En el siguiente ejemplo, se define un grafo de compilación que crea una cadena de dependencias y ejecuta comandos utilizando steps
. En este ejemplo, build1
se ejecuta primero porque no tiene dependencias. Puesto que build2
depende de build1
, build2
se ejecuta después de completar build1. Para obtener más información, consulte Grafo de compilación.
version: 0.2 batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 env: variables: BUILD_ID: build2 depend-on: - build1 phases: build: steps: - run: echo $BUILD_ID
Ejemplo de Amazon CodeGuru Reviewer
Amazon CodeGuru Reviewer encuentra problemas en el código de Java y Python y recomienda cómo solucionarlos. En el siguiente ejemplo, se utiliza CodeGuru Reviewer para proporcionar revisiones completas del código de análisis del repositorio. Estas revisiones de código analizan todo el código de una rama específica. Para obtener más información, consulte Crear revisiones de código con GitHub acciones en la Guía del usuario de Amazon CodeGuru Reviewer.
version: 0.2 phases: build: steps: - name: Amazon CodeGuru Reviewer Scanner if: ${{ always() }} uses: aws-actions/codeguru-reviewer@v1.1 with: s3_bucket: codeguru-reviewer-user artifacts: files: - codeguru-results.sarif.json
nota
El bucket de Amazon S3 debe comenzar por el prefijo codeguru-reviewer-
.
Los registros tendrán un aspecto similar al siguiente:
INFO CodeReview created with arn=arn:aws:codeguru-reviewer:region
:account-id
:association:id
:code-review:RepositoryAnalysis-job
for job=job
INFO SARIF persisted to /github/workspace/codeguru-results.sarif.json
INFO Amazon CodeGuru Reviewer job execution completed
Una vez finalizada la tarea de Amazon CodeGuru Reviewer, se genera un informe sarif como CodeBuild artefacto. Para obtener más información, consulte Análisis completo del repositorio en la Guía del usuario de Amazon CodeGuru Reviewer.
AWS Secrets Manager muestra
AWS Secrets Manager le ayuda a gestionar, recuperar y rotar las credenciales de las bases de datos, las credenciales de las aplicaciones, los tokens de OAuth, las claves de API y otros secretos a lo largo de sus ciclos de vida. El ejemplo siguiente define un secreto mediante Secrets Manager y ejecuta comandos mediante steps
. Para obtener más información, consulta ¿Qué es? AWS Secrets Manager en la Guía AWS Secrets Manager del usuario.
version: 0.2 env: secrets-manager: SECRET_VALUE: "arn:aws:secretsmanager:us-east-1:xxxx:secret:/secret-l3IJg9:my_super_secret_key" phases: build: steps: - run: echo $SECRET_VALUE
Los registros tendrán un aspecto similar al siguiente:
echo $SECRET_VALUE
env:
SECRET_VALUE: ***
***
Archivo de variables de entorno
El siguiente ejemplo define las variables de entorno en la secuencia env
. La variable S3_BUCKET
se define en la especificación de compilación y se le asigna <bucket-name>
como valor. Se hace referencia a esta variable en el condicional if como a una variable de entorno normal mediante el signo de dólar ($) para acceder al contexto ambiental de GitHub Action. Para obtener más información consulte Secuencia de env.
version: 0.2 env: variables: S3_BUCKET: "
<bucket-name>
" phases: build: steps: - if: ${{ env.S3_BUCKET == '<bucket-name>
' }} run: echo "S3 bucket is $S3_BUCKET"
Los registros tendrán un aspecto similar al siguiente:
echo "S3 bucket is $S3_BUCKET"
env:
S3_BUCKET: my-s3-bucket
S3 bucket is my-s3-bucket
Ejemplo de variable de entorno exportada
Las variables de entorno exportadas se utilizan junto con ellas CodePipeline para exportar variables de entorno desde la fase de creación actual a las etapas siguientes del proceso de creación. En el ejemplo siguiente, se define una variable de entorno exportada en la secuencia env
denominada MY_VARIABLE
y se escribe en el archivo de entorno GITHUB_ENV
.
version: 0.2 env: exported-variables: - MY_VARIABLE phases: build: steps: - run: echo "MY_VARIABLE=my-value" >> $GITHUB_ENV
Para obtener más información, consulta ExportedEnvironmentVariablela referencia de la AWS CodeBuild API.