隨著團隊程式碼的總量越來越大、引用的套件越來越多,整個CICD流程從最初建置時的20分鐘暴增到約60分鐘,因此優化速度的迫切性也明顯提升

Screen Shot 2022-04-11 at 10.26.34 AM.png

整個CICD流程中費時最久的是Build stage(約70%的時間都在build),因此優先從build stage下手

先來Review一下build stage的過程:

Dockerfile:

  1. 先把build server中的所有檔案複製到image內
  2. 執行 yarn install
  3. 執行 lerna run build
  4. 執行 yarn build
  5. 清理 client 資料夾內用不到的檔案

( 詳細可參考 在GitLab中建置CICD流程 )

FROM kbuiteam/app-env:0.0.4

WORKDIR /root/dbaegis/

COPY . .
COPY run.sh /run.sh
RUN yarn policies set-version 1.19.0 && yarn
RUN yarn build:local-dep
RUN cd packages/client/ && INLINE_RUNTIME_CHUNK=false yarn build
RUN cd packages/client/ && mv build/ .. && rm -rf * && mv ../build/ .

EXPOSE 8888
ENTRYPOINT ["/run.sh"]

優化的過程,可以從幾個面向去考慮: