Várias fontes de entrada e exemplos de artefatos de saída - AWS CodeBuild

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Várias fontes de entrada e exemplos de artefatos de saída

Você pode criar um projeto de AWS CodeBuild construção com mais de uma fonte de entrada e mais de um conjunto de artefatos de saída. Este exemplo mostra como configurar um projeto de compilação que:

  • Usa várias origens e repositórios de diferentes tipos.

  • Publica artefatos de compilação em vários buckets do S3 em uma única compilação.

Neste exemplo, você cria um projeto de compilação e o utiliza para executar uma compilação. O exemplo usa o arquivo buildspec do projeto de compilação para mostrar como incorporar mais de uma origem e criar mais de um conjunto de artefatos.

  1. Faça upload de suas fontes para um ou mais repositórios S3, CodeCommit, GitHub, GitHub Enterprise Server ou Bitbucket.

  2. Escolha qual será a origem principal. Essa é a fonte na qual CodeBuild procura e executa seu arquivo buildspec.

  3. Crie um projeto de compilação. Para ter mais informações, consulte Criar um projeto de compilação no AWS CodeBuild.

  4. Crie seu projeto de compilação, execute a compilação e obtenha informações sobre a compilação.

  5. Se você usar o AWS CLI para criar o projeto de construção, a entrada formatada em JSON para o create-project comando poderá ser semelhante à seguinte:

    { "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" }

Sua origem principal é definida abaixo do atributo source. Todas as outras origens são chamadas de secundárias e aparecem abaixo de secondarySources. Todas as origens secundárias são instaladas em seu próprio diretório. Esse diretório é armazenado na variável de ambiente interna CODEBUILD_SRC_DIR_sourceIdentifer. Para ter mais informações, consulte Variáveis de ambiente em ambientes de compilação.

O atributo secondaryArtifacts contém uma lista de definições de artefato. Esses artefatos usam o bloco secondary-artifacts do arquivo buildspec que fica aninhado dentro do bloco artifacts.

Os artefatos secundários no arquivo buildspec têm a mesma estrutura que os artefatos e são separados pelo seu respectivo identificador de artefato.

nota

Na CodeBuild API, o artifactIdentifier em um artefato secundário é um atributo obrigatório em CreateProject e. UpdateProject Ele deve ser usado para fazer referência a um artefato secundário.

Com a entrada em formato JSON anterior, o arquivo buildspec do projeto deve ter esta aparência:

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

Você pode substituir a versão da origem principal usando a API com o atributo sourceVersion em StartBuild. Para substituir uma ou mais versões de origem secundária, use o atributo secondarySourceVersionOverride.

A entrada formatada em JSON para o start-build comando no pode ser semelhante a AWS CLI :

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

Projeto sem exemplo de origem

Você pode configurar um CodeBuild projeto escolhendo o tipo de NO_SOURCE fonte ao configurar sua fonte. Quando o tipo de origem for NO_SOURCE, você não poderá especificar um arquivo buildspec porque o projeto não terá uma origem. Em vez disso, você deverá especificar uma string buildspec formatada em YAML no atributo buildspec da entrada formatada em JSON para o comando create-project da CLI. A aparência poderá ser semelhante a esta:

{ "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" }

Para ter mais informações, consulte Criar um projeto de compilação (AWS CLI).

Para saber como criar um pipeline que usa várias entradas de origem CodeBuild para criar vários artefatos de saída, consulte. AWS CodePipeline integração com CodeBuild várias fontes de entrada e amostra de artefatos de saída