LoginSignup
4
0

More than 5 years have passed since last update.

俺でも泣いたAWS CodePipeline未対応なSCMを使っちゃってるので俺ージドにJenkinsからAWS CodeBuildを蹴り倒すためのtips

Last updated at Posted at 2018-11-13

俺です。

GitなどのSCMつかうのが呼吸なワケですが、
AWS CodePipelineやAWS CodeBuildのSourceが未対応だったときってあるじゃないですか。

例えばBacklogのGitとか。

source未対応だった衝撃をうけて、現世からいなくなりたいと思う気持ちを抑えて
以下のようにJenkinsに寄せた俺の記録を残します。

  • CodePipelineを捨てる
  • Jenkins Pipelineに寄せる
  • JenkinsにAWS CodeBuild Pluginを導入して蹴る

なお、すでにCode3兄弟がsourceとして対応してるSCMを使えてる人は帰ってどうぞ。

当初 @inokappaエントリ を実装して幸せ一直線なんじゃないかとおもうてましたがRepositoryがLambdaの一時ストレージサイズ超えたらどうすんべとなり諦めました。悲しい

構成

non-supported-scm.png

IAM Policy

Jenkins用EC2に適用するIAM RoleのPolicyをドキュメント参照して作ります。

Jenkinsfile

GUIでポチポチするのはしんどいのでPipelineジョブを使います。
便利ですねーJenkinsfile.appspec書くより楽かも..と思ってしまった俺達はJenkins初老丸の仲間入りです。

具体的なJenkinsfileの書き方はこちら参照してください。

pipeline {
  agent any
  parameters {
    string(name: 'SyncTargetS3', defaultValue: 'orenosaikoubucket', description: 'codebuild source s3 bucket')
  }
  stages {
/*
// Pipeline from SCMしない場合は以下なかんじでgit cloneするstepを作る
    stage('git clone') {
      steps {
        git(
          url: "${params.GitURL}",
          credentialsId: '<Jenkinsで作ったCredentialsID>',
          branch: "${params.GitBranch}"
        )
      }
    }
*/
    stage('zip archive ${env.WORKSPACE} to /tmp/${env.WORKSPACE}.zip') {
      steps {
        sh("cd ../ && zip -r /tmp/${env.JOB_NAME}.zip ${env.JOB_NAME} -x *.git*")
      }
    }
    stage('aws s3 cp') {
      steps {
        sh("aws s3 cp /tmp/${env.JOB_NAME}.zip s3://${params.SyncTargetS3}")
        sh("aws s3 ls s3://${params.SyncTargetS3}/")
        sh("rm -f /tmp/${env.JOB_NAME}.zip")
        echo "done"
      }
    }
    stage('start AWS CodeBuild'){
      steps {
        awsCodeBuild(
          projectName: 'sandbox',
          region: 'ap-northeast-1',
          credentialsType: 'keys', // Jenkins用EC2でIAM InstanceProfileを呼ぶ場合はこのパラメータをkeysとして、credentialsとsecret_keyは設定しないこと
          sourceControlType: 'jenkins'
        )
      }
    }
  }
}

良いJenkins Pipelineライフを!!!!!!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0