Delivery

截至目前為止,應用程式該有基本功能都已經完備了,再來就是最後一哩路了--交付。

分析

交付前必須要經過建置([Build][])的過程,不過畢竟只是 side project,所以測試暫時先跳過吧!但有一個很重要的任務不能不做--編譯

Go 的編譯還算簡單,直接下指令 build 就行了

$ go build

接著就會出現與專案名稱同名的可執行檔,如 namer

$ ls namer
namer

交付的目標,應該直接放在 GitHub Release 即可。

Travis CI 的串接方法可以參考官方網站

Travis CI 上做 cross compile 可以參考 gimme

開工

首先要先安裝 travis 指令,安裝好應該就能看得到版本號了:

$ travis -v
1.8.8

接著切換專案目錄,執行下面的指令:

$ travis setup releases
Detected repository as MilesChou/namer, is this correct? |yes|
Username:
Password for [email protected]:
File to Upload: namer
Deploy only from MilesChou/namer? |yes|
Deploy from iron branch? |yes| no
Encrypt API key? |yes|

它會問一些問題,其中記得 Encrypt API key 一定要選 yes,因為這個 key 是機敏資訊。

接著調整 .travis.yml 描述檔:

branches:
only:
- master
- /^\d+\.\d+\.\d+$/

env:
- GIMME_OS=linux GIMME_ARCH=amd64
- GIMME_OS=darwin GIMME_ARCH=amd64
- GIMME_OS=windows GIMME_ARCH=amd64

before_deploy:
- go build

deploy:
provider: releases
api_key:
secure: ENCRYPT_API_KEY
file: namer
skip_cleanup: true
on:
tags: true

一切就緒,當打 tag 的時候,就會觸發 deploy 行為,然後把建置出來的執行檔都交付到 GitHub Release。

程式碼可以參考 PR Day 24

參考資料

  • [CI 起步走][Build] - CI 從入門到入坑