name: Python CI/CD on: push: branches: - main pull_request: branches: - main jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.12" - name: Install uv run: curl -Ls https://astral.sh/uv/install.sh | sh - name: Add uv to PATH run: echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Install dependencies run: uv sync - name: Run tests run: uv run pytest deploy: needs: test runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: Deploy to EC2 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USER }} key: ${{ secrets.EC2_KEY }} script_stop: false script: | export PATH="$HOME/.local/bin:$PATH" cd /var/www/blog-agent git pull origin main uv sync sudo systemctl restart blog-agent echo "Deployment successful"