122 lines
3.1 KiB
YAML
122 lines
3.1 KiB
YAML
kind: pipeline
|
||
type: docker
|
||
name: isle-website
|
||
|
||
steps:
|
||
# 恢复缓存
|
||
- name: restore-cache
|
||
pull: if-not-exists # 镜像不存在则拉取,避免多次下载
|
||
image: drillster/drone-volume-cache
|
||
volumes:
|
||
- name: cache
|
||
path: /cache
|
||
settings:
|
||
restore: true
|
||
mount:
|
||
- ./node_modules
|
||
|
||
# 安装依赖
|
||
- name: install
|
||
pull: if-not-exists
|
||
image: node:16.17.1
|
||
commands:
|
||
- echo "安装依赖"
|
||
- echo "全局安装PNPM"
|
||
- npm config set registry https://registry.npmmirror.com/
|
||
- npm install -g pnpm@8.15.5
|
||
- pnpm -v
|
||
- echo "PNPM安装完成"
|
||
- pnpm config get registry
|
||
- pnpm config set registry https://registry.npmmirror.com/
|
||
# - pnpm config set registry http://registry.npm.taobao.org/
|
||
# - pnpm config set registry https://registry.npmjs.org
|
||
- pnpm install --no-frozen-lockfile
|
||
|
||
# 构建
|
||
- name: build
|
||
pull: if-not-exists
|
||
image: node:16.17.1
|
||
commands:
|
||
- echo "开始构建"
|
||
- npm config set registry https://registry.npmmirror.com/
|
||
- npm install -g pnpm@8.15.5
|
||
- pnpm docs:build
|
||
- ls
|
||
|
||
# 更新缓存
|
||
- name: rebuild-cache
|
||
pull: if-not-exists
|
||
image: drillster/drone-volume-cache
|
||
volumes:
|
||
- name: cache
|
||
path: /cache
|
||
settings:
|
||
rebuild: true
|
||
mount:
|
||
- ./node_modules
|
||
|
||
# 上传
|
||
- name: upload
|
||
image: appleboy/drone-scp
|
||
settings:
|
||
host:
|
||
from_secret: ssh_host
|
||
username:
|
||
from_secret: ssh_username
|
||
password:
|
||
from_secret: ssh_password
|
||
target: /srv/nginx/html/isle/website
|
||
source: ./.vitepress/dist/*
|
||
strip_components: 2
|
||
|
||
- name: deploy
|
||
pull: if-not-exists
|
||
image: appleboy/drone-ssh
|
||
settings:
|
||
host:
|
||
from_secret: ssh_host
|
||
username:
|
||
from_secret: ssh_username
|
||
password:
|
||
from_secret: ssh_password
|
||
port: 22
|
||
script:
|
||
- echo "SSH已连接,开始部署"
|
||
- cd /srv/nginx
|
||
- pwd
|
||
# - docker restart nginx
|
||
# - cp -r /drone/src/dist/* web
|
||
- echo "部署完成"
|
||
|
||
# 通知
|
||
- name: notify
|
||
pull: if-not-exists
|
||
image: drillster/drone-email
|
||
settings:
|
||
recipients_only: true # 只发送给指定邮件收件人,不默认发送给流水线创建人
|
||
host: smtp.feishu.cn # SMTP服务器 例如 smtp.qq.com
|
||
port: 587 # SMTP服务端口 例如QQ邮箱端口465
|
||
username:
|
||
from_secret: mail_username
|
||
password:
|
||
from_secret: mail_password
|
||
from:
|
||
from_secret: mail_username
|
||
recipients:
|
||
- lijianchao@sentenceend.com
|
||
# - biankunchao@sentenceend.com
|
||
subject: Drone CI Build or Deployment(${DRONE_REPO})
|
||
body: |-
|
||
仓库 ${DRONE_REPO} 在 ${DRONE_BRANCH} 分支触发了 ${DRONE_BUILD_EVENT} 事件,提交信息 ${DRONE_COMMIT_MESSAGE} ,构建和发布 ${DRONE_BUILD_STATUS}!
|
||
|
||
# 挂载本地磁盘路径
|
||
volumes:
|
||
- name: cache
|
||
host:
|
||
path: /tmp/drone-cache
|
||
|
||
trigger:
|
||
branch:
|
||
- main
|
||
event:
|
||
- push |