iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
SideProject30

往後端邁進的菜前端系列 第 7

Build stage 和 產出的 artifact

  • 分享至 

  • xImage
  •  

Build

https://ithelp.ithome.com.tw/upload/images/20230922/20162639aFf57PFiR4.png
來源:https://www.redhat.com/zh/topics/devops/what-is-ci-cd

從上圖可見,CI Pipeline 的第一個 Stage/Job 多半都會是 Build,透過 Build 將你的程式從無法運行的 Source Code 轉變成一包只要 Deploy 至 Server 之後即可運行的程式。

如果有相依其他的 Library,需要抓取相關的 Packages 的指令,讓 GitLab Runner 幫你自動執行這些指令,將 Source Code 轉變成程式看得懂語言。

script:
		- npm install
        - export NX_APP_STAGE=$STAGE
		- yarn install --frozen-lockfile
		# 不會每次都自動更新 yarn.lock 的版本

Artifacts

那我們打包產生出來產生的檔案該放到哪邊呢?

script:
        - echo "Deploying to dev"
        - echo "BUILD_VERSION=hello" >> file.env
    artifacts:
        paths:
            - file.env
# 我將BUILD_VERSION=hello存到 file.env中

透過 script 執行後將檔案上傳到 GitLab Server 上做封存,可以看到在 dev 階段我們可以下載剛剛儲存的 artifacts 檔案。
https://ithelp.ithome.com.tw/upload/images/20230922/20162639XhaviZzPdT.png

另外你也可以設定檔案的保存期限(使用 expire_in),如果是同一個 pipeline 不同 stage / job 之間也可以傳遞此檔案。

假設,是不同的 pipeline 呢?
我們則可以使用 Cache, 當第二次同一個工作再次執行後,因為已經有快取內容了,這時就可以縮短很多時間。

 cache:
     key: ${CI_COMMIT_REF_SLUG}
     paths:
         - node_modules/
         - .next/cache/

參考文章:


上一篇
CI/CD Pipeline -(2)
下一篇
產出 artifact 之後呢?
系列文
往後端邁進的菜前端30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言