Как запустить мой конвейерный код jenkins в AWS CodeBuild? - PullRequest
0 голосов
/ 25 апреля 2018

Я могу запустить свой конвейер AWS от jenkins, но я не хочу создавать buildspec.yaml и вместо этого использовать скрипт конвейера, который уже работает для jenkins.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Чтобы использовать Codebuild, вам необходимо предоставить проекту Codebuild файл buildspec.yaml вместе с исходным кодом или включить команды в реальный проект.

Однако я думаю, что вы заинтересованы в том, чтобы создание файла buildspec.yaml было выполнено в конвейере Jenkins.

Ниже приведен фрагмент этапа в Jenkinsfile, он создает файл спецификации сборки для построения образов Docker, а затем отправляет содержимое рабочей области в проект codebuild. Это использует плагин для Codebuild.

stage('Build - Non Prod'){

    String nonProductionBuildSpec = """
version: 0.1

phases:
  pre_build:
    commands:
      - \$(aws ecr get-login --registry-ids <number> --region us-east-1)
  build:
    commands:
      - docker build -t ces-sample-docker .
      - docker tag $NAME:$TAG <account-number>.dkr.ecr.us-east-1.amazonaws.com/$NAME:$TAG
  post_build:
    commands:
      - docker push <account-number>.dkr.ecr.us-east-1.amazonaws.com/$NAME:$TAG
""".replace("\t","    ")
    writeFile file: 'buildspec.yml', text: nonProductionBuildSpec

    //Send checked out files to AWS
    awsCodeBuild projectName: "<codebuild-projectname>",region: "us-east-1", sourceControlType: "jenkins"

}

Надеюсь, это даст вам представление о том, что возможно.

Удачи! Patrick

0 голосов
/ 25 апреля 2018

Вам потребуется написать спецификацию сборки для команд, которые вы хотите запустить AWS CodeBuild. Если вы используете плагин CodeBuild для Jenkins, вы можете добавить его в свой конвейер Jenkins и использовать CodeBuild в качестве подчиненного устройства сборки Jenkins для выполнения команд в вашей спецификации сборки.

Подробнее здесь: https://docs.aws.amazon.com/codebuild/latest/userguide/jenkins-plugin.html

...