name: Docker Build & Deploy on: workflow_dispatch: push: branches: [ main ] env: COMPOSE_PROJECT_NAME: nasrobot IMAGE_NAME: nasrobot-app jobs: build: name: Build Docker Image runs-on: ubuntu-latest steps: # ✅ 使用 Gitea 兼容的代码检出方式 - name: Checkout code uses: actions/checkout@v3 - name: Cleanup old containers run: | lsb_release -a || true cat /etc/os-release || true hostnamectl || true pacman -Q || true snap list || true dpkg -l || true docker compose -p $COMPOSE_PROJECT_NAME down || true docker rmi $IMAGE_NAME || true - name: Build new image run: docker build -t $IMAGE_NAME . deploy: name: Deploy to Production runs-on: ubuntu-latest needs: build environment: production steps: - name: Checkout code uses: https://gitea.com/actions/checkout@v3 - name: Start containers run: | docker compose -p $COMPOSE_PROJECT_NAME down docker compose -p $COMPOSE_PROJECT_NAME up -d --build