1. 程式人生 > >利用travis自動化構建與部署(文件專案)

利用travis自動化構建與部署(文件專案)

背景

保持網站上文件的最新性有比較重要的意義, travis ci 提供了免費的解決方案,本文基於 latex 構建+ aliyun oss 部署對此作了嘗試。
專案連結為 https://travis-ci.org/zhaofeng-shu33/lab2c_presentation_template

構建

travis 本身不提供 texlive 的編譯環境,需要用指令碼安裝,為減少每次下載大量包的延時,可採用 cache 的配置方法。為此在 .travis.yml 配置檔案中通過
判斷 tlmgr 有沒有安裝來區分是否是首次構建,從而決定是否需要下載texlive並安裝。

構建時遇到的問題

texlive 不能很好的解決包依賴的問題,一方面安裝了一些在編譯過程中沒有用到的巨集包,另一方面會因為基本 collection 裡面沒有安裝的包而報錯。我們採用比較笨的方法是用 tlmgr 安裝缺失的巨集包。

部署

aliyun oss 部署有多種程式語言的sdk可供選擇,這裡我們使用python sdk。為此需要下載 oss2 的包,同樣用 cache 來加快以後的部署速度。
為確保 appsecret 的安全性,採用在travis 專案設定裡面配置環境變數的方法,有自動加密的功能。使用時像讀取普通環境變數一樣讀取即可。