github
帳號一個vue
的項目linux
服務器travis
是基於github
的,全部只有github
的帳號能夠登陸travis
,開發者必須有一個github
的帳號,登陸後,點擊加號,開始添加項目html
點擊Manage repositories on GitHub
,前往github中選擇項目
vue
這裏github提供的兩種模式,第一種添加全部項目,第二種添加指定項目,通常咱們選擇第二種添加須要添加的項目
node
在github
的我的中心,https://github.com/settings/tokens/
路徑下,生成一個訪問令牌,添加到travis中,給travis操做倉庫的權限
linux
複製令牌內容,進入travis
中的中,找到SSH key的菜單,將令牌內容貼入,點擊Add
git
在項目根目錄下,新建.travis.yml
文件。travis要執行的自動化步驟,都須要在該文件中配置,這裏是一個最簡單的配置文件,當travis檢測到master分支代碼發生變化時,自動執行npm install和npm run buildgithub
language: node_js node_js: - 10.16.0 cache: directories: - node_modules install: - npm install before_script: script: - npm run build after_script: branches: only: - master
關於travis
的更多配置,參考阮老師的教程:npm
http://www.ruanyifeng.com/blo...
開發者在本地執行npm run build,編譯後生成dist目錄,服務器須要的也是dist目錄。travis要作的就是把dist目錄自動發送到服務器服務器
先說思路,當travis執行build生成目標文件後,travis把dist目錄提交到倉庫的指定分支,好比叫deploy分支,經過ssh自動登陸服務器,執行git pull,把deploy分支拉下來ssh
after_script: - cd ./dist - git init - git config user.name "your name" - git config user.email "your email" - git add . - git commit -m "Travis CI Auto Builder" - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:deploy - ssh your-name@xx.xx.xx.xx 'cd /your-path && git fetch --all && git reset --hard origin/deploy && git pull'
配置文件上的操做執行成功後,你的項目就多了這個高大上的標誌fetch
報錯提示通常是這樣的:
openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~\/.ssh/id_rsa -d ~/.ssh/id_rsa: No such file or directory The command "openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~\/.ssh/id_rsa -d" failed and exited with 1 during .
這個報錯狀況的出現,有多是由於在使用travis encrypt-file ~/.ssh/id_rsa --add
命令生成加密密鑰時,自動增長了轉義字符串,須要手動刪除轉義字符
生成的密鑰是這樣的:
- openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~\/.ssh/id_rsa -d
刪除轉義字符後是這樣的:
- openssl aes-256-cbc -K $encrypted_d3c25c1810a6_key -iv $encrypted_d3c25c1810a6_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d