Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Tutorial: configura un GitHub Actions CodeBuild runner ospitato

Modalità Focus
Tutorial: configura un GitHub Actions CodeBuild runner ospitato - AWS CodeBuild

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à.

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à.

Questo tutorial mostra come configurare i CodeBuild progetti per eseguire i job GitHub Actions. Per ulteriori informazioni sull'utilizzo di GitHub Actions, CodeBuild vedereTutorial: configura un GitHub Actions CodeBuild runner ospitato.

Per completare questo tutorial, è necessario innanzitutto:

  • Connettiti con un token di accesso personale, un segreto, un'app o OAuth GitHub un'app di Secrets Manager. Se desideri connetterti con un'OAuthapp, devi utilizzare la CodeBuild console per farlo. Se desideri creare un token di accesso personale, puoi utilizzare la CodeBuild console o utilizzare il ImportSourceCredentials API. Per ulteriori istruzioni, consultaGitHub e l'accesso a GitHub Enterprise Server in CodeBuild.

  • Connect CodeBuild al tuo GitHub account. A tale scopo, puoi effettuare una delle seguenti operazioni:

    Nota

    Questa operazione deve essere eseguita solo se non ti sei connesso GitHub al tuo 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. Puoi anche scegliere GitHub Enterprise come fornitore di origine. Per ulteriori informazioni sulla creazione di un webhook all'interno di GitHub Enterprise, consultaGitHub webhook manuali.

Per creare un CodeBuild progetto con un webhook
  1. Apri la AWS CodeBuild console su https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Creare un progetto di compilazione. Per informazioni, consulta Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console).

    • In Source (Origine):

      • Per Source provider, scegli. GitHub

      • Per Repository, scegli Repository nel mio GitHub account.

      • Per Repository URL, inserisci. https://github.com/user-name/repository-name

      Nota

      Per impostazione predefinita, il progetto riceverà solo WORKFLOW_JOB_QUEUED eventi per un singolo repository. Se desideri ricevere eventi per tutti gli archivi all'interno di un'organizzazione o di un'azienda, consulta. GitHub webhook globali e organizzativi

    • 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, seleziona _ _. WORKFLOW JOB QUEUED Una volta abilitata, le build verranno attivate solo dagli eventi GitHubActions workflow jobs.

        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.

        Crea una configurazione in modo che venga attivata solo dagli eventi dei lavori del flusso di lavoro di GitHub Actions.
    • In Environment (Ambiente):

      • Scegli un'immagine Environment supportata e Calcola. 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 GitHub Actions YAML

    • In Buildspec:

      • Nota che il tuo buildspec verrà ignorato a meno che non buildspec-override:true venga aggiunto come etichetta. Invece, lo CodeBuild sovrascriverà per utilizzare i comandi che configureranno il runner self-hosted.

  3. Continua con i valori predefiniti, quindi scegli Crea progetto di compilazione.

  4. Apri la GitHub console all'indirizzo https://github.com/user-name/repository-name/settings/hooks per verificare che un webhook sia stato creato e che sia abilitato a fornire eventi Workflow jobs.

Passaggio 2: aggiorna il flusso di lavoro GitHub Actions YAML

In questo passaggio, aggiornerai il YAML file del flusso di lavoro GitHub Actions GitHubper configurare l'ambiente di compilazione e utilizzare i runner self-hosted di GitHub Actions in. CodeBuild Per ulteriori informazioni, consulta Uso delle etichette con corridori ospitati autonomamente e. Le sostituzioni delle etichette sono supportate con il runner Actions -hosted CodeBuild GitHub

Aggiorna il flusso di lavoro Actions GitHub YAML

