成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于 GitLab CI 搭建前端自動(dòng)構(gòu)建環(huán)境

Warren / 2525人閱讀

摘要:什么是持續(xù)集成持續(xù)集成,簡(jiǎn)稱指的是,頻繁地一天多次將代碼集成到主干。如圖什么是一次其實(shí)相當(dāng)于一次構(gòu)建任務(wù),里面可以包含多個(gè)流程,如安裝依賴運(yùn)行測(cè)試編譯部署測(cè)試服務(wù)器部署生產(chǎn)服務(wù)器等流程。參考鏈接用進(jìn)行持續(xù)集成

什么是持續(xù)集成 ?

持續(xù)集成(Continuous integration,簡(jiǎn)稱CI)指的是,頻繁地(一天多次)將代碼集成到主干。

GitLab CI 什么是 GitLab CI ?

GitLab CIGitLab Continuous Integration (Gitlab 持續(xù)集成)的簡(jiǎn)稱。從 GitLab 的 8.0 版本開始,GitLab 就全面集成了 Gitlab-CI,并且對(duì)所有項(xiàng)目默認(rèn)開啟。只要在項(xiàng)目倉庫的根目錄添加 .gitlab-ci.yml 文件,并且配置了 Runner (運(yùn)行器),那么每一次合并請(qǐng)求(MR)或者 push 都會(huì)觸發(fā) CI pipeline。

如果一切運(yùn)行正常,你將得到與 commit 關(guān)聯(lián)的標(biāo)記。如圖:

什么是 Pipeline ?

一次 Pipeline 其實(shí)相當(dāng)于一次構(gòu)建任務(wù),里面可以包含多個(gè)流程,如安裝依賴、運(yùn)行測(cè)試、編譯、部署測(cè)試服務(wù)器、部署生產(chǎn)服務(wù)器等流程。
任何提交或者 Merge Request 的合并都可以觸發(fā) Pipeline,如下圖所示:

+------------------+           +----------------+
|                  |  trigger  |                |
|   Commit / MR    +---------->+    Pipeline    |
|                  |           |                |
+------------------+           +----------------+
什么是 Stages ?

Stages 表示構(gòu)建階段,說白了就是上面提到的流程。
我們可以在一次 Pipeline 中定義多個(gè) Stages,這些 Stages 會(huì)有以下特點(diǎn):

所有 Stages 會(huì)按照順序運(yùn)行,即當(dāng)一個(gè) Stage 完成后,下一個(gè) Stage 才會(huì)開始

只有當(dāng)所有 Stages 完成后,該構(gòu)建任務(wù) (Pipeline) 才會(huì)成功

如果任何一個(gè) Stage 失敗,那么后面的 Stages 不會(huì)執(zhí)行,該構(gòu)建任務(wù) (Pipeline) 失敗

因此,StagesPipeline 的關(guān)系就是:

+--------------------------------------------------------+
|                                                        |
|  Pipeline                                              |
|                                                        |
|  +-----------+     +------------+      +------------+  |
|  |  Stage 1  |---->|   Stage 2  |----->|   Stage 3  |  |
|  +-----------+     +------------+      +------------+  |
|                                                        |
+--------------------------------------------------------+
什么是 Jobs ?

Jobs 表示構(gòu)建工作,表示某個(gè) Stage 里面執(zhí)行的工作。
我們可以在 Stages 里面定義多個(gè) Jobs,這些 Jobs 會(huì)有以下特點(diǎn):

相同 Stage 中的 Jobs 會(huì)并行執(zhí)行

相同 Stage 中的 Jobs 都執(zhí)行成功時(shí),該 Stage 才會(huì)成功

如果任何一個(gè) Job 失敗,那么該 Stage 失敗,即該構(gòu)建任務(wù) (Pipeline) 失敗

所以,JobsStage 的關(guān)系圖就是:

+------------------------------------------+
|                                          |
|  Stage 1                                 |
|                                          |
|  +---------+  +---------+  +---------+   |
|  |  Job 1  |  |  Job 2  |  |  Job 3  |   |
|  +---------+  +---------+  +---------+   |
|                                          |
+------------------------------------------+
安裝配置
安裝環(huán)境為 Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-105-generic x86_64)docker 版本為 Docker version 18.03.1-ce, build 9ee9f40

安裝 gitlab-ci-multi-runner

# For Debian/Ubuntu
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash

# For RHEL/CentOS
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

查看 docker images

sudo docker images
如何使用 GitLab CI ?

在項(xiàng)目根目錄創(chuàng)建 .gitlab-ci.yml 文件,文件代碼如下:

stages 定義 Stages,默認(rèn)有三個(gè) Stages,分別是 build,test,deployJob.only 定義只有 develop 分支會(huì)觸發(fā)相關(guān)的 Jobs。
stages:
    - build
job1:
    # 是否開啟 debug 模式
    # variables:
    #     CI_DEBUG_TRACE: "true"
    stage: build
    tags:
        - 新建 runner 的標(biāo)簽
    only:
        - develop
    script:
        - cd public
        - npm i
        - npm run build

進(jìn)入 pipeline 配置頁面

