# ci.yaml name: CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: lint-and-test: runs-on: ubuntu-latest strategy: matrix: python-version: [3.9, 3.10, 3.11] steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install flake8 pytest - name: Lint with flake8 run: | flake8 . - name: Run pytest run: | pytest --maxfail=1 --disable-warnings -q build-and-deploy: needs: lint-and-test runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' && github.event_name == 'push' steps: - uses: actions/checkout@v3 - name: Build Docker image run: | docker build -t anycoder:latest . # You could add deployment steps here (e.g., push to registry, deploy to cloud)