日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Gitlab CI(一)

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gitlab CI(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Gitlab CI流程設計與思考

repo添加ci完整流程

新增Repo CI注冊需要開發者提供的信息和我們這邊需要反饋的信息。
CI注冊需要提供的信息:
1. Repo url
2. 需要注冊哪些CI服務器:Linux CI服務器、Windows CI服務器、rk3399性能測試CI服務、rk3399內存檢測CI服務器、單元測試CI服務器
3. 需要支持哪些功能:編譯測試、靜態分析、CodeCoverage、單元測試、性能測試、動態內存檢測、SDK打包發布。CI負責人需要:
1. 提供注冊好的CI服務器tags給項目維護者。
2. 協助提供docker鏡像和確認鏡像版本。
3. 提供同樣功能的CI腳本樣例給項目維護者。

流程設計如下

Gitlab CI介紹

文章目錄

  • Gitlab CI流程設計與思考
    • repo添加ci完整流程
    • 流程設計如下
  • Gitlab CI介紹
      • 1. reference
      • 2. pipeline設計實例:
        • 2.1整體pipeline設計:整個流程分為以下四個階段
        • 2.2 CI build pipeline 設計
        • 2.3 CI test pipeline 設計:接口測試
        • 2.4 CI release pipeline 設計:打包發布

1. reference

https://meigit.readthedocs.io/en/latest/gitlab_ci_.gitlab-ci.yml_detail.html#gitlab-ci-yml

https://docs.gitlab.com/ee/ci/yaml/index.html

https://zhuanlan.zhihu.com/p/122313251

2. pipeline設計實例:

2.1整體pipeline設計:整個流程分為以下四個階段

stages:- build- test- release- deploy

2.2 CI build pipeline 設計

depth_linux-x86_64-build:image: 192.168.xxx.xxx:12345/ubuntu16.04-x86_64:v2stage: buildscript:- chmod a+x script/depth_build/build_x86_64.sh- ./script/depth_build/build_x86_64.shrules:- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'when: alwaysartifacts:name:  "$CI_COMMIT_REF_NAME"expire_in: 1 weekpaths:- build - linux-x86_64tags:- linux-x86_64

以上工作對應的解釋如下

job:整個項目的驅動從這里開始image: docker鏡像及其版本與位置stage: 當前job所屬階段script:當前job驅動腳本,可以簡化job復雜度rules:- if: rules觸發條件when: rules觸發狀態artifacts:name:  "$CI_COMMIT_REF_NAME"//artifacts:name
name指令允許你對artifacts壓縮包重命名,你可以為每個artifect壓縮包都指定一個特別的名字,這樣對你在gitlab上下載artifect的壓縮包有用expire_in: 1 week //artifacts:expire_in 用于設置 artifacts 上傳包的失效時間. 如果不設置,artifacts 的打包是永遠存在于 gitlab上 的。當指定 artifacts 過期時間的時候, 在該期間內,artifacts 包將儲存在 gitLab 上。并且你可以在 job 頁面找到一個 keep 按鈕,按了以后可以覆蓋過期時間,讓 artifacts 永遠存在。過期之后,用戶將無法訪問到 artifacts 包。時間的例子如下:
'2h20min'        '6 mos 1 day'          '3 weeks and 2 days'paths:- linux-x86_64 //path位置位于${CI_PROJECT_DIR},位于gitlab自己部署的服務器上tags:- linux-x86_64 //這里是該job運行的平臺,比如可以是RK3399等,根據實際需要設置

2.3 CI test pipeline 設計:接口測試

depth_linux-x86_64-interface:image: 192.168.xxx.xxx:12345/ubuntu16.04-x86_64:v1stage: testneeds: ["depth_linux-x86_64-build"]script:- chmod a+x script/depth_test/interface_x86_64.sh- ./script/depth_test/interface_x86_64.sh rules:- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'when: alwaysartifacts:name:  "$CI_COMMIT_REF_NAME"expire_in: 1 weekpaths:- DepthMagicTest.json tags:- linux-x86_64

以上工作對應的解釋如下

job:測試job名稱。可以根據實際起名字image: docker——imagestage: 當前階段needs:依賴。一般是對前一個stage的依賴,當依賴job完成時候,開始啟動當前jobscript:簡化當前jobrules:- if: rules觸發條件when: rules觸發狀態artifacts:name:  "$CI_COMMIT_REF_NAME"expire_in: 1 weekpaths:- 具體測試項tags:- 測試平臺

2.4 CI release pipeline 設計:打包發布

depth_release_linux-x86_64:image: 192.168.xxx.xxx:12345/ubuntu16.04-x86_64:v5stage: releaseneeds: ["depth_linux-x86_64-build"]script:- chmod a+x script/depth_release/pack_linux-x86_64.sh- ./script/depth_release/pack_linux-x86_64.sh- curl --upload-file depth-xxx-sdk-linux-x86_64-*.tar.gz -u $NAS_LOGIN smb://$nas_ip/$release_x_path/depth-xxx-sdk/release/linux-x86_64/rules:- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'when: manualtags:- linux-x86_64

以上工作對應的解釋如下

release job:image: docker——image運行環境stage: release階段needs: ["depth_linux-x86_64-build"]//依賴jobscript:具體執行美容rules:rules遵循規則tags:- linux-x86_64

總結

以上是生活随笔為你收集整理的Gitlab CI(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。