You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.6 KiB
1.6 KiB
Drone CI 配置示例 (Exec Runner)
概述
使用 Drone exec runner 在目标主机上直接构建和部署。主机需预装 Go 和 Node.js。
示例 .drone.yml
kind: pipeline
type: exec
name: build-and-deploy
platform:
os: linux
arch: amd64
steps:
- name: build
commands:
- cd web && npm ci && npm run build && cd ..
- go env -w GO111MODULE=on
- go env -w GOPROXY=https://goproxy.cn,direct
- go build -ldflags="-s -w" -o myapp .
- name: deploy
environment:
DB_PATH:
from_secret: db_path
UPLOAD_DIR:
from_secret: upload_dir
JWT_SECRET:
from_secret: jwt_secret
commands:
- mkdir -p /opt/myapp
- sudo cp myapp /opt/myapp/myapp
- sudo pkill -x myapp || true
- |
sudo -E nohup /opt/myapp/myapp >> /tmp/myapp.log 2>&1 &
when:
branch: main
trigger:
branch:
- main
说明
- 替换
myapp为你的应用名称。 - 环境变量从 Drone secrets 注入。
- 部署使用
nohup后台运行,避免 systemd。
说明:
- exec 执行器在服务器本机运行:流水线步骤直接在该机 shell 环境执行,不是 Kubernetes/docker pipeline 的隔离容器。
.drone.yml中需type: exec;脚本依赖服务器已安装的工具链(Go、Node、sqlite3 等),改 CI 时注明需在 runner 主机预装的依赖。- 密钥用 Drone 仓库/组织密钥注入环境变量,勿写入仓库明文
规则:
- 必须将应用安装再/opt,再进行运行