国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

github上Go項目使用Travis CI和Docker Hub實現持續集成

zeyu / 932人閱讀

摘要:介紹在本文中,我們將介紹如何使用,和創建一個簡單的持續集成過程。

介紹

在本文中,我們將介紹如何使用Github,Travis-CI和Docker Hub創建一個簡單的持續集成過程。

項目

這次使用的一個項目是自己寫的一個爬蟲小程序(https://github.com/Han-Ya-Jun...

項目目錄
news_watch_notice
├── cmd    //main
├── conf
├── dis
├── Dockerfile
├── Makefile
├── pkg
├── qrcode
├── .travis.yml
├── README.md
├── vendor
├── utils
Dockerfile
FROM alpine:3.6

MAINTAINER hanyajun0123@gmail.com
RUN apk update && apk add curl bash tree tzdata 
    && cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime
ADD news_watch_notice /usr/bin/
ADD news_watch_notice.sha /usr/bin/
CMD ["news_watch_notice"]
makefile
TARGET=news_watch_notice
PKG=$(TARGET)
TAG=latest
IMAGE_PREFIX?=hanyajun
IMAGE_PREFIX_PRD=hanyajun
TARGET_IMAGE_DEV=$(IMAGE_PREFIX)/$(TARGET):$(TAG)
TARGET_IMAGE_PRD=$(IMAGE_PREFIX_PRD)/$(TARGET):$(TAG)
all: image

$(TARGET):
    CGO_ENABLED=0 go build -o dist/$(TARGET) $(PKG)/cmd

gitlog:


target:
    mkdir -p dist
    git log | head -n 1 > dist/news_watch_notice.sha
    docker run --rm -i -v `pwd`:/go/src/$(PKG) 
      -w /go/src/$(PKG) golang:1.11.5 
      make $(TARGET)

image-dev: target
    cd dist && cp ../Dockerfile ./ && 
    docker build -t $(TARGET_IMAGE_DEV) .

push-dev:
    docker push $(TARGET_IMAGE_DEV)

image-prd: target
    cd dist && cp ../Dockerfile ./ && 
    docker build -t $(TARGET_IMAGE_PRD) .

push-prd:
    docker push $(TARGET_IMAGE_PRD)
clean:
    rm -rf dist

.PHONY: image target clean push $(TARGET)
.travis.yml
language: go
go:          # 語言版本號
  - "1.11.5"   # 默認使用最新版本,注意,需要 "1.10" 版本的時候必須表示為字符串形式,如果寫成 1.10 則會使用 1.1 版本;x表示對應前綴的最新版本
services:
  - docker  #需要的docker環境


install:
  - make image-dev  #build

script:
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
  - make push-dev  # push
travis的配置(https://travis-ci.org) 打開項目ci開關

設置docker hub的用戶和密碼環境變量(push需要登錄認證)
DOCKER_PASSWORD

DOCKER_USERNAME

提交項目代碼觸發ci

部分ci日志
docker_mtu
docker stop/waiting
docker start/running, process 3638
services
0.02s$ sudo service docker start
start: Job is already running: docker
Updating gimme
git.checkout
0.85s$ git clone --depth=50 --branch=master https://github.com/Han-Ya-Jun/news_watch_notice.git Han-Ya-Jun/news_watch_notice
Cloning into "Han-Ya-Jun/news_watch_notice"...
$ cd Han-Ya-Jun/news_watch_notice
$ git checkout -qf e05633a1c6e0c3289c85aedf28461b718fe1af13
$ travis_export_go 1.11.5 github.com/Han-Ya-Jun/news_watch_notice
Setting environment variables from repository settings
$ export DOCKER_PASSWORD=[secure]
$ export DOCKER_USERNAME=[secure]
$ export GOBIN=$GOPATH/src/bin
6.93s$ travis_setup_go
go version go1.11.5 linux/amd64
$ export GOPATH="/home/travis/gopath"
$ export PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.5.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.9.1/bin:/home/travis/.kiex/elixirs/elixir-1.4.5/bin:/home/travis/.kiex/bin:/home/travis/.rvm/gems/ruby-2.4.1/bin:/home/travis/.rvm/gems/ruby-2.4.1@global/bin:/home/travis/.rvm/rubies/ruby-2.4.1/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.7.4.linux.amd64/bin:/usr/local/phantomjs/bin:/usr/local/phantomjs:/usr/local/neo4j-3.2.7/bin:/usr/local/maven-3.5.2/bin:/usr/local/cmake-3.9.2/bin:/usr/local/clang-5.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin"
$ export GO111MODULE="auto"
$ gimme version
v1.5.3
$ go version
go version go1.11.5 linux/amd64
go.env
$ go env
GOARCH="amd64"
GOBIN="/home/travis/gopath/src/bin"
GOCACHE="/home/travis/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/travis/gopath"
GOPROXY=""
GORACE=""
GOROOT="/home/travis/.gimme/versions/go1.11.5.linux.amd64"
GOTMPDIR=""
GOTOOLDIR="/home/travis/.gimme/versions/go1.11.5.linux.amd64/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build083711362=/tmp/go-build -gno-record-gcc-switches"
install
43.66s$ make image-dev
mkdir -p dist
git log | head -n 1 > dist/news_watch_notice.sha
docker run --rm -i -v `pwd`:/go/src/news_watch_notice 
      -w /go/src/news_watch_notice golang:1.11.5 
      make news_watch_notice
Unable to find image "golang:1.11.5" locally
1.11.5: Pulling from library/golang
22dbe790f715: Pulling fs layer
0250231711a0: Pulling fs layer
6fba9447437b: Pulling fs layer
c2b4d327b352: Pulling fs layer
619f4932b7ea: Pulling fs layer
e2fd6cbd3c6f: Pulling fs layer
1d96446d2b20: Pulling fs layer
c2b4d327b352: Waiting
e2fd6cbd3c6f: Waiting
1d96446d2b20: Waiting
619f4932b7ea: Waiting
6fba9447437b: Verifying Checksum
6fba9447437b: Download complete
0250231711a0: Download complete
22dbe790f715: Verifying Checksum
22dbe790f715: Download complete
c2b4d327b352: Verifying Checksum
c2b4d327b352: Download complete
619f4932b7ea: Verifying Checksum
619f4932b7ea: Download complete
1d96446d2b20: Verifying Checksum
1d96446d2b20: Download complete
e2fd6cbd3c6f: Verifying Checksum
e2fd6cbd3c6f: Download complete
22dbe790f715: Pull complete
0250231711a0: Pull complete
6fba9447437b: Pull complete
c2b4d327b352: Pull complete
619f4932b7ea: Pull complete
e2fd6cbd3c6f: Pull complete
1d96446d2b20: Pull complete
Digest: sha256:342872745847966ab630e9cc5b6980ed3fe7f4e3ea44b10efac995575730c9b8
Status: Downloaded newer image for golang:1.11.5
CGO_ENABLED=0 go build -o dist/news_watch_notice news_watch_notice/cmd
cd dist && cp ../Dockerfile ./ && 
    docker build -t [secure]/news_watch_notice:latest .
Sending build context to Docker daemon  14.78MB
Step 1/6 : FROM alpine:3.6
3.6: Pulling from library/alpine
5a3ea8efae5d: Pulling fs layer
5a3ea8efae5d: Verifying Checksum
5a3ea8efae5d: Download complete
5a3ea8efae5d: Pull complete
Digest: sha256:ee0c0e7b6b20b175f5ffb1bbd48b41d94891b0b1074f2721acb008aafdf25417
Status: Downloaded newer image for alpine:3.6
 ---> 43773d1dba76
Step 2/6 : MAINTAINER [secure]0123@gmail.com
 ---> Running in 1f4d4d0db1cb
 ---> 0eadcccd5d22
Removing intermediate container 1f4d4d0db1cb
Step 3/6 : RUN apk update && apk add curl bash tree tzdata     && cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime
 ---> Running in 7f859dd06afc
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/community/x86_64/APKINDEX.tar.gz
v3.6.5-39-gbdcdc921e8 [http://dl-cdn.alpinelinux.org/alpine/v3.6/main]
v3.6.5-34-gf0ba0b43d5 [http://dl-cdn.alpinelinux.org/alpine/v3.6/community]
OK: 8442 distinct packages available
(1/11) Installing ncurses-terminfo-base (6.0_p20171125-r1)
(2/11) Installing ncurses-terminfo (6.0_p20171125-r1)
(3/11) Installing ncurses-libs (6.0_p20171125-r1)
(4/11) Installing readline (6.3.008-r5)
(5/11) Installing bash (4.3.48-r1)
Executing bash-4.3.48-r1.post-install
(6/11) Installing ca-certificates (20161130-r2)
(7/11) Installing libssh2 (1.8.2-r0)
(8/11) Installing libcurl (7.61.1-r2)
(9/11) Installing curl (7.61.1-r2)
(10/11) Installing tree (1.7.0-r0)
(11/11) Installing tzdata (2019a-r0)
Executing busybox-1.26.2-r11.trigger
Executing ca-certificates-20161130-r2.trigger
OK: 17 MiB in 24 packages
 ---> f923b8dbfbf2
Removing intermediate container 7f859dd06afc
Step 4/6 : ADD news_watch_notice /usr/bin/
 ---> a855f5307179
Step 5/6 : ADD news_watch_notice.sha /usr/bin/
 ---> 9014ba35ce0f
Step 6/6 : CMD news_watch_notice
 ---> Running in 109449b18721
 ---> acb6623feb46
Removing intermediate container 109449b18721
Successfully built acb6623feb46
Successfully tagged [secure]/news_watch_notice:latest
0.49s$ echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
Login Succeeded
The command "echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin" exited with 0.
5.21s$ make push-dev
docker push [secure]/news_watch_notice:latest
The push refers to a repository [docker.io/[secure]/news_watch_notice]
c0546ad83870: Preparing
869b27ab7e53: Preparing
47b50a8202a0: Preparing
721384ec99e5: Preparing
721384ec99e5: Layer already exists
c0546ad83870: Pushed
47b50a8202a0: Pushed
869b27ab7e53: Pushed
latest: digest: sha256:74a706f3f8b5b2ead4a7722ca72d8f1eaa450801847662402e4e3e34f4d73158 size: 1157
The command "make push-dev" exited with 0.
成功將項目打包成image并推送到docker hub上

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27838.html

相關文章

  • Javascript CI篇(4)- Github + Travis 持續集成

    摘要:簡介是目前新興的開源持續集成構建項目,它與,的很明顯的特別在于采用格式,簡潔清新獨樹一幟。目前大多數的項目都已經移入到的構建隊列中,據說每天運行超過次完整構建。查看構建情況增加逼格首先要是一個文檔。是由提供的真實的構建情況。 Travis簡介 Travis CI(continuous integration )是目前新興的開源持續集成構建項目,它與jenkins,GO的很明顯的特別在于...

    pingink 評論0 收藏0
  • 容器環境下的持續集成最佳實踐:構建基于 Drone + GitFlow + K8s 的云原生語義化

    摘要:集成測試完成后,由運維同學從發起一個到分支,此時會會運行單元測試,構建鏡像,并發布到預發布環境測試人員在預發布環境下再次驗證功能,團隊做上線前的其他準備工作運維同學合并,將為本次發布的代碼及鏡像自動打上版本號并書寫,同時發布到生產環境。 云原生 (Cloud Native) 是伴隨的容器技術發展出現的的一個詞,最早出自 Pivotal 公司(即開發了 Spring 的公司)的一本技術小...

    asoren 評論0 收藏0
  • 容器環境下的持續集成最佳實踐:構建基于 Drone + GitFlow + K8s 的云原生語義化

    摘要:集成測試完成后,由運維同學從發起一個到分支,此時會會運行單元測試,構建鏡像,并發布到預發布環境測試人員在預發布環境下再次驗證功能,團隊做上線前的其他準備工作運維同學合并,將為本次發布的代碼及鏡像自動打上版本號并書寫,同時發布到生產環境。 云原生 (Cloud Native) 是伴隨的容器技術發展出現的的一個詞,最早出自 Pivotal 公司(即開發了 Spring 的公司)的一本技術小...

    DevTalking 評論0 收藏0
  • 使用 DaoCloud 與 FIR.im 為 CodingAndroid 項目開啟持續集成的嘗試

    摘要:所以一直沒能把持續集成搞起來。后來接觸到,所以嘗試了一下把持續集成搭建在上了,通過下面這幾步就可以實現項目有新的提交后自己編譯發布測試包到上了。 由于本人精力有限,如果內容有更新可能無法及時更新其他渠道的內容,請移步簡書 查看文章 由于之前公司項目一直迭代速度很快,幾乎隔幾天就需要發布測試包給同事們進行測試,所以希望把打包Apk這個工作交給機器來做,然后就嘗試了幾種持續集成的方案,最常...

    renweihub 評論0 收藏0

發表評論

0條評論

zeyu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<