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

Puoi creare un progetto di AWS CodeBuild compilazione con più di una fonte 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 le tue fonti in uno o più bucket S3, CodeCommit GitHub, GitHub Enterprise Server o repository Bitbucket.

  2. Scegli quale origine è quella principale. Questa è la fonte in cui CodeBuild cerca 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. Crea il tuo progetto di build, esegui la build e ottieni informazioni sulla build.

  5. Se usi il AWS CLI per creare il progetto di compilazione, l'input in formato JSON del create-project comando potrebbe essere simile al seguente:

    { "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": [ss { "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'CodeBuild API, artifactIdentifier su un artefatto secondario è un attributo obbligatorio in and. CreateProject 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 per il start-build comando in potrebbe essere simile a: AWS CLI

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

Progetto senza un esempio di origine

Puoi configurare un CodeBuild progetto scegliendo il tipo di sorgente quando configuri la tua NO_SOURCE fonte. 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 informazioni su come creare una pipeline che utilizza più input di origine per creare più CodeBuild artefatti di output, consulta. AWS CodePipeline integrazione con diverse fonti di input CodeBuild e esempio di artefatti di output