Vai GitHube aggiorna l'runs-onimpostazione nel flusso di lavoro GitHub Actions YAML per configurare il tuo ambiente di compilazione. A tale scopo, puoi effettuare una delle seguenti operazioni:

  • 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 inYAML, 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 githubcontext.

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
    Nota

    Assicurati che il tuo <project-name> corrisponde al nome del progetto 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 YAML Actions:

    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. Immagini di calcolo supportate con il runner -hosted Actions CodeBuild GitHub Per un elenco delle immagini disponibili, consulta la sezione. Il tipo di calcolo e l'immagine nell'etichetta sovrascriveranno le impostazioni di ambiente del progetto. Per sovrascrivere le impostazioni dell'ambiente per una build di calcolo CodeBuild EC2 o Lambda, usa la seguente sintassi:

    runs-on: - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }} - image:<environment-type>-<image-identifier> - instance-size:<instance-size>

    Di seguito è riportato un esempio di flusso di lavoro Actions: GitHub YAML

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:arm-3.0 - instance-size:small steps: - run: echo "Hello World!"
  • Puoi sovrascrivere la flotta utilizzata per la tua build nell'etichetta. Ciò sovrascriverà le impostazioni del parco veicoli configurate nel progetto per utilizzare il parco veicoli specificato. Per ulteriori informazioni, consulta Run si basa su flotte a capacità riservata. Per sovrascrivere le impostazioni del tuo parco macchine per una build di EC2 calcolo Amazon, usa la seguente sintassi:

    runs-on: - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }} - fleet:<fleet-name>

    Per sovrascrivere sia la flotta che l'immagine utilizzate per la build, usa la seguente sintassi:

    runs-on: - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }} - fleet:<fleet-name> - image:<environment-type>-<image-identifier>

    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 }} - image:arm-3.0 - instance-size:small steps: - run: echo "Hello World!"
  • Per eseguire i lavori GitHub Actions su un'immagine personalizzata, puoi configurare un'immagine personalizzata nel tuo CodeBuild progetto ed evitare di fornire un'etichetta di sostituzione dell'immagine. CodeBuild utilizzerà l'immagine configurata nel progetto se non viene fornita alcuna etichetta di sostituzione dell'immagine.

  • Facoltativamente, puoi fornire etichette diverse da quelle supportate CodeBuild . Queste etichette verranno ignorate allo scopo di sovrascrivere gli attributi della build, ma non falliranno la richiesta del webhook. Ad esempio, l'aggiunta testLabel come etichetta non impedirà l'esecuzione della build.

Nota

Se una dipendenza fornita da GitHub -hosted runners non è disponibile nell' CodeBuildambiente, puoi installare la dipendenza utilizzando GitHub Actions nell'esecuzione del flusso di lavoro. Ad esempio, puoi usare l'setup-pythonazione per installare Python per il tuo ambiente di compilazione.

Esegui i comandi buildspec nelle fasiINSTALL, PRE _ e _ BUILD POST BUILD

Per impostazione predefinita, CodeBuild ignora qualsiasi comando buildspec durante l'esecuzione di una build Actions ospitata autonomamente. GitHub Per eseguire i comandi buildspec durante la compilazione, è buildspec-override:true possibile aggiungere come suffisso all'etichetta:

runs-on: - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }} - buildspec-override:true

Utilizzando questo comando, CodeBuild creerà una cartella chiamata actions-runner nella cartella di origine principale del contenitore. Quando il runner GitHub Actions si avvia durante la BUILD fase, il runner verrà eseguito nella actions-runner directory.

Esistono diverse limitazioni quando si utilizza un override buildspec in una build di Actions ospitata autonomamente: GitHub

  • CodeBuild non eseguirà i comandi buildspec durante la BUILD fase, poiché il runner ospitato autonomamente viene eseguito durante la fase. BUILD

  • CodeBuild non scaricherà alcuna fonte primaria o secondaria durante la fase. DOWNLOAD_SOURCE Se hai configurato un file buildspec, solo quel file verrà scaricato dalla fonte principale del progetto.

  • Se un comando build fallisce nella INSTALL fase PRE_BUILD or, non CodeBuild avvierà il runner self-hosted e il processo di workflow GitHub Actions dovrà essere annullato manualmente.

  • CodeBuild recupera il token runner durante la DOWNLOAD_SOURCE fase, che ha una scadenza di un'ora. Se le tue INSTALL fasi PRE_BUILD o superano un'ora, il runner token potrebbe scadere prima dell'inizio del runner ospitato autonomamente. GitHub

Passaggio 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 flusso di lavoro, 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

Caricamento del registro del lavoro.

Una volta completato il lavoro, potrai visualizzarne il registro.

Il registro del lavoro.

Filter GitHub Actions webhook events ()AWS CloudFormation

La parte YAML formattata di seguito di un AWS CloudFormation modello crea un gruppo di filtri che attiva una build quando restituisce true. Il seguente gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions con un nome di flusso di lavoro corrispondente all'espressione regolare. \[CI-CodeBuild\]

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITHUB Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION Triggers: Webhook: true ScopeConfiguration: Name: organization-name FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]

Filter GitHub Actions webhook events ()AWS CDK

Il AWS CDK modello seguente crea un gruppo di filtri che attiva una build quando restituisce true. Il seguente gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions.

import { aws_codebuild as codebuild } from 'aws-cdk-lib'; import {EventAction, FilterGroup} from "aws-cdk-lib/aws-codebuild"; const source = codebuild.Source.gitHub({ owner: 'owner', repo: 'repo', webhook: true, webhookFilters: [FilterGroup.inEventOf(EventAction.WORKFLOW_JOB_QUEUED)], })

Eventi webhook di Filter GitHub Actions (Terraform)

Il seguente modello Terraform crea un gruppo di filtri che attiva una build quando restituisce true. Il seguente gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions.

resource "aws_codebuild_webhook" "example" { project_name = aws_codebuild_project.example.name build_type = "BUILD" filter_group { filter { type = "EVENT" pattern = "WORKFLOW_JOB_QUEUED" } } }
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.