View a markdown version of this page

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

Nel tuo workflow YAML di GitHub Actions, puoi fornire una serie di sostituzioni delle etichette che modificano la tua build di runner ospitata autonomamente. Qualsiasi build non riconosciuta da CodeBuild verrà ignorata ma non darà esito negativo alla tua richiesta di webhook. Il seguente flusso di lavoro YAML definisce due lavori: job1 utilizza gli override per image, instance size, fleet e buildspec e utilizza solo un override dell'immagine. job2 Assegna a ogni lavoro un'etichetta (job1ejob2) univoca in modo da indirizzare ogni lavoro al corridore 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 lavoro su più configurazioni. Le espansioni di un singolo job a matrice hanno sempre lo stesso numero di etichette, quindi il problema di abbinamento del runner non le riguarda. Tuttavia, se un'esecuzione di flusso di lavoro contiene più di un job a matrice, assegna a ciascun job 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 matrice creato per un altro job a matrice:

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 è sospeso GitHub, consulta Risolvi i problemi relativi al webhook la sezione 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 gli GitHub YAML del flusso di lavoro Actions. <project name>deve essere uguale al nome del progetto per il quale è configurato il webhook self-hosted runner.

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 fasiINSTALL,PRE_BUILD, e POST_BUILD se impostato su. true

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

  • Ad esempio: job1

  • Un'etichetta personalizzata definita dall'utente e utilizzata da nessun altro lavoro nello stesso flusso di lavoro eseguito. L'assegnazione di un'etichetta univoca a ciascun lavoro GitHub garantisce che ogni lavoro venga indirizzato solo al corridore creato per esso. In caso contrario, quando i lavori eseguiti nello stesso flusso di lavoro presentano un numero diverso di sostituzioni di etichette, un lavoro con meno etichette può essere prelevato da un utente 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 responsabile di ogni lavoro si registra con esattamente un'etichetta. Ciò significa che il problema di abbinamento di più job runner descritto in questo formato Risolvi i problemi relativi al webhook non può verificarsi, anche senza un'etichetta univoca su ogni lavoro. Usa il formato a etichetta singola se preferisci questo comportamento e i tuoi lavori richiedono solo le 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 Amazon EC2/Lambda Compute, utilizza 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 Amazon EC2 compute build, 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 compilazione, utilizza 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 possibile aggiungerli 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 Amazon EC2, puoi escludere sia il tipo di ambiente che l'identificatore di immagine. Per le build Lambda, puoi escludere l'identificatore dell'immagine.