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à.
Configura gli GitHub Actions runner ospitati autonomamente in AWS CodeBuild
Puoi configurare il tuo progetto per configurare gli GitHub Actions runner ospitati autonomamente in CodeBuild contenitori per elaborare i GitHub job del flusso di lavoro Actions. Questo può essere fatto configurando un webhook utilizzando il CodeBuild progetto e aggiornando il flusso di lavoro GitHub Actions YAML per utilizzare runner ospitati autonomamente ospitati su macchine. CodeBuild Per ulteriori informazioni, consulta Informazioni sui corridori ospitati autonomamente.
I passaggi di alto livello per configurare un CodeBuild progetto per l'esecuzione dei job GitHub Actions sono i seguenti:
-
Se non l'hai già fatto, crea un token di accesso personale o connettiti con un'app OAuth a cui connettere il tuo progetto. GitHub
-
Accedi alla CodeBuild console e crea un CodeBuild progetto con un webhook e configura i filtri webhook.
-
Aggiorna il tuo flusso di lavoro GitHub Actions in YAML GitHub per configurare il tuo ambiente di compilazione.
Per una procedura più dettagliata, consulta. Tutorial: configura un Actions runner ospitato CodeBuild autonomamente GitHub
Questa funzionalità consente ai job del flusso di lavoro GitHub Actions di ottenere l'integrazione nativa con AWS, il che offre sicurezza e praticità attraverso funzionalità come IAM AWS CloudTrail, AWS Secrets Manager integrazione e Amazon VPC. Puoi accedere ai tipi di istanze più recenti, incluse le istanze basate su ARM.
Argomenti
Tutorial: configura un Actions runner ospitato CodeBuild autonomamente GitHub
Questo tutorial mostra come configurare i CodeBuild progetti per eseguire i job GitHub Actions.
Prerequisiti
Per completare questo tutorial, è necessario innanzitutto:
-
Connect con un'app OAuth o crea un token di accesso personale. Se desideri connetterti con un'app OAuth, devi utilizzare la CodeBuild console per farlo. Se desideri creare un token di accesso personale, puoi utilizzare la CodeBuild console o utilizzare l'ImportSourceCredentials API. Per ulteriori istruzioni, consultaGitHub e token di accesso GitHub Enterprise Server.
-
Connect CodeBuild al tuo GitHub account. A tale scopo, puoi effettuare una delle seguenti operazioni:
-
Puoi aggiungerlo GitHub come provider di origine nella console. Puoi connetterti con un'app OAuth o con un token di accesso personale. Per istruzioni, consulta Connect GitHub con un token di accesso (console) .
-
Puoi importare GitHub le tue credenziali tramite l'API. ImportSourceCredentials Questo può essere fatto solo con un token di accesso personale. Se ti connetti utilizzando un'app OAuth, devi invece connetterti utilizzando la console. Per istruzioni, consulta Connect GitHub con un token di accesso (CLI) .
Nota
Questa operazione deve essere eseguita solo se non ti sei connesso al tuo GitHub account.
-
Fase 1: Creare un CodeBuild progetto con un webhook
In questo passaggio, creerai un CodeBuild progetto con un webhook e lo esaminerai nella GitHub console.
Per creare un CodeBuild progetto con un webhook
-
Apri la AWS CodeBuild console all'indirizzo https://console.aws.amazon.com/codesuite/codebuild/home
. -
Creare un progetto di compilazione. Per informazioni, consulta Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console).
-
In Source (Origine):
-
Per Provider di origine, scegli GitHub.
-
Per Repository, scegli Repository nel mio GitHub account.
-
Nel campo Repository URL (URL repository), inserire
https://github.com/
user-name
/repository-name
-
-
Negli eventi webhook di Primary Source:
-
Per Webhook: facoltativo, seleziona Ricostruisci ogni volta che viene inviata una modifica al codice in questo repository.
-
Per Tipo di evento, selezionate WORKFLOW_JOB_QUEUED. Una volta abilitato, le build verranno attivate solo dagli eventi Actions workflow jobs. GitHub
Nota
CodeBuild elaborerà gli eventi dei job del flusso di lavoro GitHub Actions solo se un webhook ha gruppi di filtri contenenti il filtro di eventi WORKFLOW_JOB_QUEUED.
-
-
In Environment (Ambiente):
-
Scegliete un'immagine Environment supportata e Compute. Tieni presente che hai la possibilità di sovrascrivere le impostazioni dell'immagine e dell'istanza utilizzando un'etichetta nel flusso di lavoro GitHub Actions (YAML). Per ulteriori informazioni, consulta Passaggio 2: aggiorna il flusso di lavoro di GitHub Actions (YAML)
-
-
In Buildspec:
-
Nota che il tuo Buildspec verrà ignorato. Invece, lo CodeBuild sovrascriverà per utilizzare i comandi che configureranno il runner ospitato autonomamente. La responsabilità principale di questo progetto è quella di configurare un runner ospitato autonomamente per eseguire i processi del flusso di lavoro CodeBuild di Actions. GitHub
-
-
-
Continua con i valori predefiniti, quindi scegli Crea progetto di compilazione.
-
Apri la GitHub console all'indirizzo
https://github.com/
per verificare che un webhook sia stato creato e che sia abilitato a fornire eventi Workflow jobs.user-name
/repository-name
/settings/hooks
Passaggio 2: aggiorna il flusso di lavoro di GitHub Actions (YAML)
In questo passaggio, aggiornerai il file YAML del flusso di lavoro GitHub Actions GitHub
Aggiorna il tuo flusso di lavoro GitHub Actions (YAML)
Vai GitHub
runs-on
-
Puoi specificare il nome del progetto e l'ID di esecuzione, nel qual caso la build utilizzerà la configurazione del progetto esistente per il calcolo, l'immagine, la versione dell'immagine e la dimensione dell'istanza. Il nome del progetto è necessario per collegare le impostazioni AWS relative del lavoro GitHub Actions a un progetto specifico CodeBuild . Includendo il nome del progetto in YAML, CodeBuild è consentito richiamare lavori con le impostazioni di progetto corrette. Fornendo l'ID di esecuzione, CodeBuild mapperà la build a specifiche esecuzioni del flusso di lavoro e interromperà la compilazione quando l'esecuzione del flusso di lavoro viene annullata. Per ulteriori informazioni, consulta
github
context. runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}Nota
Assicurati che
<project-name>corrisponda al nome del progetto che hai creato nel passaggio precedente. Se non corrisponde, non CodeBuild elaborerà il webhook e il flusso di lavoro GitHub Actions potrebbe bloccarsi.
Di seguito è riportato un esempio di flusso di lavoro GitHub Actions YAML:
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} steps: - run: echo "Hello World!"
-
Puoi anche sovrascrivere l'immagine e il tipo di calcolo nell'etichetta. Ciò sovrascriverà le impostazioni di ambiente del progetto. Per sovrascrivere le impostazioni dell'ambiente per una build di calcolo Amazon EC2, usa la seguente sintassi:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-<instance-size>
Per sovrascrivere le impostazioni dell'ambiente per una build di calcolo Lambda, usa la seguente sintassi:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>
-<runtime-version>
-<instance-size>
Di seguito è riportato un esempio di flusso di lavoro YAML di Actions GitHub :
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-small steps: - run: echo "Hello World!"
Nota
Se una dipendenza fornita da GitHub -hosted runners non è disponibile nell' CodeBuild ambiente, puoi installare la dipendenza utilizzando GitHub Actions nell'esecuzione del flusso di lavoro. Ad esempio, puoi usare l'setup-python
Immagini di calcolo supportate
Nell'etichetta, puoi sovrascrivere le impostazioni dell'ambiente Amazon EC2 utilizzando i valori nelle prime tre colonne. CodeBuild fornisce le seguenti immagini di calcolo di Amazon EC2:
Immagine | Versione dell'immagine | Dimensioni istanza | Piattaforma | Identificatore dell'immagine | Definizione |
---|---|---|---|---|---|
|
|
|
Amazon Linux 2 | aws/codebuild/amazonlinux2-x86_64-standard:4.0 |
al2/standard/4.0 |
|
|
Amazon Linux 2023 | aws/codebuild/amazonlinux2-x86_64-standard:5.0 |
al2/standard/5.0 |
|
|
|
|
Amazon Linux 2 | aws/codebuild/amazonlinux2-aarch64-standard:2.0 |
al2/aarch64/standard/2.0 |
|
|
Amazon Linux 2023 | aws/codebuild/amazonlinux2-aarch64-standard:3.0 |
al2/aarch64/standard/3.0 |
|
|
|
|
Ubuntu 20.04 | aws/codebuild/standard:5.0 |
ubuntu/standard/5.0 |
|
|
Ubuntu 22.04 | aws/codebuild/standard:6.0 |
ubuntu/standard/6.0 |
|
|
|
Ubuntu 22.04 | aws/codebuild/standard:7.0 |
ubuntu/standard/7.0 |
|
|
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-1.0 |
N/D |
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-2.0 |
N/D | |
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-3.0 |
N/D |
Inoltre, puoi sovrascrivere le impostazioni dell'ambiente Lambda utilizzando i seguenti valori. Per ulteriori informazioni sul calcolo CodeBuild Lambda, consulta Working with. Lavorare con il AWS Lambda calcolo in AWS CodeBuild CodeBuild supporta le seguenti immagini di calcolo Lambda:
Tipo di ambiente | Versione di runtime | Dimensioni istanza |
---|---|---|
|
|
|
|
Per ulteriori informazioni, consulta Modi e tipi di calcolo dell'ambiente di creazione e Immagini Docker fornite da CodeBuild.
Fase 3: rivedi i risultati
Ogni volta che viene eseguito un flusso di lavoro GitHub Actions, riceve CodeBuild gli eventi del processo del flusso di lavoro tramite il webhook. Per ogni job del workflow, CodeBuild avvia una build per eseguire un Actions runner temporaneo. GitHub Il runner è responsabile dell'esecuzione di un singolo processo di workflow. Una volta completato il processo, il runner e il processo di compilazione associato verranno immediatamente interrotti.
Per visualizzare i registri dei lavori del flusso di lavoro, accedi al tuo repository in GitHub, scegli Azioni, scegli il flusso di lavoro desiderato, quindi scegli il Job specifico per il quale desideri esaminare i log.
Puoi rivedere le etichette richieste nel registro mentre il lavoro è in attesa di essere ritirato da un runner che si occupa di hosting autonomo. CodeBuild
Una volta completato il lavoro, potrai visualizzarne il registro.
Informazioni su CodeBuild -hosted GitHub Actions runner
Quando devo includere l'immagine e le sostituzioni delle istanze nell'etichetta?
Puoi includere le sostituzioni di immagini e istanze nell'etichetta per specificare un ambiente di compilazione diverso per ciascuno dei processi del flusso di lavoro Actions. GitHub Questa operazione può essere eseguita senza la necessità di creare più CodeBuild progetti o webhook. Ad esempio, ciò è utile quando è necessario utilizzare una matrice per i lavori del flusso di lavoro
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.os }} strategy: matrix: os: [arm-3.0-small, al2-5.0-large] steps: - run: echo "Hello World!"
Nota
Le virgolette potrebbero essere necessarie se runs-on
sono presenti più etichette contenenti il contesto GitHub Actions.
Posso usare AWS CloudFormation per questa funzionalità?
Sì, puoi includere un gruppo di filtri nel tuo AWS CloudFormation modello che specifichi un filtro GitHub Actions workflow Job Event nel webhook del progetto.
Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED
Per ulteriori informazioni, consulta Filtra gli eventi GitHub webhook ()AWS CloudFormation.
Se hai bisogno di aiuto per configurare le credenziali del progetto nel tuo AWS CloudFormation modello, consulta AWS::CodeBuild::SourceCredentialla Guida per l'AWS CloudFormation utente per ulteriori informazioni.
Quali regioni supportano l'utilizzo di un GitHub Actions CodeBuild runner -hosted?
CodeBuildI runner -hosted GitHub Actions sono supportati in tutte le regioni. CodeBuild Per ulteriori informazioni su Regioni AWS dove CodeBuild è disponibile, consulta AWS Servizi per regione
Quali piattaforme supportano l'utilizzo di un GitHub Actions runner CodeBuild ospitato?
CodeBuild-hosted GitHub Actions runner sono supportati sia su Amazon AWS LambdaEC2 che su Compute. Puoi utilizzare le seguenti piattaforme: Amazon Linux 2, Amazon Linux 2023, Ubuntu e Windows Server Core 2019. Per ulteriori informazioni, consulta Immagini di calcolo EC2 e Immagini di calcolo Lambda.
Risoluzione dei problemi: come posso risolvere i problemi se il webhook non funziona?
Problema: il webhook non funziona o il processo del flusso di lavoro è in sospeso. GitHub
Possibile causa: il tuo evento webhook Workflow jobs potrebbe non riuscire ad attivare una build. Esamina i registri delle risposte per visualizzare la risposta o il messaggio di errore.
Soluzione consigliata: per eseguire il debug di questo errore, utilizzare le seguenti istruzioni.
-
Apri la GitHub console all'indirizzo
https://github.com/
per visualizzare le impostazioni del webhook del tuo repository. In questa pagina, vedrai un webhook creato per il tuo repository.user-name
/repository-name
/settings/hooks -
Scegli Modifica e conferma che il webhook è abilitato a fornire eventi di lavoro Workflow.
-
Vai alla scheda Consegne recenti, trova l'evento corrispondente
workflow_job.queued
ed espandi l'evento. -
Controlla il campo delle etichette nel Payload e assicurati che sia come previsto.
-
Infine, esamina la scheda Risposta, poiché contiene la risposta o il messaggio di errore restituito da CodeBuild.