diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index 6cd118a..b69a083 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -11,8 +11,9 @@ on: env: DOMAIN_URL: git.kxsw.us #*修改为你 REPO: ${{ vars.REPO }} - TELEGRAM_BOT_TOKEN: 8114337882:AAHkEx03HSu7RxN4IHBJJEnsK9aPPzNLIk0 - TELEGRAM_CHAT_ID: -4940243803 + TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} + TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} + DOCKER_REGISTRY: registry.kxsw.us jobs: build: @@ -51,66 +52,14 @@ jobs: - name: Install dependencies (bun) run: bun install - - name: Decide build target (admin/user/both) - run: | - set -e - COMMIT_MSG="${{ github.event.head_commit.message }}" - BUILD_TARGET="both" - if echo "$COMMIT_MSG" | grep -qi "\[admin-only\]"; then - BUILD_TARGET="admin" - elif echo "$COMMIT_MSG" | grep -qi "\[user-only\]"; then - BUILD_TARGET="user" - else - if git rev-parse HEAD^ >/dev/null 2>&1; then - RANGE="HEAD^..HEAD" - else - RANGE="$(git rev-list --max-parents=0 HEAD)..HEAD" - fi - CHANGED=$(git diff --name-only $RANGE || true) - ADMIN_MATCH=$(echo "$CHANGED" | grep -E '^(apps/admin/|docker/ppanel-admin-web/)' || true) - USER_MATCH=$(echo "$CHANGED" | grep -E '^(apps/user/|docker/ppanel-user-web/)' || true) - PACKAGE_MATCH=$(echo "$CHANGED" | grep -E '^(packages/|turbo.json|package.json|bun.lock)' || true) - if [ -n "$PACKAGE_MATCH" ]; then - BUILD_TARGET="both" - else - if [ -n "$ADMIN_MATCH" ] && [ -z "$USER_MATCH" ]; then BUILD_TARGET="admin"; fi - if [ -n "$USER_MATCH" ] && [ -z "$ADMIN_MATCH" ]; then BUILD_TARGET="user"; fi - if [ -n "$ADMIN_MATCH" ] && [ -n "$USER_MATCH" ]; then BUILD_TARGET="both"; fi - fi - fi - echo "BUILD_TARGET=$BUILD_TARGET" >> $GITHUB_ENV - echo "Decided BUILD_TARGET=$BUILD_TARGET" + - name: Run Build Project (turbo via bun) + run: bun run build - - name: Build Admin (turbo via bun) - if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both' - run: bun run build --filter=apps/admin + - name: Run Build Docker + run: make build - - name: Build User (turbo via bun) - if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both' - run: bun run build --filter=apps/user - - - name: Build Docker (admin) - if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both' - run: make build-admin - - - name: Build Docker (user) - if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both' - run: make build-user - - - name: Login to Docker Registry - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin - - - name: Push Docker Image (admin) - if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both' - run: make push-admin - - - name: Push Docker Image (user) - if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both' - run: make push-user + - name: Push Docker Images + run: make push - name: Notify success to Telegram uses: chapvic/telegram-notify@master