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-(obbligatorio)<project-name>-${{github.run_id}}-${{github.run_attempt}}
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>
Ad esempio:
image:arm-3.0-
Sostituisce l'immagine e il tipo di ambiente utilizzati quando si avvia la build self-hosted runner con un'immagine curata. Per maggiori informazioni sui valori supportati, consulta. Immagini di calcolo supportate con Actions runner CodeBuild-hosted GitHub
Per sovrascrivere l'immagine e il tipo di ambiente utilizzati con un'immagine personalizzata, usa
image:custom-<environment-type>-<custom-image-identifier>Ad esempio:
image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0Nota
Se l'immagine personalizzata si trova in un registro privato, vedi. Configura una credenziale di registro privata per i corridori ospitati autonomamente
instance-size:<instance-size>
Ad esempio:
instance-size:medium-
Sostituisce il tipo di istanza utilizzato all'avvio della build self-hosted runner. Per maggiori informazioni sui valori supportati, consulta. Immagini di calcolo supportate con Actions runner CodeBuild-hosted GitHub
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
INSTALLPRE_BUILDPOST_BUILD, se impostata su.true
(consigliato quando un flusso di lavoro eseguito ha più processi)<unique-label>
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-etichetta. Per queste sostituzioni, utilizzate il formato di etichetta separata descritto in precedenza in questo argomento.<environment-type>-<custom-image-identifier>
-
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-buildspecpossono 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.