-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.cnb.yml
More file actions
120 lines (120 loc) · 3.92 KB
/
.cnb.yml
File metadata and controls
120 lines (120 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# .cnb.yml
$:
# vscode 事件:专供页面中启动远程开发用
vscode:
# 启动 vscode 服务
- docker:
# 自定义开发环境
build:
# 指定构建镜像的 Dockerfile 文件
dockerfile: .ide/Dockerfile
services:
# 声明使用 vscode 服务
- vscode
# 声明在容器中支持 docker 命令
- docker
runner:
cpus: 12
stages:
# 环境启动后需要执行的命令
- name: 安装依赖
script: echo "环境准备完成"
# 标签发布时候打包镜像
tag_push:
- name: "打包 AMD64 架构"
runner:
tags: cnb:arch:amd64
services:
- docker
env:
IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest-linux-amd64
IMAGE_TAG_CURRENT: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:${CNB_COMMIT_SHORT}-linux-amd64
stages:
- name: docker login
script: docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY}
- name: docker build
script: docker build -t ${IMAGE_TAG_CURRENT} -t ${IMAGE_TAG} .
- name: docker push
script:
- docker push ${IMAGE_TAG_CURRENT}
- docker push ${IMAGE_TAG}
- name: resolve
type: cnb:resolve
options:
key: build-amd64
- name: "打包 ARM64 架构"
runner:
tags: cnb:arch:arm64:v8
services:
- docker
env:
IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest-linux-arm64
IMAGE_TAG_CURRENT: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:${CNB_COMMIT_SHORT}-linux-arm64
stages:
- name: docker login
script: docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY}
- name: docker build
script: docker build -t ${IMAGE_TAG_CURRENT} -t ${IMAGE_TAG} .
- name: docker push
script:
- docker push ${IMAGE_TAG_CURRENT}
- docker push ${IMAGE_TAG}
- name: resolve
type: cnb:resolve
options:
key: build-arm64
- name: "合并镜像并发布"
services:
- docker
env:
IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
IMAGE_TAG_CURRENT: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:${CNB_COMMIT_SHORT}
stages:
- name: 等待 AMD64 镜像打包完成
type: cnb:await
options:
key: build-amd64
- name: 等待 ARM64 镜像打包完成
type: cnb:await
options:
key: build-arm64
- name: 聚合本次分支标签
image: cnbcool/manifest
settings:
target: ${IMAGE_TAG_CURRENT}
template: ${IMAGE_TAG_CURRENT}-OS-ARCH
platforms:
- linux/amd64
- linux/arm64
- name: 聚合最新标签
image: cnbcool/manifest
settings:
target: ${IMAGE_TAG}
template: ${IMAGE_TAG}-OS-ARCH
platforms:
- linux/amd64
- linux/arm64
- name: 删除临时标签
type: artifact:remove-tag
options:
name: ${CNB_REPO_NAME}
tags:
- ${CNB_COMMIT_SHORT}-linux-amd64
- ${CNB_COMMIT_SHORT}-linux-arm64
- latest-linux-amd64
- latest-linux-arm64
type: docker
push:
- name: "推送镜像"
imports:
- https://cnb.cool/Mintimate/secret/-/blob/main/SyncToGitHub.yml
stages:
- name: 自动同步代码
image: tencentcom/git-sync
settings:
target_url: https://github.com/Mintimate/AutoInstallAria2.git
auth_type: https
username: ${GIT_USERNAME}
password: ${GIT_ACCESS_TOKEN}
branch: main
force: true