GitLab CI/CD課程21

Demo Overview & Node.js Project Overview

ZONGRU Li
Aug 12, 2022

前面都是介紹GitLabPipeline基礎

Pipeline內容也只是echo而已,但是已有一個基礎結構:

接著要來針對程式做真實的程式ProjectPipeline建立

但是在那之前先對該程式專案建立一些基礎了解(尤其我不是那麼懂nodejs)

這邊是目前的GitLab Repo內容:

進到app目錄內看到主要的程式內容:

最後將會完成的Pipeline會是如下:

  • SAST(Static Application Security Testing),i.e. SAST不執行程式的方式來分析程式碼本身

首先拿EC2clone該專案來試著跑看看了解如何運作:

但是首先注意到:

先進到上面藍色的Add SSH key頁面來到:

先依據上面解說learn more連結來到

LINK

會來到建立key-pair頁面:

LINK
#建立key-pair指令如下(後面comment隨意打):
ssh-keygen -t rsa -b 2048 -C "Hello"

多出:

複製上面的pub key內容貼到gitlab頁面去建立

複製該程式ProjectSSH位置:

#不知道為何這個EC2機台自帶git,所以也不用裝了,接著就是嘗試clone:
git clone {上述SSH的url}

這邊也順便拉到本機用VScode來看看結構:

暫時先移除一些課程後面才會需要的檔案,留下:

程式主要都在app目錄內:

回過頭來看到:

然後也有Dockerfile

接著在EC2機台上面試著跑看看該程式怎麼運行

先進到程式目錄app那層底下:

首先

#先把必要的dependency裝好,執行:
npm install

此時該程式就可以運行

#執行以下指令啟動程式:
npm start

可能npm安裝的版本不吃"1.0"這樣的設定

也就是要調整package.json內:

再次執行看到:

所以另外在安裝npm express

#執行安裝npm的express:
npm install express

再次執行啟動

終於成功!

這時候稍微調整一下該EC2機台的防火牆,3000 PORT暫時開一下來看看

然後就可以連上去該機台IP公開位置的3000 PORT看到:

然後putty就可以ctrl+c關掉該應用程式:

#接下來就試跑Unit Test:
npm test

看起來沒吃到套件

這時候我才注意到:

雖然package.json沒問題,但是看起來也是缺少jest測試套件:

#所以另外再執行安裝jest:
npm install jest

再次執行測試看看:

#再裝jest-junit:
npm install jest-junit

再次跑測試:

此時會多出這個檔案:

以上大概就是該nodejs程式專案的運行方式

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet