Skip to content

takami228/jenkins-awscodebuild-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jenkins-awscodebuild-starter

JenkinsとGitLabとMattermostとAWS CodeBuildを連携するサンプルプロジェクトです。

PushトリガーでAWS CodeBuildを実行し、release/* ブランチをpushした場合にのみ成果物をS3にPutします。

jenkins-awscodebuild-integration

Requirements

※連携をスムーズにするために、すべてAWSで動作していることを仮定します。

Settings

AWS CodeBuild

AWS Conlose

AWS CodeBuildのプロジェクトをつくる。

  • プロジェクト
    • プロジェクト名 : project name
  • ソース
    • 現在のソース : GitLabのターゲットレポジトリ(GitHub Enterpriseを選択する)
  • 環境
    • 現在のイメージ : ビルドに使うイメージを設定、ECRのイメージも選択可能
    • 現在のビルド仕様 : buildspec.ymlを使用
  • アーティファクト ※実際は使わない
    • Amazon S3
    • バケット名 : 対象のバケット
  • キャッシュ
    • タイプ : S3
    • バケット : 対象のバケット
    • パスのプレフィックス : 適宜設定
  • サービスロール
    • アカウントでサービスロールを作成※
  • VPC
    • 適宜設定

※サービスロールはArtifact用のS3へのアクセスとCloudWatch Logsにログ転送するロールが自動で払い出される

buildspec.yml

To Doのところを適宜修正する。

version: 0.2

phases:
  install:
    # To Do
    commands: 
      - ./setup.sh
  build:
    # To Do
    commands:
      - ./build.sh
      - ./test.sh
  package:
    # To Do
    commands:
      - |
        if [ -z "${BRANCH_NAME%%release/*}" ]; then
          ./package.sh
        fi
  artifacts:
    # To Do
    commands:
      - |
        if [ -z "${BRANCH_NAME%%release/*}" ]; then
          aws s3 cp /path/to/artifacts "s3://path_to_artifacts_bucket/${BRANCH_NAME#release/}/artifacts" # To Do
        fi

cache:
  paths:
    - /path/to/cache/* # To Do

Jenkins

Jenkinsfile

awsCodeBuild()のTo Doのところを修正する。

    ...
    stages {
        stage('codebuild') {
            steps {
                awsCodeBuild(
                    credentialsType: 'keys',
                    projectName: 'projectName', // To Do
                    region: 'aws-region', // To Do
                    sourceControlType: 'project',
                    sourceVersion: env.BRANCH_NAME,
                    envVariables: "[{BRANCH_NAME,${env.BRANCH_NAME}}]",
                )
            }
        }
    ...

Jenkins Configuration

Jenkinsの設定でノードの設定で同時実行数を適当な値に設定する。

Links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published