1
0
forked from jk_yinzy/cicd-test

Compare commits

..

115 Commits
main ... main

Author SHA1 Message Date
2251b1c1df Merge pull request 'Changes' (#65) from mxy_dev into main
Reviewed-on: jk_yinzy/cicd-test#65
2025-12-11 15:53:35 +08:00
d527e8d5cd Changes 2025-12-11 16:01:26 +08:00
0d9ca2802a Merge pull request '[fix]:[20251208][drone 全面测试私有仓库]' (#64) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#64
2025-12-11 07:25:52 +08:00
kale
3d0a5decef [fix]:[20251208][drone 全面测试私有仓库] 2025-12-10 18:33:31 -05:00
7833a33563 Merge pull request 'yinzy_dev' (#63) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#63
2025-12-11 01:07:32 +08:00
kale
c17a305892 [fix]:[20251208][drone 全面测试私有仓库] 2025-12-10 12:17:34 -05:00
kale
a19e8d933b [fix]:[20251208][drone 全面测试私有仓库] 2025-12-10 12:02:53 -05:00
ee40798b8d Merge pull request '[fix]:[20251208][drone 跳过推送阿里云]' (#62) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#62
2025-12-10 23:50:31 +08:00
kale
b477da7a88 [fix]:[20251208][drone 跳过推送阿里云] 2025-12-10 10:57:20 -05:00
0dd1dd5420 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#61) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#61
2025-12-10 23:01:54 +08:00
kale
b642fc0642 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 10:11:40 -05:00
2e670b15f9 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#60) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#60
2025-12-10 22:52:09 +08:00
kale
902ae891d8 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 10:02:24 -05:00
dda1763ce6 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#59) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#59
2025-12-10 22:39:42 +08:00
kale
4da446dfc3 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:50:03 -05:00
kale
5ddbcb87e9 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:49:01 -05:00
9bf3aba2ae Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#58) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#58
2025-12-10 22:35:27 +08:00
kale
f7acb824b6 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:45:35 -05:00
8e78104fb5 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#57) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#57
2025-12-10 22:31:43 +08:00
kale
1da65bf24f [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:42:04 -05:00
kale
b6d4197d1f [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:40:39 -05:00
f167105696 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#56) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#56
2025-12-10 22:23:56 +08:00
kale
bac64704f7 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:33:15 -05:00
fa8c144290 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#55) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#55
2025-12-10 22:12:10 +08:00
kale
a14728d961 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:21:27 -05:00
07e1651a40 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#54) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#54
2025-12-10 22:02:00 +08:00
kale
a311d1588c [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:11:56 -05:00
47145fe318 Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#53) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#53
2025-12-10 21:53:20 +08:00
kale
175d58c97a [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 09:03:03 -05:00
ba69ce8f4a Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#52) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#52
2025-12-10 21:49:07 +08:00
kale
23946e72eb [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 08:27:42 -05:00
kale
e4d30d38fb [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 07:56:54 -05:00
adb6aaff3f Merge pull request '[fix]:[20251208][drone 测试本地仓库构建]' (#51) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#51
2025-12-10 19:10:03 +08:00
kale
d1f4552574 [fix]:[20251208][drone 测试本地仓库构建] 2025-12-10 06:18:37 -05:00
6103344938 Merge pull request '[fix]:[20251208][drone 增加推送公共仓库1]' (#50) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#50
2025-12-09 07:51:29 +08:00
kale
b79fb4e5f4 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 19:01:31 -05:00
kale
9e95b0d608 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 18:58:59 -05:00
kale
e28f963c01 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:52:01 -05:00
kale
f1b158889d [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:49:56 -05:00
kale
28048bd30e [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:44:57 -05:00
kale
126ca08ed5 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:43:17 -05:00
kale
f9c4157d32 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:42:15 -05:00
kale
e6e78fa287 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:29:39 -05:00
kale
705d2141b7 [fix]:[20251208][drone 测试持久化目录] 2025-12-08 17:26:56 -05:00
kale
5db414093e [fix]:[20251208][drone 增加推送公共仓库1] 2025-12-08 17:25:08 -05:00
8ccf1dd2c3 Merge pull request 'yinzy_dev' (#49) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#49
2025-12-09 00:37:19 +08:00
kale
686b838fba [fix]:[20251208][drone 增加推送公共仓库1] 2025-12-08 11:47:14 -05:00
kale
cf5c39464c [fix]:[20251208][drone 增加推送公共仓库1] 2025-12-08 11:45:45 -05:00
kale
0f993b9dbb [fix]:[20251208][drone 增加推送公共仓库1] 2025-12-08 11:44:39 -05:00
8fa022008e Merge pull request '[fix]:[20251208][drone 增加推送公共仓库1]' (#48) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#48
2025-12-08 19:01:57 +08:00
kale
5a8551fed2 [fix]:[20251208][drone 增加推送公共仓库1] 2025-12-08 06:11:28 -05:00
2e114d4070 Merge pull request '[fix]:[20251208][drone 增加推送公共仓库]' (#47) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#47
2025-12-08 18:52:09 +08:00
kale
fe8468ae43 [fix]:[20251208][drone 增加推送公共仓库] 2025-12-08 06:01:56 -05:00
96e47681e7 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 8]' (#46) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#46
2025-12-08 17:47:23 +08:00
kale
2c06d69e45 [fix]:[20251208][drone 增加前端工程的cicd 8] 2025-12-08 04:56:35 -05:00
1990a9e970 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 8]' (#45) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#45
2025-12-08 17:33:45 +08:00
kale
bc014933a4 [fix]:[20251208][drone 增加前端工程的cicd 8] 2025-12-08 04:43:25 -05:00
f70beb3179 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 7]' (#44) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#44
2025-12-08 17:18:48 +08:00
kale
63dffbc4ac [fix]:[20251208][drone 增加前端工程的cicd 7] 2025-12-08 04:28:54 -05:00
a2fec3b29d Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 7]' (#43) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#43
2025-12-08 17:07:26 +08:00
kale
76ba747874 [fix]:[20251208][drone 增加前端工程的cicd 7] 2025-12-08 04:17:26 -05:00
a056cd5798 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 7]' (#42) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#42
2025-12-08 16:57:51 +08:00
kale
a74ae4d400 [fix]:[20251208][drone 增加前端工程的cicd 7] 2025-12-08 04:07:51 -05:00
fb342e26b1 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 7]' (#41) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#41
2025-12-08 16:53:43 +08:00
kale
1e8c2e0d74 [fix]:[20251208][drone 增加前端工程的cicd 7] 2025-12-08 04:03:35 -05:00
8e739da04c Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 6]' (#40) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#40
2025-12-08 16:44:30 +08:00
kale
38092b3537 [fix]:[20251208][drone 增加前端工程的cicd 6] 2025-12-08 03:54:06 -05:00
172f9b8229 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 5]' (#39) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#39
2025-12-08 16:39:46 +08:00
kale
7a0289903e [fix]:[20251208][drone 增加前端工程的cicd 5] 2025-12-08 03:48:40 -05:00
81308c28f4 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 4]' (#38) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#38
2025-12-08 16:31:48 +08:00
kale
3af0f97175 [fix]:[20251208][drone 增加前端工程的cicd 4] 2025-12-08 03:41:22 -05:00
996b7db539 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 3]' (#37) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#37
2025-12-08 16:24:38 +08:00
kale
bc663d5e88 [fix]:[20251208][drone 增加前端工程的cicd 3] 2025-12-08 03:33:31 -05:00
3dac3b6246 Merge pull request '[fix]:[20251208][drone 增加前端工程的cicd 2]' (#36) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#36
2025-12-08 16:20:28 +08:00
kale
00bde2e706 [fix]:[20251208][drone 增加前端工程的cicd 2] 2025-12-08 03:28:28 -05:00
bcdf49f72e Merge pull request 'yinzy_dev' (#35) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#35
2025-12-08 16:08:47 +08:00
kale
0153a376b6 [fix]:[20251208][drone 增加前端工程的cicd1] 2025-12-08 03:19:00 -05:00
kale
8264c16dbf [fix]:[20251208][drone 增加前端工程的cicd] 2025-12-08 03:13:39 -05:00
kale
10e0d033ef [feat]:[20251208][新增前端代码工程,vue-ui] 2025-12-08 03:12:26 -05:00
kale
3f2a5226c8 [feat]:[20251208][新增前端代码工程,vue-ui] 2025-12-08 03:12:00 -05:00
af67f1bbe3 Merge pull request '[fix]:[20251208][构建docker, 拆分 pipeline]' (#34) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#34
2025-12-08 15:11:25 +08:00
kale
dd740e5e98 [fix]:[20251208][构建docker, 拆分 pipeline] 2025-12-08 02:21:16 -05:00
dcdeaba664 Merge pull request '[fix]:[20251208][构建docker, 拆分 pipeline]' (#33) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#33
2025-12-08 14:58:01 +08:00
kale
043e65249a [fix]:[20251208][构建docker, 拆分 pipeline] 2025-12-08 02:07:51 -05:00
55cfa56e91 Merge pull request '[fix]:[20251208][构建docker, 拆分 pipeline]' (#32) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#32
2025-12-08 14:55:07 +08:00
kale
2ec8bacad3 [fix]:[20251208][构建docker, 拆分 pipeline] 2025-12-08 02:04:59 -05:00
57d1badb9a Merge pull request 'yinzy_dev' (#31) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#31
2025-12-08 14:45:14 +08:00
kale
7fa2eb8bd9 [fix]:[20251208][构建docker, 拆分 pipeline] 2025-12-08 01:55:01 -05:00
kale
7813b0dbb9 [fix]:[20251208][构建docker, 拆分 pipeline] 2025-12-08 01:53:13 -05:00
e2ee130797 Merge pull request '[fix]:[20251208][构建docker,生成jar并构建镜像1]' (#30) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#30
2025-12-08 14:13:36 +08:00
kale
c122d8e8ac [fix]:[20251208][构建docker,生成jar并构建镜像1] 2025-12-08 01:23:10 -05:00
f3ba3c0cc0 Merge pull request '[fix]:[20251208][构建docker,生成jar并构建镜像1]' (#29) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#29
2025-12-08 14:00:00 +08:00
kale
f030dcdd9d [fix]:[20251208][构建docker,生成jar并构建镜像1] 2025-12-08 01:09:06 -05:00
ade6a53e1d Merge pull request '[fix]:[20251208][构建docker,生成jar并构建镜像1]' (#28) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#28
Reviewed-by: 君肯管理员 <jk_admin@jk.com>
2025-12-08 12:21:06 +08:00
kale
1ac3f504d5 [fix]:[20251208][构建docker,生成jar并构建镜像1] 2025-12-07 23:29:40 -05:00
2d1cb2d03e Merge pull request 'yinzy_dev' (#27) from yinzy_dev into main
Reviewed-on: jk_yinzy/cicd-test#27
Reviewed-by: 君肯管理员 <jk_admin@jk.com>
2025-12-08 11:39:44 +08:00
kale
d00fd20c3f [fix]:[20251208][构建docker,生成jar并构建镜像] 2025-12-07 22:34:06 -05:00
kale
768ea01ea1 [fix]:[20251208][构建docker,生成jar并构建镜像] 2025-12-07 22:33:44 -05:00
kale
a5c24fc31a [fix]:[20251208][构建docker,生成jar并构建镜像] 2025-12-07 22:23:03 -05:00
kale
99bf38c9ff [fix]:[20251208][构建docker1] 2025-12-07 22:18:55 -05:00
kale
067aad30df [fix]:[20251208][构建docker1] 2025-12-07 22:18:43 -05:00
kale
ad7f4e9672 [fix]:[20251208][构建docker1] 2025-12-07 22:15:10 -05:00
kale
63c98c5eb1 [fix]:[20251208][构建docker1] 2025-12-07 22:13:17 -05:00
kale
fdf48941ee [fix]:[20251208][构建docker1] 2025-12-07 22:10:57 -05:00
kale
d44e7d386f Merge remote-tracking branch 'origin/yinzy_dev' into yinzy_dev 2025-12-07 22:05:50 -05:00
kale
700f59cfaf [fix]:[20251208][构建docker1] 2025-12-07 22:04:39 -05:00
kale
23f1ed19b2 [fix]:[20251208][构建docker] 2025-12-07 22:04:37 -05:00
kale
006c3c6643 [fix]:[20251208][构建docker] 2025-12-07 22:04:30 -05:00
kale
b328ad6d07 [fix]:[20251208][构建docker1] 2025-12-07 22:03:00 -05:00
kale
e54b9750ae [fix]:[20251208][构建docker] 2025-12-07 21:56:24 -05:00
kale
fbb6d9f48b [fix]:[20251208][构建docker] 2025-12-07 21:56:08 -05:00
c7c01ddc21 Merge pull request '更新ci' (#25) from jk_yinzy-patch-1 into main
Reviewed-on: jk_yinzy/adsfasdfsadf#25
Reviewed-by: testuser <test@jk.com>
Reviewed-by: 君肯管理员 <jk_admin@jk.com>
2025-12-06 07:46:43 +08:00
ee6c8ec6a5 更新ci1
Signed-off-by: 君肯普通 <jk_yinzy@jk.com>
2025-12-06 07:35:32 +08:00
102f5ca8f0 更新ci
Signed-off-by: 君肯普通 <jk_yinzy@jk.com>
2025-12-06 07:26:36 +08:00
b5b5d1e299 Merge pull request '添加测试2' (#24) from testuser/testuser-adsfasdfsadf:main into main
Reviewed-on: jk_yinzy/adsfasdfsadf#24
Reviewed-by: 君肯普通 <jk_yinzy@jk.com>
2025-12-05 18:38:11 +08:00
13 changed files with 1869 additions and 54 deletions

View File

@ -1,69 +1,293 @@
kind: pipeline
type: docker
name: multi-lang-ci
name: pr-ci
# PR 流水线:仅在 PR 触发
trigger:
event:
- pull_request
branch:
- main
# 如需限制目标分支,可加 target:
# target:
# - main
workspace:
base: /drone
path: .
volumes:
- name: maven-cache
path: /localcache/maven/repository
- name: npm-cache
path: /localcache/npm-cache
# 克隆策略:只拉最新 commit加速
clone:
depth: 0
image: drone/git:latest
pull: false
steps:
# 自动检测是否存在 Java (pom.xml)
- name: java-build
image: maven:3.9-eclipse-temurin
- name: java-build-test
image: registry.cn-beijing.aliyuncs.com/yinzy/maven:jk3.9-8
pull: false
volumes:
- name: maven-cache
path: /localcache/maven/repository
environment:
MAVEN_OPTS: -Dmaven.repo.local=.m2/repository
MAVEN_OPTS: -Dmaven.repo.local=/localcache/maven/repository
commands:
# 先创建 .m2 目录
# - touch /localcache/maven/repository/bbb.txt
# - ls -lah /localcache/maven/repository
- mkdir -p ~/.m2
# 动态生成 settings.xml仅用于 CI
- |
cat > ~/.m2/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
EOF
- mvn clean verify
- if [ -f pom.xml ]; then mvn clean compile; fi
when:
event: [ push, pull_request ]
- cat ~/.m2/settings.xml
- mvn -B clean test package
- ls -lah target/*.jar || (echo "JAR file not found!" && exit 1)
- \cp target/*.jar ./ -f
# 自动检测是否存在 Python (requirements.txt)
- name: python-test
image: python:3.12.0-slim
- name: frontend-build
image: registry.cn-beijing.aliyuncs.com/yinzy/node:20.11-alpine3.19
pull: false
volumes:
- name: npm-cache
path: /localcache/npm-cache
commands:
# 临时设置 pip 源(仅本次会话)
- pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
- pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
- if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- if [ -f test_example.py ]; then python -m pytest test_example.py -v; fi
when:
event: [ push, pull_request ]
- cd vue-ui
- npm config set cache /localcache/npm-cache/.npm
- npm ci -prefer-offline --registry=https://registry.npmmirror.com
- npm run build
- ls -lah dist
# 最终报告(无论成功失败都运行)
# 如需其他检查步骤,可在这里继续追加
- name: summary
image: alpine
pull: false
commands:
- echo "✅ CI completed at $(date)"
- echo "✅ PR pipeline completed at $(date)"
when:
status: [ success, failure ]
depends_on:
- java-build-test
- frontend-build
---
kind: pipeline
type: docker
name: release-tag
# Tag 流水线:仅在 tag 触发(不要加 branch 限制)
trigger:
event:
- tag
branch:
- "**"
workspace:
base: /drone
path: .
volumes:
- name: maven-cache
path: /localcache/maven/repository
- name: docker_sock
path: /var/run/docker.sock
- name: jar-cache
path: /localcache/apps
- name: npm-cache
path: /localcache/npm-cache
- name: certs
path: /localcache/registry_certs # 你提前放好 ca.crt
clone:
depth: 0
image: drone/git:latest
pull: false
steps:
- name: frontend-build
image: registry.cn-beijing.aliyuncs.com/yinzy/node:20.11-alpine3.19
pull: false
volumes:
- name: npm-cache
path: /localcache/npm-cache
- name: jar-cache # 复用已有 /localcache用于暂存 dist.zip
path: /localcache/apps
commands:
- cd vue-ui
- npm config set cache /localcache/npm-cache/.npm
- npm ci -prefer-offline --registry=https://registry.npmmirror.com
- npm run build
- cd dist && tar -czf ../dist.tgz . && cd ..
- mkdir -p /localcache/apps/${DRONE_REPO_NAME}
- cp dist.tgz /localcache/apps/${DRONE_REPO_NAME}/dist-${DRONE_TAG}.tgz -f && cp dist.tgz ../ -f
- ls -lah /localcache/apps/${DRONE_REPO_NAME}/dist-${DRONE_TAG}.tgz
# - cd ../ && ls -lah vue-ui/dist.tgz
- name: java-build
image: registry.cn-beijing.aliyuncs.com/yinzy/maven:jk3.9-8
pull: false
volumes:
- name: maven-cache
path: /localcache/maven/repository
- name: jar-cache
path: /localcache/apps
environment:
MAVEN_OPTS: -Dmaven.repo.local=/localcache/maven/repository
commands:
- mvn -B -DskipTests=true clean package
- ls -lah target/*.jar || (echo "JAR file not found!" && exit 1)
- |
mkdir -p /localcache/apps/${DRONE_REPO_NAME}
JAR_FILE=$(ls target/*.jar 2>/dev/null | head -1)
if [ -n "$JAR_FILE" ]; then
cp "$JAR_FILE" /localcache/apps/${DRONE_REPO_NAME}/ -f
echo "✅ JAR file backed up to /localcache/apps/${DRONE_REPO_NAME}/$(basename $JAR_FILE)"
ls -lh /localcache/apps/${DRONE_REPO_NAME}/
else
echo "⚠️ No JAR file found to backup"
fi
#
# - name: debug_context
# image: alpine
# commands:
# - pwd
# - ls -R .
# depends_on:
# - frontend-build
- name: frontend_docker_build
image: registry.cn-beijing.aliyuncs.com/yinzy/drone-plugins:docker-latest
pull: false
settings:
volumes:
- name: certs
path: /etc/docker/certs.d/docker-registry.local:36000/
debug: true
daemon_off: false # 👈 必须启用 DinD 才能让 extra_files 生效
# 1. 仓库认证信息
registry:
from_secret: local_registry_base_url
username:
from_secret: local_registry_user
password:
from_secret: local_registry_pass
# 2. 镜像名称 (不包含 Tag)
repo: docker-registry.local:36000/jk/apps/${DRONE_REPO_NAME}-front
# 3. 指定 Dockerfile 位置
dockerfile: docker/Dockerfile-frontend
# 4. 构建上下文 (Context),默认为 . (根目录)
context: .
# 5. 生成的 Tags
# 插件会自动生成 repo:tag
tags:
- front-${DRONE_TAG} # e.g. back-v1.0.0
- front-latest # 方便随时拉取最新版
# - front-${DRONE_COMMIT_SHA:0:8}
# 如果你需要把 dist.tgz 复制给 build
extra_files:
- dist.tgz
depends_on:
- frontend-build
# - debug_context
- name: backend_docker_build
image: registry.cn-beijing.aliyuncs.com/yinzy/drone-plugins:docker-latest
pull: false
settings:
volumes:
- name: certs
path: /etc/docker/certs.d/docker-registry.local:36000/
debug: true
daemon_off: false # 👈 必须启用 DinD 才能让 extra_files 生效
# 1. 仓库认证信息
registry:
from_secret: local_registry_base_url
username:
from_secret: local_registry_user
password:
from_secret: local_registry_pass
# 2. 镜像名称 (不包含 Tag)
repo: docker-registry.local:36000/jk/apps/${DRONE_REPO_NAME}-backend
# 3. 指定 Dockerfile 位置
dockerfile: docker/Dockerfile
# 4. 构建上下文 (Context),默认为 . (根目录)
context: .
# 5. 生成的 Tags
tags:
- backend-${DRONE_TAG} # e.g. back-v1.0.0
- backend-latest # 方便随时拉取最新版
extra_files:
- drone-test-1.0.jar
depends_on:
- java-build
- name: gitea_release
image: registry.cn-beijing.aliyuncs.com/yinzy/drone-plugins:gitea-release-latest
pull: false
volumes:
- name: jar-cache
path: /localcache/apps
settings:
api_key:
from_secret: gitea_token
base_url:
from_secret: gitea_base_url
files:
- /localcache/apps/${DRONE_REPO_NAME}/*.jar
- /localcache/apps/${DRONE_REPO_NAME}/dist-${DRONE_TAG}.tgz
title: Release ${DRONE_TAG}
note: |
Release ${DRONE_TAG}
Commit: ${DRONE_COMMIT_SHA:0:8}
Build: ${DRONE_BUILD_NUMBER}
file_exists: overwrite
depends_on:
- backend_docker_build
- frontend_docker_build
- name: push_acr
image: docker:latest
pull: false
volumes:
- name: docker_sock
path: /var/run/docker.sock
environment:
ACR_USER:
from_secret: aliyun_acr_username # 阿里云访问凭证用户名
ACR_PASS:
from_secret: aliyun_acr_password # 阿里云访问凭证密码
ACR_REGISTRY: registry.cn-beijing.aliyuncs.com
ACR_NAMESPACE: yinzy
ACR_REPO: cicd
commands:
- echo "$ACR_PASS" | docker login $ACR_REGISTRY -u "$ACR_USER" --password-stdin
# 后端
- docker tag ${DRONE_REPO_NAME}:latest $ACR_REGISTRY/$ACR_NAMESPACE/$ACR_REPO:back-${DRONE_TAG}
- docker push $ACR_REGISTRY/$ACR_NAMESPACE/$ACR_REPO:back-${DRONE_TAG}
# 前端
- docker tag ${DRONE_REPO_NAME}-frontend:latest $ACR_REGISTRY/$ACR_NAMESPACE/$ACR_REPO:front-${DRONE_TAG}
- docker push $ACR_REGISTRY/$ACR_NAMESPACE/$ACR_REPO:front-${DRONE_TAG}
depends_on:
- backend_docker_build
- frontend_docker_build
when:
event:
exclude: [ "**" ]
- name: summary
image: alpine
pull: false
commands:
- echo "✅ Tag pipeline completed at $(date)"
when:
status: [ success, failure ]
depends_on:
- gitea_release

3
.gitignore vendored
View File

@ -26,3 +26,6 @@ replay_pid*
/drone-test.iml
/.idea/
node_modules/
dist/
/.vscode/

11
docker/Dockerfile Normal file
View File

@ -0,0 +1,11 @@
# 使用最小的 Java 8 JRE 镜像
FROM docker-registry.local:36000/base/openjdk:8-jre-alpine
# 设置工作目录
WORKDIR /app
# 复制生成的 JAR 文件到容器中(使用通配符匹配)
COPY target/*.jar app.jar
# 运行应用
ENTRYPOINT ["java", "-jar", "app.jar"]

View File

@ -0,0 +1,29 @@
# 前端构建阶段
FROM docker-registry.local:36000/base/node:20.11-alpine3.19 AS builder
WORKDIR /app
# 先复制依赖声明,利用缓存
COPY vue-ui/package*.json ./
# 使用国内镜像源并安装依赖
# RUN npm config set registry https://registry.npmmirror.com \
# && npm ci --no-audit --no-fund
# 复制源码并构建
COPY vue-ui/ .
# RUN npm run build
# 运行阶段,使用独立 nginx 镜像
FROM docker-registry.local:36000/base/nginx:alpine-stable AS runtime
# 清理默认页面
WORKDIR /usr/share/nginx/html
RUN rm -rf ./*
# 拷贝构建产物
# 直接使用构建上下文中的 dist.tgz
ADD dist.tgz .
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

76
pom.xml
View File

@ -7,16 +7,72 @@
<groupId>com.example</groupId>
<artifactId>drone-test</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.12.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.12.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Maven 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- Maven JAR 插件,用于生成可执行 JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- Maven Shade 插件,用于生成包含所有依赖的可执行 JAR可选 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -9,4 +9,4 @@ def test_drone_env():
assert 'DRONE' in os.environ # 验证是否在 Drone 环境中运行
def test_1():
print("本地开发分支提交")
print("本地开发分支提交!s")

12
vue-ui/index.html Normal file
View File

@ -0,0 +1,12 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vue UI Demo</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

1162
vue-ui/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

18
vue-ui/package.json Normal file
View File

@ -0,0 +1,18 @@
{
"name": "vue-ui",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.4.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.0",
"vite": "^5.0.0"
}
}

89
vue-ui/src/App.vue Normal file
View File

@ -0,0 +1,89 @@
<template>
<main class="page">
<header class="hero">
<p class="eyebrow">Vue 3 + Vite</p>
<h1>快速上手示例</h1>
<p class="sub">
左边计数器右边简单待办直接改这里即可开始玩
</p>
</header>
<section class="grid">
<article class="card">
<header class="card__title">
<h2>计数器</h2>
<span class="tag">可组合</span>
</header>
<p class="value">{{ count }}</p>
<div class="actions">
<button class="ghost" @click="change(-1)">-1</button>
<button class="primary" @click="change(1)">+1</button>
<button class="ghost" @click="reset">重置</button>
</div>
</article>
<article class="card">
<header class="card__title">
<h2>待办清单</h2>
<span class="tag success">示例</span>
</header>
<form class="todo__form" @submit.prevent="addTodo">
<input
v-model="draft"
type="text"
placeholder="输入要做的事..."
autocomplete="off"
/>
<button class="primary" type="submit">添加</button>
</form>
<ul class="todo__list" v-if="todos.length">
<li v-for="item in todos" :key="item.id">
<label>
<input v-model="item.done" type="checkbox" />
<span :class="{ done: item.done }">{{ item.text }}</span>
</label>
<button class="ghost small" type="button" @click="removeTodo(item.id)">
删除
</button>
</li>
</ul>
<p v-else class="empty">暂无任务添加一个吧</p>
</article>
</section>
</main>
</template>
<script setup>
import { ref } from 'vue';
const count = ref(1);
const change = (delta) => {
count.value += delta;
};
const reset = () => {
count.value = 1;
};
const draft = ref('');
const todos = ref([
{ id: 1, text: '试着勾选或删除我', done: false },
{ id: 2, text: '在右上角编辑样式', done: true },
]);
const addTodo = () => {
const text = draft.value.trim();
if (!text) return;
todos.value.push({
id: Date.now(),
text,
done: false,
});
draft.value = '';
};
const removeTodo = (id) => {
todos.value = todos.value.filter((item) => item.id !== id);
};
</script>

196
vue-ui/src/assets/main.css Normal file
View File

@ -0,0 +1,196 @@
:root {
font-family: 'Inter', 'PingFang SC', 'Microsoft YaHei', system-ui, -apple-system,
BlinkMacSystemFont, 'Segoe UI', sans-serif;
color: #0f172a;
background-color: #f8fafc;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
background: radial-gradient(circle at top right, #e0f2fe, #f8fafc 45%),
radial-gradient(circle at 20% 20%, #f1f5f9, #f8fafc 45%);
color: inherit;
}
.page {
max-width: 960px;
margin: 0 auto;
padding: 48px 20px 64px;
}
.hero {
margin-bottom: 32px;
}
.eyebrow {
display: inline-block;
padding: 4px 10px;
border-radius: 999px;
background-color: #e0f2fe;
color: #0284c7;
font-weight: 600;
font-size: 12px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
h1 {
margin: 12px 0 8px;
font-size: 32px;
}
.sub {
margin: 0;
color: #475569;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 16px;
}
.card {
background: #fff;
border-radius: 16px;
padding: 20px;
box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
border: 1px solid #e2e8f0;
}
.card__title {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 12px;
}
.tag {
padding: 4px 10px;
border-radius: 10px;
background-color: #e2e8f0;
color: #475569;
font-size: 12px;
font-weight: 600;
}
.tag.success {
background-color: #dcfce7;
color: #16a34a;
}
.value {
font-size: 48px;
font-weight: 800;
margin: 0 0 16px;
color: #0f172a;
}
.actions {
display: flex;
gap: 10px;
}
button {
border: none;
border-radius: 12px;
padding: 10px 14px;
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: transform 0.1s ease, box-shadow 0.2s ease, background 0.2s ease;
}
button:active {
transform: translateY(1px);
}
button.primary {
background: linear-gradient(135deg, #22c55e, #16a34a);
color: #fff;
box-shadow: 0 8px 20px rgba(22, 163, 74, 0.4);
}
button.ghost {
background: #f1f5f9;
color: #0f172a;
border: 1px solid #e2e8f0;
}
button.small {
padding: 6px 10px;
font-size: 13px;
}
.todo__form {
display: grid;
grid-template-columns: 1fr auto;
gap: 10px;
margin-bottom: 16px;
}
.todo__form input {
padding: 12px 14px;
border: 1px solid #e2e8f0;
border-radius: 12px;
font-size: 15px;
}
.todo__list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 10px;
}
.todo__list li {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 12px;
border: 1px solid #e2e8f0;
border-radius: 12px;
}
.todo__list label {
display: flex;
align-items: center;
gap: 10px;
color: #0f172a;
}
.todo__list input[type='checkbox'] {
width: 18px;
height: 18px;
}
.done {
text-decoration: line-through;
color: #94a3b8;
}
.empty {
margin: 0;
color: #94a3b8;
font-style: italic;
}
@media (max-width: 640px) {
.page {
padding: 32px 16px;
}
h1 {
font-size: 26px;
}
}

5
vue-ui/src/main.js Normal file
View File

@ -0,0 +1,5 @@
import { createApp } from 'vue';
import App from './App.vue';
import './assets/main.css';
createApp(App).mount('#app');

10
vue-ui/vite.config.js Normal file
View File

@ -0,0 +1,10 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [vue()],
server: {
port: 5173,
open: true,
},
});