From e8eaee0e773bcec49a3acee2873b692b0eda1275 Mon Sep 17 00:00:00 2001 From: ab Date: Tue, 4 Aug 2026 21:31:34 +0800 Subject: [PATCH] ci: add deploy-front workflow (static) + example docker-push workflow --- .gitea/workflows/deploy-front.yml | 41 +++++++++++++++++++++++++++++ .gitea/workflows/example-docker.yml | 32 ++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .gitea/workflows/deploy-front.yml create mode 100644 .gitea/workflows/example-docker.yml diff --git a/.gitea/workflows/deploy-front.yml b/.gitea/workflows/deploy-front.yml new file mode 100644 index 0000000..9a13562 --- /dev/null +++ b/.gitea/workflows/deploy-front.yml @@ -0,0 +1,41 @@ +name: deploy-userbase-front + +on: + push: + branches: [main] + paths: + - 'front/**' + - '.gitea/workflows/deploy-front.yml' + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + # node:20 自带 npm;通过已配置的 registry-mirrors 拉取 + container: + image: node:20 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Use npm mirror (npmmirror) + working-directory: front + run: npm config set registry https://registry.npmmirror.com + + - name: Install dependencies + working-directory: front + run: npm ci + + - name: Build (prod -> dist/prod) + working-directory: front + run: npm run build:prod + + - name: Deploy to static dir (/data/www/userbase/front) + # /data/www/userbase 由 act_runner 全局挂载进每个 job 容器 + run: | + rm -rf /data/www/userbase/front + mkdir -p /data/www/userbase/front + cp -r front/dist/prod/. /data/www/userbase/front/ + echo "deployed front -> /data/www/userbase/front" + + - name: Done + run: ls -la /data/www/userbase/front | head diff --git a/.gitea/workflows/example-docker.yml b/.gitea/workflows/example-docker.yml new file mode 100644 index 0000000..35367bf --- /dev/null +++ b/.gitea/workflows/example-docker.yml @@ -0,0 +1,32 @@ +name: example-docker-push + +# 示例:演示 act_runner 的 docker.sock 能力(构建并推送镜像到 Nexus docker-hosted) +# 需要仓库 Settings -> Actions Secrets 配置: +# NEXUS_USER = admin +# NEXUS_PASSWORD = +# 手动触发(Actions 页面 -> Run workflow),不会自动跑。 +on: + workflow_dispatch: + inputs: + tag: + description: 'image tag to push' + required: false + default: 'demo' + +jobs: + docker-build-push: + runs-on: ubuntu-latest + # docker:24 自带 docker CLI,复用宿主 docker daemon(act_runner 已挂载 docker.sock) + container: + image: docker:24 + steps: + - uses: actions/checkout@v4 + + - name: Login to Nexus docker registry + run: echo "${{ secrets.NEXUS_PASSWORD }}" | docker login nexus:8083 -u ${{ secrets.NEXUS_USER }} + + - name: Build image (front nginx) + run: docker build -t nexus:8083/docker-hosted/userbase-front:${{ inputs.tag }} -f front/docker/Dockerfile front + + - name: Push image + run: docker push nexus:8083/docker-hosted/userbase-front:${{ inputs.tag }}