Diverse origini di input ed esempi di artefatti di output - 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à.

Diverse origini di input ed esempi di artefatti di output

È possibile creare un progetto di compilazione AWS CodeBuild che utilizza diverse origini di input e più di un set di artefatti di output. Questo esempio illustra come configurare un progetto di compilazione che:

  • Utilizza più origini e repository di tipi diversi.

  • Pubblica artefatti di compilazione in più bucket S3 in un'unica compilazione.

In questo esempio è possibile creare un progetto di compilazione e usarlo per eseguire una compilazione. L'esempio utilizza il file buildspec del progetto di compilazione per dimostrare come integrare diverse origini e creare più di un set di artefatti.

  1. Carica i tuoi sorgenti su uno o più bucket S3,CodeCommit,GitHub,GitHubArchivi Enterprise Server o Bitbucket.

  2. Scegli quale origine è quella principale. Questa è la fonte in cuiCodeBuildcerca ed esegue il file buildspec.

  3. Creare un progetto di compilazione. Per ulteriori informazioni, consulta Creazione di un progetto di compilazione in AWS CodeBuild.

  4. Segui le istruzioni in Esecuzione diretta di AWS CodeBuild per creare un progetto di compilazione, eseguire la compilazione e ottenere le relative informazioni.

  5. Se si utilizza l'interfaccia AWS CLI per creare il progetto di compilazione, l'input in formato JSON al comando create-project potrebbe risultare simile a questo:

    { "name": "sample-project", "source": { "type": "S3", "location": "<bucket/sample.zip>" }, "secondarySources": [ { "type": "CODECOMMIT", "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo", "sourceIdentifier": "source1" }, { "type": "GITHUB", "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin", "sourceIdentifier": "source2" } ], "secondaryArtifacts": [ { "type": "S3", "location": "<output-bucket>", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "<other-output-bucket>", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }

L'origine primaria viene definita dall'attributo source. Tutte le altre origini sono chiamate origini secondarie e appaiono sotto secondarySources. Tutte le origini secondarie sono installate nella propria directory. Tale directory è archiviata nella variabile di ambiente integrata CODEBUILD_SRC_DIR_sourceIdentifer. Per ulteriori informazioni, consulta Variabili di ambiente degli ambienti di compilazione.

L'attributo secondaryArtifacts contiene un elenco di definizioni di artefatti. Tali artefatti utilizzano il blocco secondary-artifacts del file buildspec presente all'interno del blocco artifacts.

Gli artefatti secondari nel file buildspec hanno la stessa struttura degli artefatti e sono separati dall'identificatore degli artefatti.

Nota

Nell'API CodeBuild, artifactIdentifier nell'artefatto secondario è un attributo richiesto in CreateProject e UpdateProject. Deve essere utilizzato per fare riferimento a un secondo artefatto.

Se si utilizza l'input precedente in formato JSON, il file buildspec del progetto potrebbe risultare simile a questo:

version: 0.2 phases: install: runtime-versions: java: openjdk11 build: commands: - cd $CODEBUILD_SRC_DIR_source1 - touch file1 - cd $CODEBUILD_SRC_DIR_source2 - touch file2 artifacts: files: - '**.*' secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR_source1 files: - file1 artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - file2

Puoi sovrascrivere la versione dell'origine primaria utilizzando l'API con l'attributo sourceVersion in StartBuild. Per sovrascrivere una o più versioni sorgente secondarie, utilizzare l'attributo secondarySourceVersionOverride.

L'input in formato JSON al comando start-build in AWS CLI potrebbe risultare simile a questo:

{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ] }

Progetto senza un esempio di origine

Puoi configurare un progetto CodeBuild scegliendo il tipo di origine NO_SOURCE al momento della configurazione dell'origine stessa. Quando il tipo di origine è NO_SOURCE, non puoi specificare un file buildspec perché il progetto non possiede un'origine. Al contrario, devi specificare una stringa buildspec in formato YAML nell'attributo buildspec dell'input in formato JSON nel comando dell'interfaccia a riga di comando create-project. Potrebbe essere simile a quanto segue:

{ "name": "project-name", "source": { "type": "NO_SOURCE", "buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - command" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL", }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }

Per ulteriori informazioni, consulta Creazione di un progetto di compilazione (AWS CLI).

Per imparare a creare una pipeline che utilizza più input di origini per CodeBuild e diversi artefatti di output, consulta Integrazione di AWS CodePipeline con CodeBuild e diverse origini di input ed esempi di artefatti di output .