-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
139 lines (130 loc) · 3.75 KB
/
Copy path.gitlab-ci.yml
File metadata and controls
139 lines (130 loc) · 3.75 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
stages:
- test
- build
- nightly
- publish
# #######################
# test #
# #######################
lint:
stage: test
tags:
- linux
- docker
image: docker.io/library/node:24
rules:
- if: $CI_COMMIT_TAG
when: never
- when: on_success
script:
- npm ci
- npm run lint
# #######################
# build #
# #######################
npm-build:
stage: build
tags:
- linux
- docker
image: docker.io/library/node:24
script:
- npm ci
- npm run build
artifacts:
name: dist
paths:
- ./dist/
# #######################
# nightly #
# #######################
docker-nightly:
stage: nightly
tags:
- linux
- docker
- amd64
- mpc
- ai-access-region
image: docker.io/library/docker:cli
services:
- name: docker.io/library/docker:dind
alias: docker
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ''
dependencies: []
rules:
- if: $CI_COMMIT_TAG
when: never
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: on_success
before_script:
- echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USER" --password-stdin docker.io
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
script:
- cd ./docker/
# 构建 nightly 镜像
- docker build --pull --provenance=false -t "$CI_PROJECT_NAME:nightly" .
# 为 Docker Hub 打远程仓库标签
- docker tag $CI_PROJECT_NAME:nightly docker.io/$DOCKERHUB_USER/$CI_PROJECT_NAME:nightly
# 为私有仓库打远程仓库标签
- docker tag $CI_PROJECT_NAME:nightly $CI_REGISTRY/xiaoxi/$CI_PROJECT_NAME:nightly
# 推送 Docker Hub
- docker push docker.io/$DOCKERHUB_USER/$CI_PROJECT_NAME:nightly
# 推送私有仓库
- docker push $CI_REGISTRY/xiaoxi/$CI_PROJECT_NAME:nightly
# #######################
# publish #
# #######################
npm:
stage: publish
tags:
- linux
- docker
image: docker.io/library/node:24
rules:
- if: $CI_COMMIT_TAG
before_script:
- npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
script:
- npm ci
- npm publish --access public
docker:
stage: publish
tags:
- linux
- docker
- amd64
- mpc
- ai-access-region
image: docker.io/library/docker:cli
services:
- name: docker.io/library/docker:dind
alias: docker
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ''
dependencies: []
rules:
- if: $CI_COMMIT_TAG
before_script:
- echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USER" --password-stdin docker.io
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
script:
- cd ./docker/
# 解包并构建
- docker build --pull --provenance=false -t "$CI_PROJECT_NAME:$CI_COMMIT_TAG" .
- docker tag $CI_PROJECT_NAME:$CI_COMMIT_TAG $CI_PROJECT_NAME:latest
# 为 Docker Hub 打远程仓库标签
- docker tag $CI_PROJECT_NAME:$CI_COMMIT_TAG docker.io/$DOCKERHUB_USER/$CI_PROJECT_NAME:$CI_COMMIT_TAG
- docker tag $CI_PROJECT_NAME:latest docker.io/$DOCKERHUB_USER/$CI_PROJECT_NAME:latest
# 为私有仓库打远程仓库标签
- docker tag $CI_PROJECT_NAME:$CI_COMMIT_TAG $CI_REGISTRY/xiaoxi/$CI_PROJECT_NAME:$CI_COMMIT_TAG
- docker tag $CI_PROJECT_NAME:latest $CI_REGISTRY/xiaoxi/$CI_PROJECT_NAME:latest
# 推送 Docker Hub
- docker push docker.io/$DOCKERHUB_USER/$CI_PROJECT_NAME:$CI_COMMIT_TAG
- docker push docker.io/$DOCKERHUB_USER/$CI_PROJECT_NAME:latest
# 推送私有仓库
- docker push $CI_REGISTRY/xiaoxi/$CI_PROJECT_NAME:$CI_COMMIT_TAG
- docker push $CI_REGISTRY/xiaoxi/$CI_PROJECT_NAME:latest