本文介绍 GitHub 仓库管理的项目如何在 Zadig 上快速搭建,下面以 Voting 项目为例,该项目包含 Python, Redis, Postgres, Node.js, and .Net 等相对典型的微服务应用程序组合。以下步骤包含从 Code 到 Ship 的整个过程的演示。

GitHub

本案例所用代码及配置 fork 自 项目案例源码,主要包含:

新建 GitHub OAuth 应用程序

  1. 个人账号下的代码库接入: 可以通过点击用户名 -> Settings -> Developer settings -> OAuth Apps 来新建应用程序。
  2. GitHub Organization 下的代码仓库接入: 可以通过点击 Organization Settings -> Developer settings -> OAuth Apps 来新建应用程序。

下面以 GitHub Organization 为例,如下所示。

github

github

配置 GitHub OAuth 应用程序

github

在新建应用程序页面,你需要进行如下步骤:

获取 Client ID、Client Secret 信息

应用创建成功后,GitHub 会返回应用的基本信息,点击 Generate a new client secret 生成 Client Secret

github

此时页面包括完整的 Client IDClient Secret

github

将 Client ID、Client Secret 集成到系统

切换到 Zadig 系统,管理员依次点击系统设置 -> 集成管理 -> 代码源集成 -> 点击添加按钮。

github

依次填入如下已知信息:

信息确认无误后点击 前往授权,耐心等待,此时会系统会跳转到 GitHub 进行授权。

github

点击授权按钮,同意授权后,GitHub 会跳转到 Zadig 系统,至此 GitHub 集成完毕。

进入 Zadig 系统,新建项目 voting

onboarding-1

这里我们需要为以下 5 个服务添加服务配置:

并为以下三个业务服务添加构建以支持持续交付:

Zadig 提供两种方式管理这些模板:

这里,我们使用代码仓导入的方式。案例所需 YAML 配置位于 koderover/zadig 仓库的 freestyle-k8s-specifications 文件目录中,现在要做的就是把它们导入。

onboarding-5

vote 服务为例,在构建脚本中填写以下代码:

cd $WORKSPACE/zadig/examples/voting-app/<service-directory>
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE

重复以上配置服务构建过程,完成 voteworkerresult 的构建配置,注意根据不同的服务修改脚本中的 <service-directory>参数。

onboarding-6

onboarding-7

workflow-1

workflow-2

workflow-3

workflow-4

workflow-5vote 页面: workflow-6result 页面: workflow-7

添加触发器,使得代码 Push 或者 Pull Request 都触发 result,vote,worker 三个服务的重新构建和部署:

trigger-1

trigger-2

trigger-3

trigger-4

提交 GitHub PR 修改源代码,交换 vote 服务中 CATSDOGS 的背景颜色。

trigger-5

trigger-6

trigger-8