View a markdown version of this page

Labelüberschreibungen werden vom Actions-Runner unterstützt CodeBuild-hosted GitHub - AWS CodeBuild

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Labelüberschreibungen werden vom Actions-Runner unterstützt CodeBuild-hosted GitHub

In Ihrem GitHub Aktions-Workflow-YAML können Sie eine Vielzahl von Label-Overrides bereitstellen, die Ihren selbst gehosteten Runner-Build modifizieren. Alle Builds, die von CodeBuild Ihnen nicht erkannt werden, werden ignoriert, Ihre Webhook-Anfrage wird jedoch nicht fehlschlagen. Der folgende Workflow-YAML definiert zwei Jobs: job1 verwendet Overrides für Image, Instance-Größe, Flotte und Buildspec und verwendet nur eine Image-Override. job2 Geben Sie jedem Job eine eindeutige Bezeichnung (job1undjob2), sodass jeder Job an den GitHub dafür erstellten Runner weitergeleitet wird:

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!"

Sie können auch eine Matrixstrategie verwenden, um einen einzelnen Job über mehrere Konfigurationen hinweg auszuführen. Die Erweiterungen eines einzelnen Matrix-Jobs haben immer die gleiche Anzahl von Labels, sodass das Problem mit dem Runner-Matching sie nicht betrifft. Wenn ein Workflow-Lauf jedoch mehr als einen Matrix-Job enthält, weisen Sie jedem Matrix-Job eine eigene benutzerdefinierte Bezeichnung zu (z. B. matrix-job-1 undmatrix-job-2), sodass ein Job GitHub nicht einem Runner zugeordnet wird, der für einen anderen Matrix-Job erstellt wurde:

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!"
Anmerkung

Wenn Ihr Workflow-Job nicht funktioniert GitHub, finden Sie weitere Informationen unter Beheben Sie Probleme mit dem Webhook und Verwenden benutzerdefinierter Bezeichnungen zum Weiterleiten von Aufträgen.

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

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

  • Erforderlich für alle YAMLs des GitHub Aktions-Workflows. <project name>sollte dem Namen des Projekts entsprechen, für das der selbst gehostete Runner-Webhook konfiguriert ist.

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

instance-size:<instance-size>

fleet:<fleet-name>

buildspec-override:<boolean>

  • Beispiel: buildspec-override:true

  • Ermöglicht dem Build, Buildspec-Befehle in den POST_BUILD Phasen, und auszuführen INSTALLPRE_BUILD, wenn diese Option auf gesetzt ist. true

<unique-label>(empfohlen, wenn ein Workflow-Lauf mehrere Jobs umfasst)

  • Beispiel: job1

  • Eine benutzerdefinierte Bezeichnung, die Sie definieren und die kein anderer Job in derselben Workflow-Ausführung verwendet. Wenn Sie jedem Job ein eindeutiges Label zuweisen, wird sichergestellt, GitHub dass jeder Job nur an den Runner weitergeleitet wird, der für ihn erstellt wurde. Andernfalls kann ein Job mit weniger Labels von einem Runner übernommen werden, der für einen Job mit mehr Labels erstellt wurde, wenn Jobs in derselben Workflow-Ausführung eine unterschiedliche Anzahl von Labelüberschreibungen aufweisen, sodass der zweite Job keinen Läufer mehr hat. Weitere Informationen finden Sie unter Beheben Sie Probleme mit dem Webhook.

Überschreibung eines einzelnen Labels

CodeBuild ermöglicht es Ihnen, mehrere Überschreibungen in einem einzelnen Label bereitzustellen, indem Sie Folgendes verwenden:

Anmerkung

Da alle Überschreibungen in einem einzigen Label zusammengefasst werden, registriert sich der Runner jedes Jobs mit genau einem Label. Dies bedeutet, dass das unter beschriebene Problem beim Abgleich mehrerer Job-Runner bei diesem Format Beheben Sie Probleme mit dem Webhook nicht auftreten kann, auch wenn für jeden Job kein eindeutiges Label vorhanden ist. Verwenden Sie das Single-Label-Format, wenn Sie dieses Verhalten bevorzugen und Ihre Jobs nur Überschreibungen benötigen, die es unterstützt. Verwenden Sie es nicht, wenn Sie eine Überschreibung benötigen, die es nicht unterstützt. Beispielsweise können benutzerdefinierte Bilder (einschließlich Bilder in einer privaten Registrierung) nur mithilfe des image:custom-<environment-type>-<custom-image-identifier> Labelformats angegeben werden. Verwenden Sie für diese Überschreibungen das weiter oben in diesem Thema beschriebene separate Labelformat.

  • Verwenden Sie die folgende Syntax, um Ihre Umgebungseinstellungen für einen EC2/Lambda Amazon-Compute-Build zu überschreiben:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  • Verwenden Sie die folgende Syntax, um Ihre Flotteneinstellungen für den Amazon EC2-Compute-Build zu überschreiben:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  • Verwenden Sie die folgende Syntax, um sowohl die Flotte als auch das für den Build verwendete Image zu überschreiben:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  • Um Buildspec-Befehle während des Builds auszuführen, -with-buildspec können sie dem Label als Suffix hinzugefügt werden:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  • Optional können Sie eine Überschreibung der Instanzgröße angeben, ohne das Image zu überschreiben. Für Amazon EC2-Builds können Sie sowohl den Umgebungstyp als auch die Image-ID ausschließen. Bei Lambda-Builds können Sie die Image-ID ausschließen.