name: CI Pipeline on: push: branches: - main pull_request: branches: - main jobs: lint-and-test: runs-on: ubuntu-latest steps: # Checkout the repository - name: Checkout code uses: actions/checkout@v3 # Set up Python environment - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9' # Install dependencies - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install flake8 # Lint code with Flake8 - name: Run Flake8 run: | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics # Run Gradio interface test - name: Test Gradio app run: | python -m unittest discover -s tests # (Optional) Cache dependencies - name: Cache dependencies uses: actions/cache@v3 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- deploy: runs-on: ubuntu-latest needs: lint-and-test steps: # Checkout the repository - name: Checkout code uses: actions/checkout@v3 # Deploy to