|
|
|
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 . |
|
|
|
|
|
|