์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์๋ฌด๊ฒ๋ ์ค์น๋์ง ์๋ ๊ฐ์๋จธ์ ์์ ๋น๋, ํ ์คํธํ ํ์๊ฐ ์์ต๋๋ค. ํน์ ๋ชจ๋ฅผ ์์กด์ฑ์ ์ฒดํฌํ๊ณ ํ ํ๋ก์ ํธ๊ฐ ํญ์ ์ ๋น๋๊ฐ ๋๋์ง ์๋์ผ๋ก ๊ฒ์ฌํ๊ธฐ ์ํด CI๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Github ์์ด๋์ ํจ์ค์๋๋ฅผ ํตํด์ ๋ก๊ทธ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์คํ์์ค๊ฐ ์๋ ๋น๊ณต๊ฐ ๋ฆฌํฌ์งํฐ๋ฆฌ๋ผ๋ฉด https://travis-ci.com ์์ ์ ๋ฃ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค.
+ ๋ฒํผ์ ๋๋ฅด๊ณ ํ
์คํธํ๊ณ ์ถ์ ๋ฆฌํฌ์งํฐ๋ฆฌ๋ฅผ ๋ฑ๋กํฉ๋๋ค.
ํด๋น ๋ฆฌํฌ์งํฐ๋ฆฌ๋ฅผ ํ์ฑํ ํด์ค๋๋ค.
travisCI ๊ฐ ์๋๋๊ธฐ ์ํด์๋ ์์ ์ ๋ฆฌํฌ์งํฐ๋ฆฌ์ .travis.yml ํ์ผ์ด ํ์๋ก ์์ฑ๋์ด์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ Go ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์๋์ฒ๋ผ ์์ฑํด ์ค๋๋ค.
language: go
go:
- 1.12.x
env:
- GO111MODULE=on
services:
- mongodb
script:
- go test -race -coverprofile=coverage.txt -covermode=atomic ./...
- go vet ./...์ ๋ฆฌ์คํธ๋ ์ธ์ด, ์ธ์ด๋ฒ์ , ํ๊ฒฝ๋ณ์, ํ์ํ ์๋น์ค(์ ๋ mongodb๋ฅผ ์์ฃผ ์ฌ์ฉํฉ๋๋ค. ํ
์คํธ์ mongoDB๋ฅผ ํ์ฑํ ํฉ๋๋ค.) ๊ฐ์๋จธ์ ์ด ์์ฑ, ์
ํ
๋๊ณ script๊ฐ ์คํ๋ฉ๋๋ค.
Go ์์๋ go test, go vet ๊ฐ์ ํ
์คํธ๊ฐ ํ์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃ์ด์ค๋๋ค.
- ์ง์์ธ์ด ๋ฆฌ์คํธ: https://docs.travis-ci.com/user/languages/
- Go ์ธ์ด ์ ํ : https://docs.travis-ci.com/user/languages/go/
- ์๋น์ค ๋ฆฌ์คํธ: https://docs.travis-ci.com/user/database-setup/
๋น๋ ์ํ๋ฅผ ๋งค๋ฒ TravisCI์ ์ ์ํ์ฌ ํ์ธํ๋ ๊ฒ์ ๊ท์ฐฎ์ ์ผ ์ ๋๋ค. ๋น๋ ์ํ๋ฅผ ์ ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ํญ์ ๋ฆฌํฌ์งํฐ๋ฆฌ์ ํ๊ธฐ๋๋๋ก ํด๋๋ฉด ํธ๋ฆฌํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋๋ง TravisCI์ ์ ์ํ์ฌ ์ํฉ์ ์ ๊ฒํ๋ฉด ๋ฉ๋๋ค.
๋งํฌ๋ค์ด ํ์์ผ๋ก๋ ์๋์ฒ๋ผ ์์ฑํฉ๋๋ค.
๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋๋ ๋ น์์ด ์๋ ์ฃผํฉ์์ด ํ๊ธฐ๋ฉ๋๋ค. ์๋๋ ํด๋น ์ด์๋ก ๊ฐ๋ฐ์ด ๋๋๊ณ CI์์ ์๋ํ ์ฒ๋ฆฌ๊ฐ ์ ๋ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค.
- https://openpipeline.io ์ฌ์ดํธ์ ์ฌ๋ฌ๋ถ์ ๋ฆฌํฌ์งํฐ๋ฆฌ TravisCI ์ํ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ์ธ์.




