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.
-
Carica i tuoi sorgenti su uno o più bucket S3,CodeCommit,GitHub,GitHubArchivi Enterprise Server o Bitbucket.
-
Scegli quale origine è quella principale. Questa è la fonte in cuiCodeBuildcerca ed esegue il file buildspec.
-
Creare un progetto di compilazione. Per ulteriori informazioni, consulta Creazione di un progetto di compilazione in AWS CodeBuild.
-
Segui le istruzioni in Esecuzione diretta di AWS CodeBuild per creare un progetto di compilazione, eseguire la compilazione e ottenere le relative informazioni.
-
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_
. Per ulteriori informazioni, consulta Variabili di ambiente degli ambienti di compilazione. sourceIdentifer
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 .