以 Git 为中心,基于 Docker 生态的『云原生构建』
我们提供云端构建服务,让您在代码仓库中毫不费力地完成从代码检查、软件构建、自动化测试到发布的流程自动化。同时无需担心服务器配置和维护成本,我们自动化管理您的构建和部署流程,让您专注于软件开发。
# 云原生
基于 Docker 生态,对环境、缓存、插件进行抽象,原生支持 Pipeline as Code。
# Pipeline as Code
在代码中声明流水线,有如下优点:
- 易管理:纳入版本管理,像管理代码一样管理流水线。
- 可编程:通过 YAML 描述流水线,可编程、易复用。
- 云原生:基于 Docker 生态,通过声明式的语法,屏蔽基础设施的复杂性,按需使用资源。
# Docker image as pipeline Context
master:
push:
- docker:
image: node:14
stages:
- name: print node version
script:
- node -v
- npm install
- npm test
# Docker volumes as pipeline Cache
master:
push:
- docker:
image: node:14
volumes:
- /root/.npm:copy-on-write
stages:
- name: print node version
script:
- node -v
- npm install
- npm test
# Docker image as job Context
master:
push:
- stages:
- name: run with node 10
image: node:10
commands:
- node -v
- npm install
- npm test
- name: run with node 12
image: node:12
commands:
- node -v
- npm install
- npm test
# Docker image as plugins
master:
push:
- stages:
- name: npm publish
image: tencent/npm
imports: https://example.com/example/secret/blob/master/npm.yml
settings:
username: $NPM_USER
password: $NPM_PASS
email: $NPM_EMAIL
folder: .
# exapmple of npm.yml
NPM_USER: user
NPM_PASS: pass
NPM_EMAIL: email
# 高性能
# 按需声明资源
可通过 runner.cpus
按需声明需要的资源。
# git-clone-yyds 读秒 clone 技术
基于 OverlayFS
的 git-clone-yyds
可以在数秒内完成代码准备,时间复杂度为 O(1)
,不受仓库大小的影响。
# copy-on-write 缓存并发技术
copy-on-write 在并发场景下可以瞬间完成缓存复制,构建速度不劣化。
master:
push:
- runner:
cpus: 16
docker:
image: node:14
volumes:
- /root/.npm:copy-on-write
stages:
- name: print node version
script:
- node -v
- npm install
- npm test