Hands-on Lab (4-2) - 配置Gogs的Webhook

文章目录

  • 部署Gogs+PostgreSQL
  • 配置Webhook
    • 导入Git Repo到Gogs
    • 根据Git Repo部署应用
  • 注意事项

部署Gogs+PostgreSQL

  1. 执行命令,创建项目和Gogs和PostgreSQL应用资源。其中所有参数都在下面的gogs-persistent-template.yaml文件中。
$ oc new-project gogs-postgresql
$ oc new-app -f https://raw.githubusercontent.com/liuxiaoyu-git/cicd-software-templates/master/gogs-persistent-template.yaml
--> Deploying template "gogs-postgresql/gogs" for "https://raw.githubusercontent.com/liuxiaoyu-git/cicd-software-templates/master/gogs-persistent-template.yaml" to project gogs-postgresql
 
     gogs
     ---------
     The Gogs git server (https://gogs.io/)
 
     * With parameters:
        * APPLICATION_NAME=gogs
        * GOGS_VOLUME_CAPACITY=1Gi
        * DB_VOLUME_CAPACITY=1Gi
        * Database Username=gogs
        * Database Password=gogs
        * Database Name=gogs
        * Database Admin Password=S2DGYkMF # generated
        * Maximum Database Connections=100
        * Shared Buffer Amount=12MB
        * Database version (PostgreSQL)=10
        * Gogs Version=latest
        * Installation lock=true
        * Skip TLS verification on webhooks=true
 
--> Creating resources ...
    serviceaccount "gogs" created
    service "gogs-postgresql" created
    deploymentconfig.apps.openshift.io "gogs-postgresql" created
    service "gogs" created
    route.route.openshift.io "gogs" created
    deploymentconfig.apps.openshift.io "gogs" created
    imagestream.image.openshift.io "gogs" created
    persistentvolumeclaim "gogs-data" created
    persistentvolumeclaim "gogs-postgres-data" created
    configmap "gogs-config" created
--> Success
    Access your application via route 'gogs-gogs-postgresql.apps.cluster-beijing-78c7.beijing-78c7.example.opentlc.com'
    Run 'oc status' to view your app.
  1. 查看部署情况,当gogs和postgresql的Pod都Running后,用浏览器打开gogs的Route访问地址。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第1张图片
  2. 在Gogs的初始界面中点击Sign In,然后gogs/gogs的信息注册一个用户,最后登录即可。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第2张图片

配置Webhook

导入Git Repo到Gogs

  1. 用gogs/gogs的用户名和密码登录gogs。
  2. 点击界面右上方的“+”,然后在下拉菜单中进入“New Migration”。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第3张图片
  3. 在“New Migration”对话框中提供如下Repo配置,然后点击“Migration Repository”按钮。
    Clone Adress :https://github.com/sclorg/nginx-ex.git
    Repository Name:nginx
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第4张图片
  4. 导入完成后可以看到名为nginx的Git Repo,此时nginx的Repo的访问地址是http:///gogs/nginx
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第5张图片

根据Git Repo部署应用

  1. 进入OpenShift控制台Developer视图。
  2. 在点击Project的下拉框中点击“Create Project”,然后创建nginx的项目。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第6张图片
  3. 在OpenShift控制台的Topology中进入“From Catalog”。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第7张图片
  4. 找到“Nginx HTTP server and a reverse proxy (nginx)”后进入,然后在右侧窗口中点击“Create Application”。Hands-on Lab (4-2) - 配置Gogs的Webhook_第8张图片
  5. 在“Create Source-to-Image Application”页面中提供以下配置,其它是默认配置即可,完成后点击Crate按钮。
    Git Reop URL:http:///gogs/nginx
    Git Type:GitHub
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第9张图片
  6. 点击Topology中的NGINX图标,然后在右侧窗口先点击nginx的Route链接,查看nginx应用页面。然后再点击Builds的bc图标右侧的nginx链接,查看BuildConfig配置。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第10张图片
  7. 在nginx的Build Config Details页面中查看Webhoos,然后点击GitHub对应的“Copy URL with Secret”,复制GitHub的Webhook的地址。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第11张图片
  8. 进入Gogs的nginx Repo,然后进入Setting标签,再点击Add WebHook按钮,最后选择Gogs即可。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第12张图片
  9. Add Webhook界面中将Webhood地址复制到Payload URL中,然后点击“Add Webhook”完成设置。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第13张图片
  10. 修改Gogs中niginx Repo的index.html文件内容,提交后在OpenShift控制台查看已经有一个新的nginx的Build了。完成后确认页面已经更新。
    Hands-on Lab (4-2) - 配置Gogs的Webhook_第14张图片
  11. 此时可再次从Gogs中nginx Repo的Settings查看Webhook的配置。在下方的Recent Deliveries中查看触发的Webhook。
    在这里插入图片描述

注意事项

在部署Gogs的时候需要确认https://raw.githubusercontent.com/liuxiaoyu-git/cicd-software-templates/master/gogs-persistent-template.yaml文件中以下部分,其中SKIP_TLS_VERIFY参数需要设为true,否则在Gogs调用的Webhook的时候会出现以下错误。

- name: SKIP_TLS_VERIFY
  displayName: Skip TLS verification on webhooks
  description: Skip TLS verification on webhooks. Enable with caution!
  value: "true"

Hands-on Lab (4-2) - 配置Gogs的Webhook_第15张图片

你可能感兴趣的:(CICD,gogs,webhook,cicd)