AWS CodeBuildでGoのプロジェクトをビルドしてみる
今年のAWS RE:INVENTは盛り沢山でしたね。今回は、そのうちの1つ、CodeBuildを試してみようと思います。基本的にはGetting Startedに従って進めていきます。
1. ビルドのOutputを格納するS3バケットを作る
ビルドのOutputを格納するため、codebuild-demo-project-output
という名前でS3のバケットを作成する。
2. コードを書く
早速Goのコードを書く。今回は、codebuild
というディレクトリを作成し、シンプルにSum関数を1つだけ持つコードを作った。
package codebuild
// Sum adds two numbers.
func Sum(a, b int) int {
return a + b
}
3. ビルドスペックを書く
ビルドスペックは、ビルドコマンドと関連する設定が記述されたファイルになる。YAMLで記述され、AWS CodeBuildでのビルドに利用される。
以下のようなbuildspec.yml
というファイルを作成し、プロジェクト直下に保存する。
version: 0.1
environment_variables:
plaintext:
MY_ENV: "codebuild"
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- go build codebuild.go
post_build:
commands:
- echo Build completed on `date`
artifacts:
type: zip
files:
- codebuild
それぞれの項目は以下の通りである。詳しくはこちら。
項目 | 必須? | 説明 |
---|---|---|
version | 必須 | ビルドスペックのバージョン。現在最も新しいのが0.1 |
environment_variables | 任意 | 環境変数 |
phases | 必須 | install, pre_build, build, post_buildの4つの段階それぞれで実行するコマンドを列挙する。それぞれの段階の記述は任意となるため、4段階すべてを記入する必要はない。 |
artifacts | 必須 | CodeBuildがビルドのOutputを出力するための情報。typeは現在zip のみが対応。filesにはビルド環境でのビルドの生成物の場所を指定する。 |
ビルドスペックはプロジェクトのリポジトリに含める以外にも、ビルドプロジェクトを作成する際に宣言することができる。
4. プロジェクトをgithubにプッシュする
github上でcodebuild-demo-projectというリポジトリを作成し、以下のようにプロジェクトをプッシュする。リポジトリは自分のものを指定する。
git init
git add .
git commit -m "First commit"
git remote add origin [email protected]:Iwark/codebuild-demo-project.git
git push -u origin master
5. ビルドプロジェクトの作成
コンソールまたはAWS CLIを用いてビルドプロジェクトを作成する。今回はコンソールから作成する。
東京リージョンではまだ使えないので、オレゴンを選択する。
- Project名はcodebuild-demo-projectにする。
- RepositoryはGithubを選択し、先ほど作成したリポジトリを接続する。
- RuntimeはGolangを選択する。
- Versionは1.7.3を選択する。
- ArtifactsはAmazon S3を選択する。
- Bucketはcodebuild-demo-project-outputを選択。
あとはそのままの状態でContinue、Save and Buildする。
6. ビルドの開始
Start buildをすると、ビルドが開始される。
あとがき
とりあえずビルドまでは簡単にできました。
Go1.7なのにvendoringが効いていないのか、vendor内にあるパッケージがnot found
になるので困ってます。またちゃんと調べてみようと思います。
Author And Source
この問題について(AWS CodeBuildでGoのプロジェクトをビルドしてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/Iwark/items/efa008a09ca69adade54著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .