久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    gitlab和jenkins做持續集成構建教程

     nullPlus 2023-02-03 發布于浙江

    背景介紹

    上一個輪回,我花了三篇文章的時間著重向大家介紹了在條件有限的情況下,如何優雅地進行前端發版和迭代。慶七一,熱烈慶祝香港回歸,人民生活水平越來越好,昨天上午我自掏腰包買了臺服務器,決定由冷兵器腳本編程部署時代進入熱武器CICD 時代。

    而今,山河無恙,飛機腳本終于不用再寫第二遍了,敬禮!

    gitlab & jenkins: 我代表 CICD 接管構建部署,你們可以下崗,我們上崗!

    手工苦力勞動:那我走。。。。。

    需求分析

    我們在處理計算機問題時,應該去思考這樣一個理念,“能坐著就不站著,能躺著就不坐著,懶對于程序員來說是一種美德,應該發揚光大”。關于前端發版這塊的內容,就很雞肋,食之無味棄之可惜。這塊東西很死板,沒什么成長的,沒什么經驗的朋友可能就是一通 npm 命令,再一頓拖拉彈拽 GUI 操作,然后完事,稍微有點覺醒或者被動覺醒的,可能會抽象出一些計算機邏輯釋放一些腳本技能做這件事,再者之,公司老板家里條件好的或者是 VP、CTO 重視的,可能會搞一套比較規范的 DevOps 流程,本質還是在與時間賽跑,把一些低優先級或者阻塞工作流的事情,交給對應的擅長做這件事的法器去做,剩下的時間,大家該劃水的劃水,該學習的學習,該找對象的找對象,勸君莫惜金縷衣,勸君惜取少年時,花開堪甚至須折,莫待無花空折枝。

    環境要求

    可能眼尖的同學會看到我上圖中有個 SecoClient,它是沸騰廠開發的一個偉屁恩客戶端,由于 gitlab 服務器是在另一套體系環境,所以要連上它,但是坑比的點在于,連上它以后,在公司的其他同事將無法訪問我們連接網線的局域網環境,在家的話那就更不行了,抱著試試看的心態去試試連上 secoclint 臨時分配的網絡可以進行局域網訪問嘛,發現也還是不行,實屬無奈,何以解憂,唯有砸錢。

    官網寫的配置要求是:

    Minimum hardware requirements:

    256 MB of RAM

    1 GB of drive space (although 10 GB is a recommended minimum if running Jenkins as a Docker container)

    Recommended hardware configuration for a small team:

    4 GB+ of RAM

    50 GB+ of drive space

    這個很重要,如果你是買了云廠商 1G1 核的迷你型機,那我勸你別往下搞了,卡成翔警告。2G2 核勉強磕磕碰碰能跑, 最好是給一個 4G4 核的機子,那就差不多了。

    樓主我選的是 2G2 核,外加配了點虛擬內存,不是很理想,如果不是 secoclient 的原因,我其實更傾向于用 Linux 去做這件事。

    Jenkins 環境安裝與配置

    安裝

    這里是以 Windows 下的開發環境為例的,所以我會介紹下 windows 的,Linux 后面也會提及一下。

    安裝 jenkins 的前置條件是電腦有 JAVA 運行的環境,安裝 jdk 也很講究,不是所有版本都可以,你可以簡單地記一下 8,11,17 這三個,具體地參見:https://www./doc/administration/requirements/java/

    這里介紹下沸騰廠的鏡像,有需要的君可自取,https://mirrors./home, 對于的 jdk 下載文件在這里:https://mirrors./java/jdk/

    具體地安裝就是一路火花帶閃電地 next,然后配置 JAVA_HOME,例如我的就是C:\Program Files\Java\jdk-11.0.1, 再然后追加%JAVA_HOME%\bin;到 path,最后配置 CLASSPATH,記不住那一串 jar 包,寫個"."也是 OK 的。

    Jenkins 安裝教程官網已經寫的非常詳細了,我不再贅述,請看這里:https://www./doc/book/installing/windows/

    如果你是 Linux 用戶,可以看我很久以前積灰的文章, Linux 下安裝 JDK: https://www.cnblogs.com/cnroadbridge/p/15221231.html, Linux 下安裝 Jenkins: https://www.cnblogs.com/cnroadbridge/p/15221273.html, 當然,這里既然你已經選擇用 Linux 了,那為什么不用 Docker 呢?嗯,這個我后面再介紹。

    jenkins 插件配置

    這里簡單粗暴一點地做法就是點擊推薦安裝對應地插件,然后裝一下 NodeJS、Publish Over SSH、Git plugin 這幾個插件,對應前端構建綽綽有余了。如果你插件安裝不上,網上一種做法是切換成清華源啥的,你可以試一下,我覺得更好地做法是,我建議你科學 fq。

    通用配置

    Step 1: 點擊首頁的 Manage Jenkins 進行配置

    Step 2: 點擊 Configure System 進行系統配置

    具體的關注以下幾點, Jenkins Location 里的 Jenkins URL 填你的公網 IP,郵箱隨便填個如果你不用郵件服務的話,

    gitlab 可仿照如下配置:

    publish over

    Step 3: 點擊 Global Tool Configuration 進行全局工具配置

    這里你主要關注下 git 就好, 如果你不配置,很有可能拉不下來,所以這里點一下

    Step 4: 點擊 Security 下的 manage credentials

    你可以仿照下圖,添加適合你的 gitlab API token 或者賬戶密碼

    gitlab 的 API TOken 是這樣的

    好了,到這里安裝配置相關的大致就 OK 了。

    結合 gitlab 進行持續構建

    這里我以構建集成一個 vue 項目為例--臥龍機構端,向大家介紹如何結合 Jenkins 進行持續構建。

    Step1:創建項目

    Step2:填寫配置

    這里描述隨便寫點東西吧。

    gitlab 服務器配置

    gitlab 倉庫配置

    構建前對服務器做點事

    構建命令

    構建命令后執行, 最后點擊保存就好了,如果你點應用的話,其實就是暫存的意思。

    最后點擊 build now 就可與開始構建了

    點擊構建歷史可以看到相關的歷史, 點擊控制臺,可以看到相關的構建日志,這方便了回溯,定位問題的根源。

    好的,至此教程差不多就接近尾聲了, 你學會了嗎?

    介紹一個新思路

    我本意是想搞一個去中心化jenkins,畢竟公司給發的美帝聯心想有20GB內存,足夠撐起jenkins的一片天,但是問題就在于,之前提到的secoclient連上了以后,我就與我的同事失聯了,雖然我在我本地可以搞持續集成,但是他們不可以訪問的到,獨樂樂不如眾樂樂,讓對應的同事共享下我的Jenkins,我們對應的開發人手養一只Jenkins,好像也不太現實,畢竟windowser。emmm,如果你是mac或者linux,那完全是可以搞去中心化的Jenkins的,人手養一只Jenkins,用到的時候放出來,潤潤潤,不用的時候把它停掉,豈不是美哉,我簡單地貼一份配置,具體的有興趣的讀者看這里:https://hub./_/jenkins

    docker-compose.yml

    version: "3.7"


    services:
      jenkins:
        image: jenkinsci/blueocean
        ports:
          - 8080:8080
          - 50000:50000
        networks:
          - jenkins
        volumes:
          - jenkins:/var/jenkins_home
          - /var/run/docker.sock:/var/run/docker.sock


    networks:
      jenkins:


    volumes:
      jenkins:

    FAQ

    • 文中提及的上期的三篇文章是什么?

      • 基于 bat 腳本的前端發布流程設計與實現:https://www./ataola/blog/nul1i4

      • 使用 Shell 腳本優化 Linux 服務器上部署流程:https://www./ataola/blog/ece4x8

      • 基于 bat 腳本的前端發布流程的優化:https://www./ataola/blog/mye713

    • 密碼忘記了怎么辦?找到.jenkins目錄,例如C:\ProgramData\Jenkins\.jenkins, 然后打開config.xml, 將 <useSecurity>false</useSecurity>,然后重啟,進入到Jenkins現在暫時是沒有密碼的,你可以再次設置下就OK了。

    • 內存不足怎么辦?

    全局安裝下cross-env和increase-memory-limit, 然后package.json追加scripts "fix-memory-limit": "cross-env LIMIT=10240 increase-memory-limit"

    • vite2.7.x 打包遇到 (vite:css-post) renderChunk error 怎么辦?

    卸載 vite,升級到最新版可破此功.

    • 改成清華源,還是裝不上插件怎么辦?

    建議自強,嗯,科學地自強哈.

    • 那你為什么不直接用 gitlab runner 呢?

    主要還是各方面受限,因為對應搞 gitlab 服務器的人,他沒裝 gitlab runner,所有也無法運行一些 gitlab.yml 配置,進行 CICD 構建。如有你有興趣了解,具體的可以看這里,https://about./features/continuous-integration/

    最后

    希望我老板如果不小心看到這篇文章,能感動地給我漲點薪水吧,因為自費買服務器我這都快吃不起東北大米了,23333333。

      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 精品国产迷系列在线观看| 在线视频中文字幕二区| 一本av高清一区二区三区| 亚洲人成电影在线天堂色| 亚洲综合色婷婷在线观看| 久草热8精品视频在线观看| 亚洲 都市 无码 校园 激情| 蜜臀AV在线播放一区二区三区 | 国产精品未满十八禁止观看| 黄又色又污又爽又高潮| 人妻少妇精品久久久久久| 亚洲国模精品一区二区| 国产精品麻豆成人AV电影艾秋| 国产精品自在线拍国产手机版| 亚洲一卡2卡3卡4卡精品| 一区二区福利在线视频| 亚洲男女内射在线播放| 国产四虎永久免费观看| 精品日本一区二区三区在线观看| 国产精品麻豆中文字幕| 国内丰满熟女出轨VIDEOS| 色欲国产精品一区成人精品| 中文字幕精品无码一区二区三区| 欧美精品一区二区在线观看播放 | 99国精品午夜福利视频不卡99| 欧美精品亚洲精品日韩专区一乛方| 精品国产成人国产在线观看| 精品久久久久成人码免费动漫| 东京热大乱系列无码| jizzjizz少妇亚洲水多| 18精品久久久无码午夜福利| 日韩丝袜欧美人妻制服| 久久精品国产99久久久古代| 一二三四在线视频观看社区| 性欧美牲交在线视频| 国产精品中文字幕久久| 人妻 日韩 欧美 综合 制服| 国产成人一区二区三区视频免费| 成人看的污污超级黄网站免费 | 亚洲午夜成人精品电影在线观看| 宅男在线永久免费观看网|