但是在那之前先對該程式專案建立一些基礎了解(尤其我不是那麼懂nodejs)
這邊是目前的GitLab Repo內容:
進到app目錄內看到主要的程式內容:
最後將會完成的Pipeline會是如下:
- SAST(Static Application Security Testing),i.e. SAST不執行程式的方式來分析程式碼本身
首先拿EC2來clone該專案來試著跑看看了解如何運作:
但是首先注意到:
先進到上面藍色的Add SSH key頁面來到:
先依據上面解說learn more連結來到
會來到建立key-pair頁面:
#建立key-pair指令如下(後面comment隨意打):
ssh-keygen -t rsa -b 2048 -C "Hello"
多出:
複製上面的pub key內容貼到gitlab頁面去建立
複製該程式Project的SSH位置:
#不知道為何這個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程式專案的運行方式