Add icon and link to DuplicateButton #7087
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: gradio-backend | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
concurrency: | |
group: backend-${{ github.ref }}-${{ github.event_name == 'push' || github.event.inputs.fire != null }} | |
cancel-in-progress: true | |
env: | |
NODE_OPTIONS: "--max-old-space-size=4096" | |
jobs: | |
changes: | |
runs-on: ubuntu-latest | |
outputs: | |
python-client: ${{ steps.changes.outputs.python-client }} | |
gradio: ${{ steps.changes.outputs.gradio }} | |
test: ${{ steps.changes.outputs.test }} | |
workflows: ${{ steps.changes.outputs.workflows }} | |
scripts: ${{ steps.changes.outputs.scripts }} | |
client-scripts: ${{ steps.changes.outputs.client-scripts }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
python-client: | |
- 'client/python/**' | |
gradio: | |
- 'gradio/**' | |
test: | |
- 'test/**' | |
workflows: | |
- '.github/**' | |
scripts: | |
- 'scripts/**' | |
client-test: | |
needs: [changes] | |
if: needs.changes.outputs.python-client == 'true' || needs.changes.outputs.workflows == 'true' | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "windows-latest"] | |
test-type: ["not flaky", "flaky"] | |
python-version: ["3.8"] | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.test-type == 'flaky' }} | |
defaults: | |
run: | |
working-directory: client/python | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: pip | |
cache-dependency-path: | | |
client/python/requirements.txt | |
requirements.txt | |
test/requirements.txt | |
- name: Create env | |
run: | | |
python -m pip install --upgrade virtualenv | |
python -m virtualenv venv | |
- uses: actions/cache@master | |
id: cache | |
with: | |
path: | | |
client/python/venv/* | |
key: python-client-${{ runner.os }}-pip-${{ hashFiles('client/python/requirements.txt') }}-${{ hashFiles('client/python/test/requirements.txt') }} | |
- name: Install Test Requirements (Linux) | |
if: steps.cache.outputs.cache-hit != 'true' && runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
python -m pip install -r test/requirements.txt | |
- name: Install Client Library (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
python -m pip install -e . | |
- name: Lint (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
bash scripts/lint.sh | |
- name: Tests (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
python -m pytest -m "${{ matrix.test-type }}" | |
- name: Install Test Requirements (Windows) | |
if: steps.cache.outputs.cache-hit != 'true' && runner.os == 'Windows' | |
run: | | |
venv\Scripts\activate | |
pip install -r test/requirements.txt | |
- name: Install Client Library (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
venv\Scripts\activate | |
pip install -e . | |
- name: Tests (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
venv\Scripts\activate | |
python -m pytest -m "${{ matrix.test-type }}" | |
test: | |
needs: [changes] | |
if: needs.changes.outputs.gradio == 'true' || needs.changes.outputs.workflows == 'true' || needs.changes.outputs.scripts == 'true' || needs.changes.outputs.test == 'true' | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "windows-latest"] | |
test-type: ["not flaky", "flaky"] | |
python-version: ["3.8"] | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.test-type == 'flaky' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: pip | |
cache-dependency-path: | | |
client/python/requirements.txt | |
requirements.txt | |
test/requirements.txt | |
- name: Create env | |
run: | | |
python -m pip install --upgrade virtualenv | |
python -m virtualenv venv | |
- uses: actions/cache@v3 | |
id: cache | |
with: | |
path: | | |
venv/* | |
key: gradio-lib-${{ runner.os }}-pip-${{ hashFiles('client/python/requirements.txt') }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('test/requirements.txt') }} | |
- uses: actions/cache@v3 | |
id: frontend-cache | |
with: | |
path: | | |
gradio/templates/* | |
key: gradio-lib-front-end-${{ hashFiles('js/**')}} | |
- name: Install pnpm | |
if: steps.frontend-cache.outputs.cache-hit != 'true' | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- uses: actions/setup-node@v3 | |
if: steps.frontend-cache.outputs.cache-hit != 'true' | |
with: | |
node-version: 18 | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Build frontend | |
if: steps.frontend-cache.outputs.cache-hit != 'true' | |
run: | | |
pnpm i --frozen-lockfile | |
pnpm build | |
- name: Install Gradio (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
python -m pip install . | |
- name: Install Test Dependencies (Linux) | |
if: steps.cache.outputs.cache-hit != 'true' && runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
python -m pip install -e . -r test/requirements.txt | |
- name: Install ffmpeg | |
uses: FedericoCarboni/setup-ffmpeg@v2 | |
- name: Lint (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
bash scripts/lint_backend.sh | |
- name: Typecheck (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
bash scripts/type_check_backend.sh | |
- name: Run tests (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
. venv/bin/activate | |
python -m coverage run -m pytest -m "${{ matrix.test-type }}" --ignore=client | |
python -m coverage xml | |
- name: Install Gradio (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
venv\Scripts\activate | |
python -m pip install . | |
- name: Install Test Dependencies (Windows) | |
if: steps.cache.outputs.cache-hit != 'true' && runner.os == 'Windows' | |
run: | | |
venv\Scripts\activate | |
python -m pip install -e . -r test/requirements.txt | |
- name: Run tests (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
venv\Scripts\activate | |
python -m coverage run -m pytest -m "${{ matrix.test-type }}" --ignore=client | |
python -m coverage xml |