From 7cedf4fba399d42fc2be5d5c9874fc66765d7d55 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Wed, 24 Sep 2025 19:08:19 -0700 Subject: [PATCH] ci --- .gitea/workflows/docker.yml | 99 +++++++++---------------------------- 1 file changed, 22 insertions(+), 77 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index d356055..f79aa6f 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -1,5 +1,5 @@ -name: Publish Release Assets -run-name: Build and publish web assets and Docker images +name: 发布 Web 镜像 +run-name: 构建并发布 Web Docker 镜像 on: workflow_dispatch: @@ -20,36 +20,26 @@ on: - "package.json" - "turbo.json" - ".gitea/workflows/*.yml" - release: - types: [published] env: - # Gitea - GIT_USERNAME: ${{ vars.GIT_USERNAME }} - GIT_PASSWORD: ${{ vars.GIT_PASSWORD }} - # Docker Hub - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - # Host SSH (用于上传构建产物) - SSH_HOST: ${{ vars.SSH_HOST }} - SSH_PORT: ${{ vars.SSH_PORT }} - SSH_USER: ${{ vars.SSH_USER }} - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + REGISTRY_URL: registry.kxsw.us + ADMIN_IMAGE_NAME: ppanel/ppanel-admin-web + USER_IMAGE_NAME: ppanel/ppanel-user-web jobs: publish: - name: Publish Release Assets - runs-on: ubuntu-latest + name: 发布 Web 镜像 + runs-on: ppanel-web steps: - - name: Checkout codebase + - name: 检出代码 uses: actions/checkout@v4 - - name: Setup Bun + - name: 设置 Bun uses: oven-sh/setup-bun@v1 with: bun-version: 'latest' - - name: Cache Bun dependencies + - name: 缓存 Bun 依赖 uses: actions/cache@v3 with: path: | @@ -58,41 +48,27 @@ jobs: restore-keys: | ${{ runner.os }}-bun-cache- - - name: Install deps + - name: 安装依赖 run: bun install --cache - - name: Build + - name: 构建 run: bun run build - - name: Run publish script - run: | - chmod +x scripts/publish.sh - ./scripts/publish.sh - - - name: Upload tar.gz file to release - if: ${{ gitea.event_name == 'release' }} - uses: softprops/action-gh-release@v2 - with: - files: | - out/ppanel-admin-web.tar.gz - out/ppanel-user-web.tar.gz - token: ${{ secrets.GITEA_TOKEN }} - - - name: Set up QEMU + - name: 设置 QEMU uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx + - name: 设置 Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Install jq + - name: 安装 jq run: sudo apt-get install -y jq - - name: Extract version from package.json + - name: 从 package.json 提取版本 id: version run: echo "PPANEL_VERSION=$(jq -r '.version' package.json)" >> $GITHUB_ENV - - name: Build and push Docker image for ppanel-admin-web + - name: 构建并推送 ppanel-admin-web Docker 镜像 uses: docker/build-push-action@v6 with: context: . @@ -100,10 +76,10 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: | - ${{ env.DOCKER_USERNAME }}/ppanel-admin-web:latest - ${{ env.DOCKER_USERNAME }}/ppanel-admin-web:${{ env.PPANEL_VERSION }} + ${{ env.REGISTRY_URL }}/${{ env.ADMIN_IMAGE_NAME }}:latest + ${{ env.REGISTRY_URL }}/${{ env.ADMIN_IMAGE_NAME }}:${{ env.PPANEL_VERSION }} - - name: Build and push Docker image for ppanel-user-web + - name: 构建并推送 ppanel-user-web Docker 镜像 uses: docker/build-push-action@v6 with: context: . @@ -111,36 +87,5 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: | - ${{ env.DOCKER_USERNAME }}/ppanel-user-web:latest - ${{ env.DOCKER_USERNAME }}/ppanel-user-web:${{ env.PPANEL_VERSION }} - - - name: Upload to SSH server (if configured) - if: ${{ env.SSH_HOST != '' }} - uses: appleboy/ssh-action@v1 - with: - host: ${{ env.SSH_HOST }} - username: ${{ env.SSH_USER }} - key: ${{ env.SSH_PRIVATE_KEY }} - port: ${{ env.SSH_PORT }} - script: | - mkdir -p ~/releases/${{ gitea.ref_name || 'latest' }} - - - name: Upload files via SCP (if SSH configured) - if: ${{ env.SSH_HOST != '' }} - uses: appleboy/scp-action@v1 - with: - host: ${{ env.SSH_HOST }} - username: ${{ env.SSH_USER }} - key: ${{ env.SSH_PRIVATE_KEY }} - port: ${{ env.SSH_PORT }} - source: "out/*.tar.gz" - target: "~/releases/${{ gitea.ref_name || 'latest' }}/" - - - name: Upload artifacts to Gitea - uses: actions/upload-artifact@v3 - with: - name: ppanel-web-assets - path: | - out/ppanel-admin-web.tar.gz - out/ppanel-user-web.tar.gz - \ No newline at end of file + ${{ env.REGISTRY_URL }}/${{ env.USER_IMAGE_NAME }}:latest + ${{ env.REGISTRY_URL }}/${{ env.USER_IMAGE_NAME }}:${{ env.PPANEL_VERSION }}