View a markdown version of this page

Le sostituzioni delle etichette sono supportate con Actions runner CodeBuild-hosted GitHub - 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 sostituzioni delle etichette sono supportate con Actions runner CodeBuild-hosted GitHub

Nel tuo flusso di lavoro GitHub Actions (YAML), puoi fornire una serie di sostituzioni di etichette che modificano la build del tuo runner ospitato autonomamente. Tutte le build non riconosciute da CodeBuild verranno ignorate ma non falliranno la richiesta del webhook. Il seguente flusso di lavoro YAML definisce due processi: job1 utilizza le sostituzioni per immagine, dimensione dell'istanza, flotta e buildspec e utilizza solo un'override dell'immagine. job2 Assegna a ogni lavoro un'etichetta unica (job1ejob2) in modo da indirizzare ogni lavoro al runner creato GitHub per esso:

name: Hello World on: [push] jobs: job1: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:arm-3.0 - instance-size:small - fleet:myFleet - buildspec-override:true - job1 steps: - run: echo "Hello from Job 1!" job2: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:linux-5.0 - job2 steps: - run: echo "Hello from Job 2!"

Puoi anche utilizzare una strategia a matrice per eseguire un singolo processo su più configurazioni. Le espansioni di un singolo lavoro a matrice hanno sempre lo stesso numero di etichette, quindi il problema del runner matching non le influenza. Tuttavia, se l'esecuzione di un workflow contiene più di un processo a matrice, assegnate a ciascun lavoro a matrice la propria etichetta personalizzata univoca (ad esempio, matrix-job-1 ematrix-job-2) in modo che GitHub non corrisponda a un job a un runner creato per un lavoro a matrice diverso:

name: Hello World on: [push] jobs: Hello-World-Job: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:${{ matrix.os }} - instance-size:${{ matrix.size }} - fleet:myFleet - buildspec-override:true - matrix-job-1 strategy: matrix: include: - os: arm-3.0 size: small - os: linux-5.0 size: large steps: - run: echo "Hello World!"
Nota

Se il processo del flusso di lavoro è in sospeso GitHub, consulta Risolvi i problemi relativi al webhook Utilizzo di etichette personalizzate per indirizzare i lavori.

codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}(obbligatorio)

  • Ad esempio: codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}

  • Obbligatorio per tutti i flussi di lavoro di GitHub Actions YAMLS. <project name>deve essere uguale al nome del progetto per il quale è configurato il webhook runner self-hosted.

image:<environment-type>-<image-identifier>

instance-size:<instance-size>

fleet:<fleet-name>

  • Ad esempio: fleet:myFleet

  • Sostituisce 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.

buildspec-override:<boolean>

  • Ad esempio: buildspec-override:true

  • Consente alla build di eseguire i comandi buildspec nelle fasi, e INSTALL PRE_BUILDPOST_BUILD, se impostata su. true

<unique-label>(consigliato quando un flusso di lavoro eseguito ha più processi)

  • Ad esempio: job1

  • Un'etichetta personalizzata definita dall'utente e utilizzata da nessun altro processo nella stessa esecuzione del flusso di lavoro. L'assegnazione di un'etichetta univoca a ciascun lavoro garantisce che GitHub ogni lavoro venga indirizzato solo al corridore che è stato creato per esso. In caso contrario, quando i lavori dello stesso flusso di lavoro eseguito hanno un numero diverso di sostituzioni di etichette, un lavoro con meno etichette può essere scelto da un runner creato per un lavoro con più etichette, lasciando il secondo lavoro senza un runner. Per ulteriori informazioni, consulta Risolvi i problemi relativi al webhook.

Sostituzione di una singola etichetta

CodeBuild consente di fornire più sostituzioni in una singola etichetta utilizzando quanto segue:

Nota

Poiché tutte le sostituzioni sono combinate in un'unica etichetta, il runner di ogni job si registra con una sola etichetta. Ciò significa che il problema di abbinamento tra più job runner descritto in Risolvi i problemi relativi al webhook non può verificarsi con questo formato, anche senza un'etichetta univoca su ogni lavoro. Usa il formato a etichetta singola se preferisci questo comportamento e i tuoi lavori necessitano solo delle sostituzioni supportate. Non utilizzatelo quando avete bisogno di un override che non supporta. Ad esempio, le immagini personalizzate (incluse le immagini in un registro privato) possono essere specificate solo utilizzando il formato dell'image:custom-<environment-type>-<custom-image-identifier>etichetta. Per queste sostituzioni, utilizzate il formato di etichetta separata descritto in precedenza in questo argomento.

  • Per sovrascrivere le impostazioni dell'ambiente per una build di EC2/Lambda calcolo Amazon, usa la seguente sintassi:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  • Per sovrascrivere le impostazioni del tuo parco macchine per la build di calcolo di Amazon EC2, utilizza 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 }}-image-<image-version>-fleet-<fleet-name>
  • Per eseguire i comandi buildspec durante la compilazione, -with-buildspec possono essere aggiunti come suffisso all'etichetta:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  • Facoltativamente, puoi fornire un override della dimensione dell'istanza senza sovrascrivere l'immagine. Per le build di Amazon EC2, puoi escludere sia il tipo di ambiente che l'identificatore dell'immagine. Per le build Lambda, puoi escludere l'identificatore dell'immagine.