开发流水线-持续集成打开空白

  • Choerodon平台版本:0.10.0

开发流水 代码仓库,分支,合并请求,gitlab上流水线显示已通过,但打开持续集成
页目却空白浏览器控制台有错误,devops-service 无任何相关日志,如何排查


该bug是由于持续集成的数据 没有状态导致的白屏,可以升级devops-service服务到0.10.4,然后调用devops-service 里面的devops-check-contoller的第一个平滑升级接口 参数0.10.4 修复持续集成的数据的状态


升级了0.10.4并post了0.10.4似乎还是白页


请求接口,status还是NULL

{
  "totalPages": 1,
  "totalElements": 2,
  "numberOfElements": 2,
  "size": 10,
  "number": ,
  "content": [
    {
      "status": "passed",
      "version": null,
      "pipelineId": 4,
      "gitlabProjectId": 2,
      "pipelineUserUrl": null,
      "pipelineUserName": "XXX",
      "gitlabUrl": "http://code.xxx.com/operation-projectdemo-v1/swj-demo-v1.git",
      "ref": "feature-projectdemo-v1-2",
      "commit": "ab1425eb5a91236267f4b80e2028b54f4cbeb739",
      "commitUserUrl": null,
      "commitUserName": "xxx",
      "commitContent": "更新 README.md",
      "latest": true,
      "pipelineTime": "16.65",
      "creationDate": "2018-10-29 08:56:38",
      "stages": [
        {
          "name": "maven-test-branches",
          "status": "success",
          "description": null,
          "finishedAt": "2018-10-29T09:15:34.715Z",
          "startedAt": "2018-10-29 17:15:11",
          "id": 1
        },
        {
          "name": "maven-build",
          "status": "success",
          "description": null,
          "finishedAt": "2018-10-29T09:48:29.023Z",
          "startedAt": "2018-10-29 17:32:14",
          "id": 4
        }
      ]
    },
    {
      "status": null,
      "version": null,
      "pipelineId": 3,
      "gitlabProjectId": 2,
      "pipelineUserUrl": null,
      "pipelineUserName": "xxx",
      "gitlabUrl": "http://code.xxxx.com/operation-projectdemo-v1/swj-demo-v1.git",
      "ref": null,
      "commit": null,
      "commitUserUrl": null,
      "commitUserName": null,
      "commitContent": null,
      "latest": null,
      "pipelineTime": "0.00",
      "creationDate": "2018-10-29 06:55:54",
      "stages": []
    }
  ],
  "empty": false
}

该条数据是因为该pipeline数据没有关联上commit信息,所以在修复的时候跳过修复,我们这边会检查代码确认没有pipeline没有关联commit的原因然后进行修复。

不知道为什么devops_gitlab_pipeline表里面同个APPId下有两条记录,有条状态是NULL,另一条是success,我把null的那条手动删了,现在页面能显示了

恩 是因为0.10.4之前 由于gitlab版本不一致,导致通过webhook存储pipeline的时候,status字段取值错误,所以导致的status为空。之前取的是detailed_status,但是gitlab的0.11版本之前的有些版本 没有这个属性,所以现在0.10.4版本改成了取status,之后新建pipeline不会出现status为空的情况了。

刚又发现 了个问题,如果不是通过po角色的用户而是通过admin帐号去创建应用的标记,会造成该 流水线失败


admin没有该组的权限, ci执行的权限必须在gitlab组内有权限,你可以在我们平台给admin在项目下分配项目所有者角色,或者手动给admin在gitlab组内添加权限

OK,明白

你好,现在又有新的疑问,图中的标识#6通过刷新操流水线重新跑通后,在平台应用版本中已经可以看到新的版本(0.0.1)


但是应用市场里的该应用只有一版本可选,难道每一次标记自动构建的镜像都要重新发布?

但我在应用发布页里并没有该项目未发布的应用

数据库看到版本0.0.1是否发布字段是NULL,这是否正常

跑完ci生成版本后,如果你需要发布出去,那就需要每次都发布,如果你不需要发布出去,就不需要发布。意思是可以只发布你想发布出去的应用版本

应用发布一次之后就成了已发布应用了,针对每个应用,可以对发布的应用版本进行修改。

表里面字段是NULL表示你这个版本没有被发布,是正常的

问题是我发不了图中的0.0.1

我明白了你的意思,就是应用发布只需要做一次,在部署的时候可以选择版本号,只是现在的情况应用市场中的版本列表里只显示最初发布时的应用版本号,实际上我已经构建过多次了,以至我误解为新的版本并没有发布成功,这个地方是不是应该把所有构建成功的版本号都列出来
1

理解完全正确。

1.每次构建都可以生成部署版本。有些是流水版本,有些是正式版本,猪齿鱼使用的是语义版本规则;
2.管理人员可以选择发布的版本,例如选择正式版本进行发布,而不是流水版本。

甘兄,多次代码合并成功构建应用后,应用市场里头此应用始终只有一个最初的版本可选,是否为BUG,观察helm库此应用已有多个包存在

这肯定是Bug,我测试一下。然后给你反馈。

  • 在每次成功构建应用之后,会生成一个版本;但是这个新生成的版本需要在“应用发布”中进行发布,才能在应用市场里面看到该应用的此版本。
  • 已发布应用的新版本发布入口:应用管理-应用发布-已发布应用-版本控制-未发布版本-勾选发布
    具体步骤如图:

我描述的不是这个地方,而是应用市场页面,看我前面的截图

应用市场中能选到的版本是已经发布的版本,版本也是需要发布之后才能选到的,这里的逻辑主要针对应用维护方一般只会发布已经测试过的版本,而不是所有的流水版本。
发布应用和版本的步骤过程如上图的描述