50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
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}"
|