国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

novo / 1534人閱讀

前言

已經有阮一峰老師的持續集成服務 Travis CI 教程,為什么還要寫這篇文章?

原因有二:

文章內容有些過時

文章覆蓋度不夠,有些實踐細節沒寫出來

由于以上原因,縱然可以筆者很快在Github集成Travis?CI并成功構建,但在發布時卻踩了一些坑,折騰一波才終于發布成功。故寫下此文,旨在補充更多的細節,幫助他人少走彎路。

正文

免費購買Travis?CI應用

點擊?https://github.com/marketplace/travis-ci,登錄后免費購買(開源項目集成Travis?CI不收費)。

選擇關聯倉庫

選擇個人或組織名下需要關聯Travis?CI的Github倉庫。

已經設置過的,想進行修改,可以在Github的 Personal?settings-> Applications 中進入。

編寫CI文件

在項目根目錄下新建?.travis.yml?文件

touch .travis.yml

發布到github pages

下面展示一個可以發布到gh-pages的例子,可以稍做修改,復制粘貼使用。

該示例包含了:

指定node.js版本

使用yarn進行安裝依賴及構建

對安裝需要的依賴進行了緩存

設置了兩個不含敏感信息的環境變量

設置了一個含有敏感信息的環境變量

把構建生成的文件部署至github pages

