Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa la sintassi GitHub delle azioni in un buildspec in AWS CodeBuild
È possibile utilizzare un action runner CodeBuild gestito per eseguire Actions all'interno di. GitHub CodeBuild Questo può essere fatto aggiungendolo steps
a qualsiasi fase del file buildspec.
CodeBuild buildspecs supporta un elenco di passaggi di GitHub azione sequenziali che vengono eseguiti in una fase separata dai comandi. CodeBuild Queste GitHub azioni si integrano con CodeBuild le funzionalità esistenti, che includono la memorizzazione nella cache delle dipendenze, le build in batch, l'accesso a e altro ancora. AWS Secrets Manager
Argomenti
- Come posso iniziare a usare un' GitHub azione nelle mie specifiche di build?
- Quali GitHub azioni posso usare nel mio buildspec?
- Posso utilizzare fornitori di sorgenti diversi da GitHub quando utilizzo GitHub Actions nelle mie specifiche di build?
- Perché devo connettermi GitHub come provider di origine per poter utilizzare GitHub Actions nelle mie specifiche di build?
- Quanto costa usare GitHub Actions nel mio buildspec?
- Quali regioni supportano l'utilizzo di GitHub Actions nel mio buildspec?
- Le migliori pratiche per l'utilizzo di GitHub Actions nelle specifiche di build
- Limitazioni all'uso delle GitHub azioni nelle specifiche di build in CodeBuild
- GitHub Riferimento buildspec di Action Runner
- GitHub Esempi di sintassi delle azioni con AWS CodeBuild
Come posso iniziare a usare un' GitHub azione nelle mie specifiche di build?
I passaggi di alto livello per utilizzare un' GitHub azione nella tua buildspec sono i seguenti:
-
Se non l'hai già fatto, collega il tuo progetto a. GitHub
A tale scopo, puoi effettuare una delle seguenti operazioni:
-
Puoi aggiungerlo GitHub come provider di origine nella console. Per ulteriori informazioni, consulta Connect GitHub con un token di accesso (console) .
-
Puoi importare GitHub le tue credenziali tramite l'CodeBuild API. Per ulteriori informazioni, consulta Connect GitHub con un token di accesso (CLI) .
Nota
Questa operazione deve essere eseguita solo se non ti sei connesso GitHub a un altro progetto.
-
-
Nelle specifiche di costruzione del tuo progetto, puoi aggiungere
steps
, ognuna delle quali fa riferimento a un'azione. GitHub Questo può essere modificato nella CodeBuild console o nel repository di origine. Ogni fase di compilazione supporta un elenco di comandi o un elenco di passaggi, ma entrambi non possono essere utilizzati nella stessa fase. Per ulteriori informazioni, consulta Usa la sintassi GitHub delle azioni in un buildspec in AWS CodeBuild.
Quali GitHub azioni posso usare nel mio buildspec?
Puoi utilizzare qualsiasi azione disponibile nel GitHub Marketplace
Posso utilizzare fornitori di sorgenti diversi da GitHub quando utilizzo GitHub Actions nelle mie specifiche di build?
Sì, ma la connessione a GitHub è comunque necessaria per autenticarsi e accedere ad GitHub Actions. GitHub Per ulteriori informazioni, consulta GitHub e token di accesso GitHub Enterprise Server.
Perché devo connettermi GitHub come provider di origine per poter utilizzare GitHub Actions nelle mie specifiche di build?
Per utilizzare GitHub Actions nel tuo buildspec, il codice sorgente deve essere scaricato su un computer di build. I download anonimi avranno una frequenza limitata, quindi la connessione a può contribuire a GitHub garantire un accesso coerente.
Quanto costa usare GitHub Actions nel mio buildspec?
L'utilizzo di GitHub Actions nella tua buildspec è supportato senza costi aggiuntivi.
Quali regioni supportano l'utilizzo di GitHub Actions nel mio buildspec?
L'utilizzo di GitHub Actions nelle tue specifiche di build è supportato in tutte le regioni. CodeBuild Per ulteriori informazioni su Regioni AWS dove CodeBuild è disponibile, consulta AWS Servizi
Le migliori pratiche per l'utilizzo di GitHub Actions nelle specifiche di build
GitHub Le azioni sono open source, create e gestite dalla community. Seguiamo il modello di responsabilità condivisa
Linee guida più specifiche e migliori pratiche di sicurezza per GitHub Actions:
Limitazioni all'uso delle GitHub azioni nelle specifiche di build in CodeBuild
-
GitHub Le azioni nella tua buildspec che si basano internamente sul
github
contestoo che fanno riferimento a risorse GitHub specifiche, come richieste pull e problemi, non sono supportate in. CodeBuild Ad esempio, le seguenti azioni non funzioneranno in: CodeBuild -
GitHub Azioni che tentano di aggiungere, modificare o aggiornare GitHub risorse, ad esempio azioni che aggiornano le richieste pull o creano problemi in GitHub.
Nota
La maggior parte GitHub delle azioni ufficiali elencate in https://github.com/actions
si basano sul github
contesto. Utilizza invece le azioni disponibili nel GitHub Marketplace. -
-
GitHub Le azioni nella tua buildspec che sono azioni del contenitore Docker
funzioneranno, ma il tuo progetto di compilazione deve avere la modalità privilegiata abilitata ed essere eseguito dall'utente Docker predefinito (root). -
Le azioni devono essere eseguite come utente root. Per ulteriori informazioni, consulta l'argomento USER
nel supporto di Dockerfile per GitHub Actions.
-
-
GitHub Le azioni nella tua buildspec non sono supportate nei CodeBuild progetti configurati per l'esecuzione su Windows.
-
GitHub I job Action (gruppi di passaggi) e le proprietà GitHub Action Job nelle tue buildspec non sono supportati.
-
GitHub Le azioni nel tuo buildspec non sono supportate nei CodeBuild progetti configurati per essere attivati da un webhook per un repository Git pubblico. Per ulteriori informazioni, consulta. git-credential-helper
-
Le build VPC senza accesso pubblico a Internet non possono eseguire GitHub azioni nelle specifiche della build.
-
Ogni fase di compilazione supporta un elenco di comandi o un elenco di passaggi, ma entrambi non possono essere utilizzati nella stessa fase. Ad esempio, nell'esempio seguente, i passaggi vengono utilizzati nella fase di precompilazione per elencare GitHub le azioni, mentre i comandi vengono utilizzati nella fase di compilazione per elencare CodeBuild i comandi.
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 Riferimento buildspec di Action Runner
Questo argomento contiene il riferimento buildspec per le proprietà di Action runner. GitHub
steps
Sequenza opzionale. I passaggi vengono utilizzati per eseguire comandi e azioni in. CodeBuild Per ulteriori informazioni, consulta Usa la sintassi GitHub delle azioni in un buildspec in AWS CodeBuild.
Nota
Ogni fase di compilazione supporta un elenco commands
o un elenco disteps
, ma entrambi non possono essere utilizzati nella stessa fase.
Ogni fase di compilazione contiene le seguenti proprietà.
- id
-
Facoltativo. L'identificatore del passo che può essere usato per fare riferimento al passo in altri contesti
. - if
Facoltativo. Un'istruzione condizionale che può essere utilizzata per impedire l'esecuzione di un passaggio a meno che non venga soddisfatta una condizione. Questa istruzione può utilizzare qualsiasi contesto
supportato, ad esempio fare riferimento a variabili ambientali da CodeBuild e a espressioni. - name
-
Facoltativo. Il nome del passo. Se il nome non è specificato, il nome predefinito sarà il testo specificato nel
run
comando. - usi
-
L'azione eseguita per il passaggio. Alcune azioni richiedono l'impostazione degli input utilizzando
with
. Fate riferimento al README dell'azione per determinare quali input sono necessari. Per ulteriori informazioni, consulta Quali GitHub azioni posso usare nel mio buildspec?.Se
uses
è specificato nella fase di compilazione, non può essere utilizzato con.run
Nota
Si consiglia di includere la versione dell'azione che si sta utilizzando. Questo può essere fatto specificando un tag Git ref, SHA o Docker. Per ulteriori informazioni, consulta la sintassi steps.uses.
- eseguire
-
Comando che esegue programmi da riga di comando. Possono essere comandi a riga singola o comandi su più righe. Per impostazione predefinita, questi comandi vengono eseguiti utilizzando shell diverse da quelle di accesso. Per scegliere una shell diversa, usa.
shell
Se
run
è specificato nella fase di compilazione, non può essere utilizzato conuses
. - guscio
-
Facoltativo. La shell specificata per questa sequenza. Per i parametri di shell supportati, vedere steps.shell
. Se non specificata, la shell usata è bash. Se bash non è disponibile, viene usata sh. - con
-
Facoltativo. Una mappa dei parametri di input definiti dall'azione. Ogni parametro è una coppia chiave/valore.
- con.args
-
Facoltativo. Una stringa che definisce gli input per un contenitore Docker.
- con.entrypoint
-
Facoltativo. Il punto di ingresso Docker specificato per il Dockerfile.
- env
-
Facoltativo. Le variabili specificate per i passaggi da utilizzare nell'ambiente.
- continue-on-error
-
Facoltativo. Un valore booleano che indica se un errore di questa sequenza di passaggi può essere ignorato.
false
-
Il valore predefinito. Se questa sequenza di passaggi fallisce, la compilazione avrà esito negativo.
true
-
Se questa sequenza di passaggi fallisce, la compilazione può comunque avere successo.
- timeout (minuti)
-
Facoltativo. Il numero massimo di minuti per cui il passaggio può essere eseguito prima del termine. Per impostazione predefinita, non è previsto alcun timeout. Se il timeout del passaggio supera il timeout di compilazione, il passaggio si interromperà quando viene raggiunto il timeout di compilazione.
Di seguito è riportato un esempio di utilizzo dell'azione 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 Esempi di sintassi delle azioni con AWS CodeBuild
Questi gruppi di esempi possono essere usati per sperimentare GitHub le azioni nel tuo buildspec in. CodeBuild
Argomenti
Esempio di Super-Linter Action GitHub
Questo esempio dimostra come aggiungere l'azione GitHub Super-Linter
Puoi aggiungere l' GitHub azione Super-Linter al tuo progetto aggiornando la sezione delle fasi del tuo CodeBuild file buildspec.
version: 0.2 phases: build: steps: - name: Lint Code Base uses: github/super-linter@v5 env: VALIDATE_ALL_CODEBASE: true
I log di Super-Linter avranno un aspetto simile ai seguenti:
/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.
Esempio di grafico di creazione in batch
L'esempio seguente definisce un grafico di compilazione che crea una catena di dipendenze ed esegue comandi utilizzandosteps
. In questo esempio, build1
viene eseguito per primo perché non ha dipendenze. Since dipende build2
dabuild1
, quindi build2
viene eseguito dopo il completamento della build 1. Per informazioni, consulta Crea un grafico.
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
Esempio CodeGuru di Amazon Reviewer
Amazon CodeGuru Reviewer rileva problemi nel codice Java e Python e consiglia come risolverli. L'esempio seguente utilizza CodeGuru Reviewer per fornire revisioni complete del codice di analisi del repository. Queste revisioni del codice scansionano tutto il codice in un ramo specificato. Per informazioni, consulta Create code review with GitHub Actions nella Amazon CodeGuru Reviewer User Guide.
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
Il bucket Amazon S3 deve iniziare con il prefisso. codeguru-reviewer-
I log avranno un aspetto simile ai seguenti:
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 volta completato il processo di Amazon CodeGuru Reviewer, viene generato un report sarif come CodeBuild artefatto. Per informazioni, consulta l'analisi completa del repository nella Amazon CodeGuru Reviewer User Guide.
AWS Secrets Manager esempio
AWS Secrets Manager ti aiuta a gestire, recuperare e ruotare le credenziali del database, le credenziali delle applicazioni, i token OAuth, le chiavi API e altri segreti durante il loro ciclo di vita. L'esempio seguente definisce un segreto utilizzando Secrets Manager ed esegue comandi utilizzandosteps
. Per informazioni, consulta What is AWS Secrets Manager? nella Guida AWS Secrets Manager per l'utente.
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
I registri avranno un aspetto simile ai seguenti:
echo $SECRET_VALUE
env:
SECRET_VALUE: ***
***
Esempio di variabile d'ambiente
L'esempio seguente definisce le variabili di ambiente nella env
sequenza. <bucket-name>Una variabile S3_BUCKET
è definita in buildspec e assegnata come valore. A questa variabile viene fatto riferimento nel condizionale if come una normale variabile di ambiente utilizzando il simbolo del dollaro ($) per accedere al contesto Action env. GitHub Per ulteriori informazioni, vedere sequenza. 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"
I log avranno un aspetto simile ai seguenti:
echo "S3 bucket is $S3_BUCKET"
env:
S3_BUCKET: my-s3-bucket
S3 bucket is my-s3-bucket
Esempio di variabile di ambiente esportata
Le variabili di ambiente esportate vengono utilizzate insieme a CodePipeline per esportare le variabili di ambiente dalla fase di compilazione corrente alle fasi successive della pipeline. L'esempio seguente definisce una variabile di ambiente esportata nella
env
sequenza denominata MY_VARIABLE e la scrive nel file di ambiente GITHUB_ENV
.
version: 0.2 env: exported-variables: - MY_VARIABLE phases: build: steps: - run: echo "MY_VARIABLE=my-value" >> $GITHUB_ENV
Per ulteriori informazioni, consulta l'API Reference. ExportedEnvironmentVariableAWS CodeBuild