110 lines
2.9 KiB
YAML
110 lines
2.9 KiB
YAML
kind: pipeline # 定义一个管道
|
|
type: docker # 当前管道的类型
|
|
name: build # 当前管道的名称
|
|
|
|
volumes:
|
|
- name: cache
|
|
host:
|
|
path: /tmp/cache
|
|
|
|
steps: # 定义管道的执行步骤
|
|
# - name: build-project # 步骤名称
|
|
# image: node:18-bullseye # 当前步骤使用的镜像
|
|
# volumes:
|
|
# - name: node_modules
|
|
# path: /drone/src/node_modules
|
|
# commands: # 当前步骤执行的命令
|
|
# - pwd
|
|
# - npm config set registry https://registry.npm.taobao.org
|
|
# - npm i
|
|
|
|
- name: cache # 加载缓存
|
|
image: drillster/drone-volume-cache
|
|
pull: if-not-exists
|
|
depends_on: [clone]
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
settings:
|
|
restore: true
|
|
mount:
|
|
- ./node_modules
|
|
- ./nugetpackages
|
|
|
|
- name: build-tags
|
|
image: yxs970707/drone-web-tags
|
|
pull: if-not-exists
|
|
depends_on: [cache]
|
|
settings:
|
|
tags:
|
|
- latest
|
|
|
|
- name: install
|
|
image: node:18
|
|
pull: if-not-exists
|
|
depends_on: [build-tags]
|
|
commands:
|
|
- npm --registry https://registry.npm.taobao.org install
|
|
|
|
- name: build-image
|
|
image: plugins/docker
|
|
pull: if-not-exists
|
|
depends_on: [install]
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_passwd
|
|
dockerfile: Dockerfile
|
|
mirror: https://fpswa5tm.mirror.aliyuncs.com
|
|
registry: https://git.liliyamol.cn:8081
|
|
repo: git.liliyamol.cn:8081/mol/mol-robot
|
|
|
|
- name: rebuild cache # 构建缓存
|
|
image: drillster/drone-volume-cache
|
|
pull: if-not-exists
|
|
depends_on: [build-image]
|
|
volumes:
|
|
- name: cache
|
|
path: /cache
|
|
settings:
|
|
rebuild: true
|
|
mount:
|
|
- ./node_modules
|
|
- ./nugetpackages
|
|
|
|
---
|
|
kind: pipeline # 定义一个管道
|
|
type: docker # 当前管道的类型
|
|
name: deploy # 当前管道的名称
|
|
|
|
depends_on:
|
|
- build
|
|
|
|
clone:
|
|
disable: true
|
|
|
|
steps:
|
|
- name: deploy-project
|
|
image: appleboy/drone-ssh
|
|
settings:
|
|
host:
|
|
from_secret: host
|
|
username:
|
|
from_secret: server_username # 使用secrets
|
|
key:
|
|
from_secret: server_key
|
|
port: 22
|
|
command_timeout: 2m
|
|
secrets: [docker_username, docker_passwd]
|
|
script:
|
|
- echo ==-----==开始部署==-----==
|
|
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn:8081
|
|
- docker pull git.liliyamol.cn:8081/mol/mol-robot:latest
|
|
- list=$(docker ps -a | grep mol-robot* | awk '{print $1}')
|
|
- test "$list" = "" && echo "none mol-robot containers running" || docker stop $list && docker container rm $list
|
|
# 过滤出dockerImages的id, 删除none镜像
|
|
- docker run -d -p 16808:8080 --name=mol-robot_${DRONE_BUILD_NUMBER} --env-file /mnt/data/opt/mol-robot/.env git.liliyamol.cn:8081/mol/mol-robot:latest
|
|
# - docker rmi $(docker images | grep "none" | awk '{print $3}')
|
|
- echo ==-----==部署成功==-----==
|