This commit is contained in:
104
example/linux/woodpecker.yml
Normal file
104
example/linux/woodpecker.yml
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
# .woodpecker.yml
|
||||||
|
labels:
|
||||||
|
platform: linux/amd64
|
||||||
|
|
||||||
|
when:
|
||||||
|
event: [push, manual]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# 第一步:构建项目(示例)
|
||||||
|
- name: build
|
||||||
|
image: node:18-alpine
|
||||||
|
commands:
|
||||||
|
- echo "Building project..."
|
||||||
|
- mkdir -p dist/assets
|
||||||
|
- echo '<!DOCTYPE html><html><body><h1>Hello World</h1></body></html>' > dist/index.html
|
||||||
|
- echo 'body { font-family: Arial; }' > dist/assets/style.css
|
||||||
|
- echo 'console.log("App loaded");' > dist/assets/app.js
|
||||||
|
- echo "Build complete!"
|
||||||
|
- ls -R dist/
|
||||||
|
|
||||||
|
# 第二步:上传单个日志文件
|
||||||
|
- name: upload-build-log
|
||||||
|
image: alpine:latest
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID:
|
||||||
|
from_secret: AWS_ACCESS_KEY_ID
|
||||||
|
AWS_SECRET_ACCESS_KEY:
|
||||||
|
from_secret: AWS_SECRET_ACCESS_KEY
|
||||||
|
S3_BUCKET:
|
||||||
|
from_secret: S3_BUCKET
|
||||||
|
S3_ENDPOINT:
|
||||||
|
from_secret: S3_ENDPOINT
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
# 安装 plugin-s3(如果镜像中没有)
|
||||||
|
# 或使用已安装的镜像
|
||||||
|
|
||||||
|
# 创建构建日志
|
||||||
|
date > build.log
|
||||||
|
echo "Build completed successfully" >> build.log
|
||||||
|
|
||||||
|
# 上传日志文件
|
||||||
|
export PLUGIN_SOURCE="build.log"
|
||||||
|
export PLUGIN_BUCKET="$S3_BUCKET"
|
||||||
|
export PLUGIN_TARGET="logs/build-${CI_COMMIT_SHA:0:8}.log"
|
||||||
|
export PLUGIN_ENDPOINT="$S3_ENDPOINT"
|
||||||
|
export PLUGIN_PATH_STYLE=true
|
||||||
|
plugin-s3
|
||||||
|
|
||||||
|
echo "✅ Build log uploaded to s3://$S3_BUCKET/logs/"
|
||||||
|
|
||||||
|
# 第三步:上传整个 dist 文件夹
|
||||||
|
- name: upload-dist-folder
|
||||||
|
image: alpine:latest
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID:
|
||||||
|
from_secret: AWS_ACCESS_KEY_ID
|
||||||
|
AWS_SECRET_ACCESS_KEY:
|
||||||
|
from_secret: AWS_SECRET_ACCESS_KEY
|
||||||
|
S3_BUCKET:
|
||||||
|
from_secret: S3_BUCKET
|
||||||
|
S3_ENDPOINT:
|
||||||
|
from_secret: S3_ENDPOINT
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
# 上传整个 dist 目录
|
||||||
|
export PLUGIN_SOURCE="dist/**/*"
|
||||||
|
export PLUGIN_BUCKET="$S3_BUCKET"
|
||||||
|
export PLUGIN_TARGET="website/${CI_COMMIT_BRANCH}/"
|
||||||
|
export PLUGIN_ENDPOINT="$S3_ENDPOINT"
|
||||||
|
export PLUGIN_PATH_STYLE=true
|
||||||
|
export PLUGIN_STRIP_PREFIX="dist/"
|
||||||
|
export PLUGIN_ACL="public-read"
|
||||||
|
plugin-s3
|
||||||
|
|
||||||
|
echo "✅ Website deployed to s3://$S3_BUCKET/website/${CI_COMMIT_BRANCH}/"
|
||||||
|
|
||||||
|
# 第四步:上传构建产物(压缩包)
|
||||||
|
- name: upload-artifacts
|
||||||
|
image: alpine:latest
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID:
|
||||||
|
from_secret: AWS_ACCESS_KEY_ID
|
||||||
|
AWS_SECRET_ACCESS_KEY:
|
||||||
|
from_secret: AWS_SECRET_ACCESS_KEY
|
||||||
|
S3_BUCKET:
|
||||||
|
from_secret: S3_BUCKET
|
||||||
|
S3_ENDPOINT:
|
||||||
|
from_secret: S3_ENDPOINT
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
# 创建压缩包
|
||||||
|
apk add --no-cache zip
|
||||||
|
zip -r dist-${CI_COMMIT_SHA:0:8}.zip dist/
|
||||||
|
|
||||||
|
# 上传压缩包
|
||||||
|
export PLUGIN_SOURCE="dist-*.zip"
|
||||||
|
export PLUGIN_BUCKET="$S3_BUCKET"
|
||||||
|
export PLUGIN_TARGET="releases/${CI_COMMIT_BRANCH}/"
|
||||||
|
export PLUGIN_ENDPOINT="$S3_ENDPOINT"
|
||||||
|
export PLUGIN_PATH_STYLE=true
|
||||||
|
plugin-s3
|
||||||
|
|
||||||
|
echo "✅ Artifacts uploaded to s3://$S3_BUCKET/releases/${CI_COMMIT_BRANCH}/"
|
||||||
Reference in New Issue
Block a user