[譯] 如何使用 CircleCI for GitHub Pages 持續部署

萬有_青年發表於2019-01-18

今天我將介紹如何在GitHub頁面上使用 CircleCI 進行持續部署。

CircleCI 是一個很像 Travis CI 的CI工具。 但他們的配置有很多不同之處。 你可能會發現, 首先使用它很麻煩。

如果你太忙,不能閱讀官方文件。 本教程對您作為快速備忘,非常有幫助。

1. 註冊 CircleCI

開啟 CircleCI 官方網站,使用您的GitHub帳戶登入。

2. 啟動儲存庫

檢查要在 CircleCI 上管理的儲存庫的開關按鈕。

3. 編寫 config.yml

在專案根目錄或 .circleci 目錄中為 CircleCI 建立名為 config.yml 的配置檔案首先,您需要設定構建環境,這取決於您的專案語言和依賴項:

version: 2jobs:  build:    docker:      - image: circleci/node:latest複製程式碼

如果要指定觸發 ci 任務的某個分支,可以使用過濾器:

filters:  branches:    only: master複製程式碼

然後,您可以配置要在虛擬機器上執行的命令,命令可以按步驟劃分:

steps:  - run:    name: Install some stuff    command: <
do-some-stuff>
- run: name: Deploy if tests pass and branch is Master command: <
my-deploy-commands>
複製程式碼

我正在使用 Gatsby 來構建我的 doc 站點。這是一個完整的模板:

version: 2jobs:  build:    docker:      - image: circleci/node:latest    filters:      branches:        only: master    steps:      - add_ssh_keys:          fingerprints:            - "xx:xx:xx:xx:11:22:33:44:55:66:77:88:99:xx:xx:xx"      - checkout      - restore_cache:          keys:          - dependencies-          # fallback to using the latest cache if no exact match is found          - dependencies-      - run:          name: Install          command: yarn install      - save_cache:          paths:            - node_modules          key: dependencies-      - run:          name: Gatsby build site          command: yarn build      - run:          name: Prepare shell commands          command: cp .scripts/gatsby-deploy.sh ../ &
&
chmod +x ../gatsby-deploy.sh - run: name: Run deploy scripts command: ../gatsby-deploy.sh複製程式碼

4. 寫入 CircleCI 的許可權

對我來說,我必須授權 CircleCI 自動更新 gh 頁面 。在獲得讀取許可權之前生成的預設 ssh 金鑰。所以我們必須手動新增讀/寫部署金鑰。

生成一個新的ssh金鑰

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"複製程式碼

按照命令列互動,您將獲得兩個 ssh 金鑰檔案id_rsa和id_rsa.pub(記得更改預設檔案位置或您的本地ssh金鑰將被覆蓋)。

上傳ssh金鑰

1.通過https://github.com/<
your_name>
/<
your_repo>
/settings/keys上傳您的GitHub repo設定上的id_rsa.pub。

2.跳轉到https://circleci.com/gh/<
your_name>
/<
your_repo>
/edit#ssh並新增您剛剛建立的私鑰id_rsa。

  在主機名欄位中輸入github.com,然後按 提交按鈕。並新增您剛剛建立的私鑰id_rsa。 在主機名欄位中輸 入 github.com, 然後按提交按鈕。

將ssh金鑰新增到配置檔案中

使用add_ssh_keys設定剛剛新增的ssh金鑰,以便在執行部署指令碼時啟用它。

- add_ssh_keys:    fingerprints:      - "xx:xx:xx:xx:11:22:33:44:55:66:77:88:99:xx:xx:xx"複製程式碼

5. 編寫 deploy.sh shell 指令碼

現在 CircleCI 獲得了寫入您的儲存庫的許可權,您可以使用任何 git 命令來操作您的儲存庫:

git pullyarn buildgit checkout gh-pages# Add site files...git push複製程式碼

6. 開始測試並享受它

就這樣。你現在很高興。拿起一杯咖啡坐下來觀看 CircleCI 跑。

參考

來源:https://juejin.im/post/5c41de1b51882525ea108983

相關文章