持續集成 CI
- 在持續集成環境中,開發人員將會頻繁的提交代碼到主幹。這些新提交在最終合併到主線以前,都須要經過編譯和自動化的測試流程進行驗證。白話文說 就是讓代碼自動編譯,合併,並進行測試
持續交付 CD
- 持續交付就是講咱們的應用發佈出去的過程。這個過程能夠確保咱們儘量快的實現交付。這就意味着除了自動化測試,咱們還須要有自動化的發佈流,以及經過一個按鈕就能夠隨時隨地實現應用的部署上線。白話文說 就是一鍵部署上線
devops 持續部署平臺前端
大體的開發到部署上線流程
- 統一代碼倉庫經過分支管理合並主幹svn或者git
- 自動化構建工具,編譯、部署、測試、監控、本機開發上線環境。 FIS3/Webpack/jdists(區分上線環境和開發環境)/package.json/chai/supertest/mocha/selenium-webdriver
- 持續集成平臺。Jenkins、Travis CI
- 持續部署工具。 rsync、shelljs、yargs
端口衝突shell
-
查看端口 lsof -i:80
node
-
解決端口衝突webpack
#!/bin/bash
base_port="80"
check_port=`lsof -i:$base_port | awk '{print $2}'`
while [ "$check_port" != "" ]
do
let base_port=base_port+1
check_port=`lsof -i:$base_port`
done
echo $base_port
複製代碼
具體用法參考見 npm npm init
npm install shelljs --save-dev
git
#!/usr/bin/env node (where node)
const shell = require("shell.js");
shell.mkdir("")
複製代碼
-
標準開發 基本標配web
- 開發機器 :開發環境、git/svn、開發工具(vscode)
- 代碼倉庫 :gitlab hooks鉤子交給jenkins
- CI平臺 :Jenkins webpack編譯 私鑰 產生dist扔給QA
- QA機器 :公鑰
- 幾個關鍵的點
- ci機器上部署Jenkins
- 執行測試 npm run test /npm run build
- cd交付代碼測試 獲取上線權限
-
前端模塊化shell
- webpack 使用的是 commonjs規範 將全部js直接打包到一個文件裏
- AMD 是等全部模塊加載過來
define(['dep1','dep2'],function(dep1,dep2){
return function(){};
})
複製代碼
- CMD 同步執行 先把 require裏的東西正則匹配到 先把全部的js請求回來
- UMD 同時支持 CMD AMD COMMONJS
複製代碼
- importScript 支持跨域 import 不支持跨域