目录

GitLink CI/CD Demo Project(danshen/CI)

一个用于演示 GitLink / GitHub Actions 风格 CI/CD 的示例项目。

项目结构

.
├── .github/workflows/       # GitLink 流水线(轻量引擎:version / type / trigger)
│   ├── ci.yml
│   └── deploy-staging.yml
├── .GitLink/workflows/      # 与 .github/workflows 内容一致(任选其一目录保留即可,避免重复)
│   ├── ci.yml
│   └── deploy-staging.yml
├── Dockerfile
├── src/
├── tests/
├── package.json
├── package-lock.json        # 提交到 Git,CI 里 npm ci 需要
├── .gitlab-ci.yml           # 若平台支持 GitLab CI,推送后可能自动跑(视 GitLink 而定)
├── gitlink-ci-import.yml    # 轻量引擎 version:2 格式(部分导入入口用)
├── gitlink-pm-editor-ci.yml # GitLink「流水线流程编排」编辑器里粘贴用(含诊断步骤)
├── gitlink-pm-editor-ci-minimal.yml # 仅 echo,用来判断跑器/日志是否正常
├── gitlink-pm-editor-ci-no-uses.yml # 不用 actions/*,规避 Marketplace 404
└── README.md

功能特性

  • greet(name): 生成问候语
  • add(a, b): 加法运算
  • isValidEmail(email): 邮箱验证

流水线页是「暂无数据」时(重要)

你在 https://gitlink.org.cn/danshen/CI/actions 看到的是 「暂无数据」 和蓝色 「新建流水线」 按钮。这说明:

当前 GitLink 不会在「流水线」列表里自动出现你在代码里放的 .github/workflows/*.yml
列表里的每一条流水线,通常要在网页上 点「新建流水线」 创建一次(配置保存在平台里),或按向导 从仓库导入 某个 YAML(若界面提供该选项)。

请按下面顺序操作(名称以你页面上为准):

  1. 「新建流水线」
  2. 若向导里让填 流水线名称,例如填:CI
  3. 若有 关联仓库 / 分支,选本仓库 **danshen/CI**、分支 **master**。
  4. 若有 「从仓库导入 YAML」/「选择配置文件」:选仓库里的 **gitlink-ci-import.yml**(与 .github/workflows/ci.yml 内容相同)。
  5. 若没有导入选项、而是 「图形化添加步骤」:依次添加等价步骤:检出代码 → Node 20 → 执行 npm cinpm run lintnpm run type-checknpm test -- --coverage
  6. 保存后回到 **流水线(devops)**,应能看到刚建的流水线;再 推送一次 master 或点 「运行」 试跑。

仓库根目录已增加 **.gitlab-ci.yml**。若 GitLink 底层兼容 GitLab Runner,有可能在 其它菜单(如「构建」「CI 配置」)里出现自动流水线;以平台说明为准。

仓库里 YAML 说明(与网页「新建流水线」的关系)

文件 用途
.github/workflows/ci.yml GitLink 轻量引擎写法(version: 2 + trigger),供导入或文档对照
gitlink-ci-import.yml 同上,根路径便于在「从仓库选择文件」里选中
.gitlab-ci.yml 标准 GitLab CI,若平台支持则可能在推送后自动执行

针对仓库 https://gitlink.org.cn/danshen/CI.git 的操作示例

你的 GitLink 项目页:danshen/CI(默认分支一般是 **master**)。流水线入口在顶部 「流水线(devops)」

1. 在本机绑定远程并推送(PowerShell)

在项目根目录执行(若已添加过 origin,先 git remote remove origin):

cd d:\Litter11
git remote add origin https://gitlink.org.cn/danshen/CI.git
git checkout -B master
git add -A
git status
git commit -m "chore: add CI/CD workflows and demo app"

若远程已有一次提交(例如只有 README.md),第一次推送前需要合并历史:

git pull origin master --allow-unrelated-histories
# 若有冲突,按提示解决后:git add -A && git commit -m "merge remote"
git push -u origin master

若你确认可以覆盖远程、只保留本地这一套代码:

git push -u origin master --force

2. 在网页上点哪里

  1. 打开:https://gitlink.org.cn/danshen/CI
  2. 代码库:确认 master 上已有最新提交。
  3. **流水线(devops)**:若仍为「暂无数据」,按上文 「流水线页是暂无数据时」「新建流水线」 创建。
  4. 仓库设置:若有「CI / Runner / 构建」相关开关,按 GitLink 帮助 说明打开。

3. 分支说明

工作流里的 ref: refs/heads/master 只对 master 生效。改用 main 时,请把 ci.ymldeploy-staging.ymlgitlink-ci-import.yml 里的 ref 以及 .gitlab-ci.yml 里的 CI_COMMIT_BRANCH 规则一并改掉。


  1. 推送代码master(见上文 PowerShell)。
  2. 在流水线页用「新建流水线」建至少一条流水线(或导入 gitlink-ci-import.yml),否则列表会一直为空。
  3. 需要第二条「预发布构建」时,再建一条流水线或导入 deploy-staging 对应 YAML(见 .github/workflows/deploy-staging.yml)。

出现 {"code":500,"msg":"404 NOT_FOUND"}

这是 GitLink 网页调接口失败(浏览器 F12 → 网络里能看到某请求返回这段 JSON)。常见含义:请求的资源不存在(例如流水线 ID、Runner 接口、或拉取 actions/* 的地址在你们环境里不存在)。

建议:

  1. 刷新页面、重新登录后再点「保存 / 运行」。
  2. 换一个浏览器 / 关代理(公司代理常把未知域名变成 404)。
  3. 不要用 uses: actions/checkout@v4试一次:把 gitlink-pm-editor-ci-no-uses.yml 整段贴进编排编辑器保存再运行(见仓库根目录该文件)。若这样能跑,说明问题在 Marketplace / Action 拉取 一侧。
  4. 仍出现:把 F12 里失败的那条请求的 URL(可打码 token)和 发生时机(保存时 / 点运行时 / 打开某页时)发给 GitLink 支持 或论坛,这是服务端路由或权限问题。

流水线失败且看不到报错时

  1. 看运行详情里有没有「日志 / 构建日志 / 步骤」子页:有的平台默认折叠,要点进某一次运行或某个 Job。
  2. 用极简流水线试跑:把 gitlink-pm-editor-ci-minimal.yml 全文粘贴进编排编辑器保存,再点 手动运行
    • 若这条都失败或仍无日志:多半是 Runner 未就绪 / 无权限 / 平台未写日志,需在 GitLink 里看 Runner、组织配额 或问 GitLink 支持帮助中心)。
  3. 若极简成功、完整 CI 失败:看卡在第一步——卡在 Checkout 多为 访问不了 GitHub Marketplaceactions/checkout);卡在 npm ci 多为 锁文件或网络。把 最后一条有输出的步骤名 记下来对照改。
  4. runs-on: ubuntu-latest 若你们不提供该标签,需在 GitLink 文档里改成 平台提供的标签(如 linuxself-hosted 等)。

开发命令

npm ci
npm run lint
npm run type-check
npm test
npm run build

许可证

MIT License

关于
110.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号