[译] 如何使用 CircleCI for GitHub Pages 持续部署

栏目: 服务器 · 发布时间: 5年前

内容简介:今天我将介绍如何在GitHub页面上使用CircleCI 进行持续部署。CircleCI 是一个很像Travis CI 的CI工具。 但他们的配置有很多不同之处。 你可能会发现, 首先使用它很麻烦。如果你太忙,不能阅读官方文档。 本教程对您作为快速备忘,非常有帮助。

今天我将介绍如何在GitHub页面上使用CircleCI 进行持续部署。

CircleCI 是一个很像Travis CI 的CI工具。 但他们的配置有很多不同之处。 你可能会发现, 首先使用它很麻烦。

如果你太忙,不能阅读官方文档。 本教程对您作为快速备忘,非常有帮助。

1. 注册 CircleCI

打开CircleCI 官方网站,使用您的GitHub帐户登录。

2. 启动存储库

检查要在 CircleCI 上管理的存储库的开关按钮。

3. 编写 config.yml

在项目根目录或 .circleci 目录中为 CircleCI 创建名为 config.yml 的配置文件 首先,您需要设置构建环境,这取决于您的项目语言和依赖项:

version: 2
jobs:
  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: 2
jobs:
  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 pull
yarn build
git checkout gh-pages
# Add site files...
git push
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

哥德尔、艾舍尔、巴赫

哥德尔、艾舍尔、巴赫

[美] 侯世达 / 严勇、刘皓明、莫大伟 / 商务印书馆 / 1997-5 / 88.00元

集异璧-GEB,是数学家哥德尔、版画家艾舍尔、音乐家巴赫三个名字的前缀。《哥德尔、艾舍尔、巴赫书:集异璧之大成》是在英语世界中有极高评价的科普著作,曾获得普利策文学奖。它通过对哥德尔的数理逻辑,艾舍尔的版画和巴赫的音乐三者的综合阐述,引人入胜地介绍了数理逻辑学、可计算理论、人工智能学、语言学、遗传学、音乐、绘画的理论等方面,构思精巧、含义深刻、视野广阔、富于哲学韵味。 中译本前后费时十余年,......一起来看看 《哥德尔、艾舍尔、巴赫》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试