name: Build & Deploy ResearchOwl on: push: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Validate manifests run: | for f in k8s/*.yaml; do python3 -c "import yaml; list(yaml.safe_load_all(open('$f')))" && echo "✅ $f OK" done - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Gitea Registry uses: docker/login-action@v3 with: registry: git.chemavx.xyz username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: . push: true tags: git.chemavx.xyz/chemavx/researchowl:latest cache-from: type=registry,ref=git.chemavx.xyz/chemavx/researchowl:cache cache-to: type=registry,ref=git.chemavx.xyz/chemavx/researchowl:cache,mode=max - name: Notify Telegram if: always() env: TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} CHAT: ${{ secrets.TELEGRAM_CHAT_ID }} run: | STATUS="${{ job.status }}" EMOJI="✅" if [ "$STATUS" != "success" ]; then EMOJI="❌"; fi MSG="${EMOJI} ResearchOwl build ${STATUS} — $(git log -1 --pretty='%s')" curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" \ -d chat_id="${CHAT}" -d text="${MSG}"