From b9c900b9b10961dfd5f27c64ededa98e02ae7807 Mon Sep 17 00:00:00 2001 From: lingyuzeng Date: Sun, 12 Oct 2025 18:43:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=95=B4=E9=85=8D=E7=BD=AE=E5=8F=82?= =?UTF-8?q?=E8=80=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/linux/woodpecker.yml | 104 +++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 example/linux/woodpecker.yml diff --git a/example/linux/woodpecker.yml b/example/linux/woodpecker.yml new file mode 100644 index 0000000..486f1cc --- /dev/null +++ b/example/linux/woodpecker.yml @@ -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 '

Hello World

' > 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}/" \ No newline at end of file