Sanjay kumar K
Add GitHub Actions CI/CD pipeline
5bba702
Raw
History Blame Contribute Delete
1.23 kB
name: CI/CD
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
# ---------- CI: runs on every push & pull request ----------
ci:
name: Build & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: pip
- name: Install dependencies
run: pip install -r requirements.txt
- name: Smoke test (app imports without errors)
run: python -c "import app; print('app imports OK')"
- name: Verify Docker image builds
run: docker build -t chatbot-lookupit .
# ---------- CD: only on push to main, after CI passes ----------
deploy:
name: Deploy to Lightsail
needs: ci
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- name: Deploy over SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.LIGHTSAIL_HOST }}
username: ${{ secrets.LIGHTSAIL_USER }}
key: ${{ secrets.LIGHTSAIL_SSH_KEY }}
script: |
cd ~/chatbot_lookupit
git pull origin main
bash deploy/update.sh