kind: pipeline # 定义一个管道 type: docker # 当前管道的类型 name: test # 当前管道的名称 steps: # 第一步:构建项目 - name: build image: node:18-alpine commands: - npm install - npm run build volumes: - name: node_modules_cache path: /drone/src/node_modules # 第二步:上传静态资源到腾讯云COS - name: upload-to-cos image: tencentcloudcli/coscmd:latest environment: COS_SECRET_ID: from_secret: cos_secret_id COS_SECRET_KEY: from_secret: cos_secret_key COS_REGION: from_secret: cos_region COS_BUCKET: from_secret: cos_bucket commands: # 配置coscmd - coscmd config -a $${COS_SECRET_ID} -s $${COS_SECRET_KEY} -b $${COS_BUCKET} -r $${COS_REGION} # 上传public文件夹下的所有文件 - coscmd upload -r public/ /static/ # 设置文件访问权限为公共读 - coscmd putobjectacl -r /static/ public-read when: branch: - main - master - dev # 第三步:部署到服务器 - name: deploy image: appleboy/drone-ssh settings: host: from_secret: server_host username: from_secret: server_username password: from_secret: server_password # 或者使用SSH密钥 # key: # from_secret: server_ssh_key port: 22 script: - rm -rf /www/wwwroot/show.zguiy.com/* - mkdir -p /www/wwwroot/show.zguiy.com/ - chmod 755 /www/wwwroot/show.zguiy.com/ when: branch: - main - master - dev # 第四步:上传构建文件 - name: upload image: appleboy/drone-scp settings: host: from_secret: server_host username: from_secret: server_username password: from_secret: server_password # 或者使用SSH密钥 # key: # from_secret: server_ssh_key port: 22 source: dist/* target: /www/wwwroot/show.zguiy.com/ strip_components: 1 when: branch: - main - master - dev # 定义数据卷用于缓存node_modules volumes: - name: node_modules_cache host: path: /tmp/drone_cache/node_modules # 触发条件 trigger: branch: - main - master - dev event: - push - pull_request