記下 URLToken,留以注冊(cè) runner 使用

注冊(cè) runner

注冊(cè) runner,runner 注冊(cè)成功之后,你會(huì)在 pipeline 配置頁面看見 specific runners 下多出了你剛新增的 runner

sudo gitlab-ci-multi-runner register

# Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )

你的 URL

# Please enter the gitlab-ci token for this runner

你的 Token

# Please enter the gitlab-ci description for this runner

my-runner

# Please enter the gitlab-ci tags for this runner (comma separated)

my-runner

Whether to run untagged builds [true/false]:

false

Whether to lock Runner to current project [true/false]:

false

# Please enter the executor: shell, docker, docker-ssh, ssh?

docker

# Please enter the Docker image (eg. ruby:2.1):

node:9.4.0

卸載 runner

sudo gitlab-ci-multi-runner unregister --url url地址 --token tocken值

查看 runner 狀態(tài)

sudo gitlab-ci-multi-runner status

查看 runner 列表

sudo gitlab-ci-multi-runner list

查看 runner 配置文件

sudo vim /etc/gitlab-runner/config.toml
大功告成

切換到項(xiàng)目 Pipelines 頁面,發(fā)現(xiàn)出現(xiàn)以下情況,則代表你的 runner 已經(jīng)配置完成,你的每一次提交都會(huì)觸發(fā) runner。

備注

使用 GitLab CI 克隆私有倉庫時(shí)候,會(huì)提示 Host key verification failed。

需要做如下配置,Key 寫入 SSH_PRIVATE_KEY,Value 寫入 服務(wù)器 private SSH key。然后在 .gitlab-ci.yml 文件前面寫入如下代碼,并保存。

before_script:
    - "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
    # Run ssh-agent (inside the build environment)
    - eval $(ssh-agent -s)
    # Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - mkdir -p ~/.ssh
    - "[[ -f /.dockerenv ]] && echo -e "Host *
	StrictHostKeyChecking no

" > ~/.ssh/config"
參考鏈接

Getting GitLab CI to clone private repositories

用 GitLab CI 進(jìn)行持續(xù)集成

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96077.html

相關(guān)文章

  • 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目

    摘要:從到再到搭建編寫構(gòu)建一個(gè)前端項(xiàng)目選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架搭建一個(gè)前端項(xiàng)目的方式有兩種選擇現(xiàn)成的項(xiàng)目模板自己搭建項(xiàng)目骨架。使用版本控制系統(tǒng)管理源代碼項(xiàng)目搭建好后,需要一個(gè)版本控制系統(tǒng)來管理源代碼。 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目 1. 選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架 搭建一個(gè)前端項(xiàng)目的方式有兩種:選擇現(xiàn)成的項(xiàng)目模板、自己搭建項(xiàng)目骨架。 ...

    call_me_R 評(píng)論0 收藏0
  • 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目

    摘要:從到再到搭建編寫構(gòu)建一個(gè)前端項(xiàng)目選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架搭建一個(gè)前端項(xiàng)目的方式有兩種選擇現(xiàn)成的項(xiàng)目模板自己搭建項(xiàng)目骨架。使用版本控制系統(tǒng)管理源代碼項(xiàng)目搭建好后,需要一個(gè)版本控制系統(tǒng)來管理源代碼。 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目 1. 選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架 搭建一個(gè)前端項(xiàng)目的方式有兩種:選擇現(xiàn)成的項(xiàng)目模板、自己搭建項(xiàng)目骨架。 ...

    wzyplus 評(píng)論0 收藏0
  • 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目

    摘要:從到再到搭建編寫構(gòu)建一個(gè)前端項(xiàng)目選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架搭建一個(gè)前端項(xiàng)目的方式有兩種選擇現(xiàn)成的項(xiàng)目模板自己搭建項(xiàng)目骨架。使用版本控制系統(tǒng)管理源代碼項(xiàng)目搭建好后,需要一個(gè)版本控制系統(tǒng)來管理源代碼。 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目 1. 選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架 搭建一個(gè)前端項(xiàng)目的方式有兩種:選擇現(xiàn)成的項(xiàng)目模板、自己搭建項(xiàng)目骨架。 ...

    aristark 評(píng)論0 收藏0
  • fir.im weekly - 「 持續(xù)集成 」實(shí)踐教程合集

    摘要:來這里看看的工程師如何進(jìn)行持續(xù)集成與持續(xù)部署。主要介紹了豆瓣移動(dòng)持續(xù)集成和測(cè)試相關(guān)實(shí)踐,用工具化自動(dòng)化社會(huì)化測(cè)試來解決遇到的問題,將打包發(fā)布環(huán)節(jié)自動(dòng)化。這期的持續(xù)集成實(shí)踐分享就到這里。 我們??吹皆S多團(tuán)隊(duì)和開發(fā)者分享他們的持續(xù)集成實(shí)踐經(jīng)驗(yàn),本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等項(xiàng)目搭建持續(xù)集成的實(shí)踐,以及一些國內(nèi)外公司的內(nèi)部持續(xù)集成...

    A Loity 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<