Go 언어: CLI 도구를 자동으로 배포하는 데 사용되는 Drene입니다.io 구성

2432 단어 Godrone.io

이 문장의 종점


다음 모든 자동화
  • Linux용, Mac용, Windows용 바이너리 교차 컴파일
  • 컴파일된 바이너리 배포
  • 빌드에 버전 정보 포함
  • ↓ 이런 느낌으로 바이너리를 발산할 수 있다.

    방법


    빌딩에 드린이 있어요.io를 쓰다.Drone.IO의 사용 방법에 관하여 앞서 쓴 문장 《Go 언어: GiitHub로 자신의 라이브러리를 공개하는 방법 + drone.지속 포인트 - Qita》에 설명이 있으니 보십시오.
    Drone.io의 설정은 다음과 같습니다.또한 배포를 자동화하기 위해 Drene을 사용합니다.io의 Artifacts 페이지에서 설정artifacts/*/*합니다.이곳의 견본 구축http://github.com/suin/drone-golang-ci-example.
    # 設定
    APP_NAME="my-app"
    APP_OS="linux darwin windows"
    APP_ARCH="386 amd64"
    
    # Go1.3.1をダウンロードする
    pushd ~/
    curl -s -o go.tar.gz https://storage.googleapis.com/golang/go1.3.1.linux-amd64.tar.gz
    tar xzf go.tar.gz
    export GOROOT=~/go
    export PATH=$GOROOT/bin:$PATH
    go version
    popd
    
    # goxをインストールする
    go get github.com/mitchellh/gox
    gox -build-toolchain -os="$APP_OS" -arch="$APP_ARCH"
    
    # gitのコミットからバージョンを採番する
    APP_VERSION=$(git log --pretty=format:"%h (%ad)" --date=short -1)
    echo APP_VERSION is $APP_VERSION
    
    # クロスコンパイルする
    gox -os="$APP_OS" -arch="$APP_ARCH" -output="artifacts/{{.OS}}-{{.Arch}}/$APP_NAME" -ldflags "-X main.version '$APP_VERSION'"
    find artifacts
    
    교차 컴파일은 gox를 사용합니다.참조Go-Qiita를 Goox로 교차 컴파일하기.Drone.처음 IO에 들어간 go1.2곳에서 gox의build-toolchanin이 실패했습니다.그래서,goo1.3.1을 다운로드하여 로드합니다.
    구축할 때git의 수정 버전 번호를 버전으로 삽입합니다.빌드할 때 버전을 포함시키는 방법에 대해서는 "Go 언어: 빌드할 때 버전 정보 포함 - Qiita"에 설명되어 있습니다.

    링크


    이 글은drone을 썼다.io의 샘플→https://drone.io/github.com/suin/drone-golang-ci-example/files

    좋은 웹페이지 즐겨찾기