JavaScript 已禁用

为了获得更好的体验,请启用JavaScript,或点击下方链接跳转:

跳转至百度
Skip to content

CNB云端构建

环境准备

  • git 环境
  • 云服务器
  • teek 网站环境

创建组织

前往CNB网站,点击右上角登录,登录后点击右上角头像,选择“创建组织”。

1755972905032.png

或者加入 W3C 组织,也是本人加入的组织。欢迎加入联盟:https://cnb.cool/invitations/3QQ0173bdBHzyn5bZQv5iyyAtDB

创建仓库

点击访问,然后点击右上角的+号创建仓库,选择仓库归属仓库名称;公开信息选择私有,然后点击创建

创建令牌

初始化之前先去创建访问令牌,点击前往创建访问令牌,右上角点击添加访问令牌,输入令牌名称,到期时间选择永久,使用范围选择仓库/制品库,然后点击创建

警告

一定要记录好刚才生成的密钥,后续需用到!

初始仓库

提示

本次按 方式 3:空仓初始化 来初始化自己的本地仓库

bash
git init .
git remote add origin https://cnb.cool/W3C/Hyde/teek-hyde.git
git config --local user.name SeasirHyde
git config --local user.email "2429016980@qq.com" # 请修改为你的邮箱
git config credential.helper store # 保存凭证(凭证会被保存在 ~/.git-credentials 文件中)

推送仓库

由于本地仓库有暂存的更改,需要本地仓库所有的代码推送到 cnb 远程仓库,下面是详细步骤:

  1. 提交暂存的更改到本地仓库
bash
# 提交暂存的更改,-m 后面是提交说明(必填)
git commit -m "描述你的更改内容,例如:修复登录bug,优化首页样式"
  1. 推送本地分支到远程仓库 如果是第一次推送该分支(比如 master 或 main),需要关联远程分支并推送:
bash
# 推送本地当前分支到远程origin仓库,并建立关联
git push -u origin main
  • 如果你用的是 master 分支:git push -u origin master

  • 如果你用的是 main 分支:git push -u origin main

警告

  • 首次推送需输入用户名/密码,用户名(Username)和密码(Token)就是您创建的令牌,后续会自动保存在 ~/.git-credentials。

-仅推荐在 安全环境 下使用(若为公共电脑,建议用 cache 临时存储)。

令牌示例:

bash
令牌名:teek
Git Username:cnb
Token:xxxxxxxxx
  1. 后续推送(已关联分支)

当分支已经和远程关联后,后续推送只需执行:

bash
git push

配置文件

以上代码推送到仓库后,在本地仓库根目录下,创建并编辑如下 2 个文件:

yml
# main改成您实际的分支名称
main:
  push:
    - runner:
        cpus: 64 #自定义CPU核心数
      services:
        - docker ## 启用Docker服务(用于构建镜像或容器化操作)
        - git-clone-yyds # 自定义的Git克隆服务(确保代码能正确拉取到运行环境)
      docker:
        image: docker.cnb.cool/znb/images/node:18 # 使用Node.js 18版本的镜像(前端项目常用环境)
        volumes: # 数据卷挂载
          - /data/.cache:copy-on-write # 将宿主机的/data/.cache目录挂载到容器,采用"写时复制"模式(高效缓存依赖,加速构建)
      stages:
        - name: 🖨️ 打印环境
          script: |
            node -v && npm -v && yarn -v && pnpm -v
        - name: 📦️ 安装依赖
          script: |
            pnpm install
        - name: ⚗️ 编译项目
          script: |
            pnpm docs:build   # VitePress 专用命令
        - name: 🚚 发布制品
          image: tencentcom/rsync # 使用包含rsync工具的镜像(rsync用于高效文件同步)
          imports: https://cnb.cool/W3C/Hyde/teek-hyde/-/blob/main/env.yaml # 导入外部环境变量配置文件,实际替换自己的
          settings:
            user: ${SSH_USER} # SSH用户名(从环境变量获取,避免硬编码敏感信息)
            key: ${SSH_KEY} # SSH私钥(用于免密登录目标服务器,从环境变量获取)
            port: 22 # SSH端口(默认22)
            hosts:
              - 111.229.208.160 # 目标服务器IP(要部署到的服务器地址,实际替换自己的服务器IP)
            source: docs/.vitepress/dist/ # 待同步的本地文件目录(阶段3构建出的静态文件
            target: /root/rsync/teek.seasir.top/dist/ # 目标服务器上的存放路径
            delete: true # 同步时删除目标路径中不存在的文件(确保目标与本地完全一致,避免冗余文件)
yml
#在自己云服务器上生成ssh密钥,将私钥拷贝到env.yaml的SSH_KEY里。

#输入命令:
ssh-keygen

#运行后会出现一系列提示:
#密钥保存路径:默认是 /root/.ssh/id_rsa(私钥)和 /root/.ssh/id_rsa.pub(公钥),直接按回车使用默认路径即可。
#密码短语(passphrase):可选设置(推荐),相当于给私钥再加一层密码保护。如果直接回车则为空(无需额外密码)。

#输入命令:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #将本地生成的公钥添加到服务器的 "授权列表" 中,允许持有对应私钥的客户端免密码登录。

#查看是否添加成功:
cat /root/.ssh/authorized_keys

# 查看SSH_KEY私钥内容:
cat /root/.ssh/id_rsa

#编辑env.yaml文件内容:
SSH_USER: root     
SSH_KEY: |
    -----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEA1P55C7Hzn15bJlBeIkGuMkMSS2/JBQqe5iCuTGpPdvMSXMr+
    # 省略,这里需要注意SSH密钥格式缩进问题,否则发布制品这个步骤会报错
    2iRkQn/05IoX+MiDcmr1OjwSBXVD7+xR6hLjyiy7SmmEMkFPApw+
    -----END RSA PRIVATE KEY-----

运行验证

  • 以上编辑完成后,提交代码,第一次提交后,就可以看到已经触达流水线了:
bash
git add -A
git commit -m"更新cnb-cool配置,第一次构建测试"
git push

作者:威威

版权:此文章版权归 威威 所有,如有转载,请注明出处!

链接:可点击右上角分享此页面复制文章链接

最后更新于:

最近更新