少し前からちょっとしたことをするときに Go を使い始めたので、その開発環境のメモ。
書くこと
- エディター
- ビルド
- 公開
- 公開しているコマンドたち
- まとめ
ビルドと公開
ビルド
Goland 上で Run するか シェルから go run / go build するのがほとんどです。
コード量やファイルも少ないので、今のところはこれで事足りています。
公開
いくつかコマンドを Github で公開しているのですが、Github の Release に登録するためのバイナリの作成やアップロードが面倒です。
そこで、コンパイルには gox を、Github にアップロードするために ghr を利用しています。
実際のところは、↓こんな感じに雑なシェルスクリプトを書いて、パッケージディレクトリで叩いています。
#!/bin/sh CURRENT=`pwd` PGNAME=`basename ${CURRENT}` BUILD_DIR=build PKG_DIR=${BUILD_DIR}/pkg DIST_DIR=${BUILD_DIR}/dist if [ -z "$1" ]; then echo 'compile.sh <tag>' exit 1 fi TAG=$1 PACKAGE=. if [ -d ${PKG_DIR} ]; then rm -r ${PKG_DIR} fi mkdir -p ${PKG_DIR} gox \ -os="darwin windows linux" \ -arch="386 amd64" \ -output "${PKG_DIR}/${PGNAME}_{{.OS}}_{{.Arch}}/{{.Dir}}" \ $PACKAGE if [ -d ${DIST_DIR} ]; then rm -r ${DIST_DIR} fi mkdir ${DIST_DIR} pushd ${PKG_DIR} > /dev/null for P in `ls | xargs basename` do zip -r ${CURRENT}/${DIST_DIR}/$P.zip $P done popd > /dev/null ghr ${TAG} ${DIST_DIR}
まとめ
こんな感じの開発環境でやっていますが、gore や ghq や peco などといったとても便利なツールがあるみたいなので、これからもどんどん変わりそうです。