language: node_js
node_js:
- lts/*
env:
- API_SERVER=https://easy-mock.com/mock/5c1b3895fe5907404e654045/femessage-mock PUBLIC_PATH=http://levy.work/nuxt-element-dashboard/
# 默認是yarn, 如果有yarn.lock的話
install:
- yarn
# 默認是 yarn test
script:
- yarn build
cache: yarn
deploy:
  provider: pages
  skip-cleanup: true
  keep-history: true
  local-dir: dist
  on:
    branch: master
  github-token: $GITHUB_TOKEN

下面對文件進行說明。

language: node_js
node_js:
- lts/*

第1行指定了構建環境為node.js

第2、3行指定使用node.js最新的LTS版本

env:
- API_SERVER=xxx PUBLIC_PATH=xxx

上面是設置兩個環境變量。

注意,一次構建中傳多個環境變量,必須寫在同一行,使用空格分開。

env:
- API_SERVER=xxx 
- PUBLIC_PATH=xxx

如果寫成上面的形式,則會變成兩個構建,每一個構建中只有一個環境變量。

install:
- yarn
script:
- yarn build
cache: yarn

上面指定使用yarn進行安裝依賴,安裝好后執行 yarn build?命令;?為yarn的依賴加速安裝,開啟了緩存。

下面是最關鍵的部署配置。

deploy:
  provider: pages
  github-token: $GITHUB_TOKEN
  skip-cleanup: true
  keep-history: true
  local-dir: dist
  on:
    branch: master

第2行指定部署到Github Pages,即倉庫的 gh-pages?分支,請確保倉庫的pages分支是 gh-pages?,?相關操作可以看這里

第3行指定保留構建后的文件

第4行指定每次部署會新增一個提交記錄再推送,而不是使用 git push --force

第5行指定構建后要部署的目錄

第6、7行指定 master?分支有提交行為時,將觸發構建后部署

第8行是部署需要用到的github-token,其中$GITHUB_TOKEN是變量,它可以在Travis CI個人倉庫的setting頁里設置,相關操作可以看這里

發布到npm

再給出把node.js模塊發布到npm的例子

主要是 deploy?這里有所不同

deploy:
  provider: npm
  email: 
  # api_key: travis encrypt NPM_TOKEN --add deploy.api_key --com
  on:
    branch: master
  skip-cleanup: true

api_key指的的npm的token,可以登錄npm后,在個人中心生成

因為不能泄露,所以要通過travis ci的命令行工具進行加密,執行以下命令

travis encrypt NPM_TOKEN --add deploy.api_key --com
復雜例子

下面是一個復雜的例子,也是實際用到的配置,主要是

master分支才會觸發構建

執行script命令前先讀取shell中的環境變量,并生成.env文件

構建成功后

把模塊發布到npm

把文檔發布到gh-pages

branches:
  only:
    - master
language: node_js
node_js:
- lts/*
git:
  depth: 3
install:
- yarn --frozen-lockfile
before_script: echo OSS_KEY=$OSS_KEY
OSS_SECRET=$OSS_SECRET
OSS_BUCKET=$=OSS_BUCKET
OSS_REGION=$OSS_REGION > .env
script:
- yarn build
cache: yarn
deploy:
- provider: pages
  local-dir: docs
  github-token: $GITHUB_TOKEN
  skip-cleanup: true
  keep-history: true
- provider: npm
  email: levy9527@qq.com
  api_key: $NPM_TOKEN
  skip-cleanup: true
相關操作

使用travis命令行工具加密

加密要用到travis命令行工具,如果是在travis ci?web界面設置環境變量,則可直接跳過。

下面給出mac環境下操作需要注意的點

1.安裝命令:

brew install travis

否則很可能會出現問題

2.確保在 https://travis-ci.org/ sign in with github

3.然后在項目根目錄里,執行命令

travis login —auto

4.修改git設置

vi .git/config

確保

[travis]
  slug = 是你在travis關聯的倉庫

5.添加加密環境變量

travis encrypt github-token=xxx --add deploy.github-token --com

因為筆者登錄的travis ci域名是?https://travis-ci.com,所以要帶參數 --com?,?默認是?https://travis-ci.org

通過環境變量設置GITHUB_TOKEN

首先為Travis?CI新建一個token

點擊生成新token

設置權限


復制生成的token。(記得先不要刷新或離開當前頁面,否則token就看不見了,只能重新生成)

登錄Travis CI,?進入要集成的項目設置頁。

添加環境變量GITHUB_TOKEN

注意,這里的環境變量是通過bash設置、并在.yml里讀取的,所以變量名是大寫加下劃線形式,這是bash的最佳實踐,千萬別寫成github-token

GitHub Pages

查看gh-pages分支的部署情況

進入倉庫 Settings -> Options

往下翻看,可以看到效果

因為筆者自定義了域名,所以地址不是默認的?https://xxx.github.io/xxx

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105130.html

相關文章

  • vue中如何實現的自定義按鈕

    摘要:在實際開發項目中,有時我們會用到自定義按鈕因為一個項目中,眾多的頁面,為了統一風格,我們會重復用到很多相同或相似的按鈕,這時候,自定義按鈕組件就派上了大用場,我們把定義好的按鈕組件導出,在全局引用,就可以在其他組件隨意使用啦,這樣可以大幅度 在實際開發項目中,有時我們會用到自定義按鈕;因為一個項目中,眾多的頁面,為了統一風格,我們會重復用到很多相同或相似的按鈕,這時候,自定義按鈕組件就...

    biaoxiaoduan 評論0 收藏0
  • JavaScript代碼整潔之道

    摘要:代碼整潔之道整潔的代碼不僅僅是讓人看起來舒服,更重要的是遵循一些規范能夠讓你的代碼更容易維護,同時降低幾率。另外這不是強制的代碼規范,就像原文中說的,。里式替換原則父類和子類應該可以被交換使用而不會出錯。注釋好的代碼是自解釋的。 JavaScript代碼整潔之道 整潔的代碼不僅僅是讓人看起來舒服,更重要的是遵循一些規范能夠讓你的代碼更容易維護,同時降低bug幾率。 原文clean-c...

    liaorio 評論0 收藏0
  • 前端經典面試題總結

    摘要:接著我之前寫的一篇有關前端面試題的總結,分享幾道比較經典的題目第一題考點作用域,運算符栗子都會進行運算,但是最后之后輸出最后一個也就是那么其實就是而且是個匿名函數,也就是屬于,就輸出第二和第三個都是類似的,而且作用域是都是輸出最后一個其實就 接著我之前寫的一篇有關前端面試題的總結,分享幾道比較經典的題目: 第一題: showImg(https://segmentfault.com/im...

    BlackMass 評論0 收藏0
  • 私有云那家好-六大私有云廠商詳細對比!

    對比內容UCloudStackZStackVMwareQingCloud騰訊TStack華為云Stack優勢總結?基于公有云自主可控?公有云架構私有化部署?輕量化/輕運維/易用性好?政府行業可復制案例輕量化 IaaS 虛擬化平臺?輕量化、產品成熟度高?業內好評度高?功能豐富、交付部署快?中小企業案例多全套虛擬產品及云平臺產品?完整生態鏈、技術成熟?比較全面且健全的渠道?產品成熟度被市場認可,市場占...

    ernest.wang 評論0 收藏0
  • cross-env使用記錄

    摘要:能跨平臺地設置及使用環境變量讓這一切變得簡單,不同平臺使用唯一指令,無需擔心跨平臺問題安裝方式改寫使用了環境變量的常見如在腳本多是里這么配置運行,這樣便設置成功,無需擔心跨平臺問題關于跨平臺兼容,有幾點注意 cross-env能跨平臺地設置及使用環境變量, cross-env讓這一切變得簡單,不同平臺使用唯一指令,無需擔心跨平臺問題 1、npm安裝方式 npm i --save-de...

    Michael_Ding 評論0 收藏0
  • webpack打包插件

    摘要:引入的模塊引入的使用將打包打包的拆分將一部分抽離出來物理地址拼接優化打包速度壓縮代碼,這里使用的是,同樣在的里面添加 const path = require(path); //引入node的path模塊const webpack = require(webpack); //引入的webpack,使用lodashconst HtmlWebpackPlugin = require(ht...

    ChanceWong 評論0 收藏0

發表評論

0條評論

novo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<