2018-09-20に更新

Goのglide環境にてWerckerのCI導入

Go3 Advent Calendar 2017 - Qiita

23日目

GoのアプリケーションのリポジトリをBitBucketに作っているので、WerckerでのCIを試した。

シンプルで綺麗なパスでアプリケーションを作っている場合、
多分Werckerにてアプリケーションを登録する際に表示されるサンプルそのままのwercker.ymlでそのまま動くのではないかと思う。

ただ、今回のアプリケーションはパッケージ管理にglideを使っているのでそのままでは動かない。
ちなみにフォルダ構成としては、下記に降りたところにアプリケーションが入ってる。

/src/myapp

Dockerコンテナ内では上記のルートをGOPATHとしている。ちょっと変な構成。

とりあえず動くところまでを調整してみた。
とりあえずなので変な感じになっている。

box: golang
build:
  steps:
    - setup-go-workspace

    - script:
        name: install glide
        code: |
          curl https://glide.sh/get | sh

    # Gets the dependencies
    - script:
        name: glide install
        cwd: src/crawler/
        code: |
          glide install

    # Build the project
    - script:
        name: go build
        cwd: src/crawler/
        code: |
          export GOPATH=/go/src/bitbucket.org/myaccount/myapp
          go build

    # Test the project
    - script:
        name: go test
        cwd: src/crawler/
        code: |
          export GOPATH=/go/src/bitbucket.org/myaccount/myapp
          go test $(glide novendor)

細かいところを補足していくと、まずglideのドキュメント通りにインストール

curl https://glide.sh/get | sh

最初に書いたとおりパスがちょっと違うので合わせる。

cwd: src/crawler/
code: |
  glide install

パッケージの位置がずれて読み込めていなかったので、exportでGOPATHを指定している。
(ymlの設定であるかも?)

プロジェクトの環境変数を設定すると今度はglideのインストールとかがうまくいかなくなるのでここで指定している。

cwd: src/crawler/
code: |
  export GOPATH=/go/src/bitbucket.org/myaccount/myapp
  go build

こんな感じで通った。

あとはパイプラインでデプロイの処理などと繋げれば楽だと思う。


だら@Crieit開発者

Crieitの開発者です。 主にLAMPで開発しているWebエンジニアです(在宅)。大体10年程。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel5, CakePHP3, JavaScript, RoR 趣味:Elixir, Phoenix, Node, Nuxt, Express, Vue等色々

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント