gradio/.github/actions/install-all-deps/action.yml
pngwn a8d22f76fc
Ci tweaks 5.3 (#9797)
* enable caching

* fix
2024-10-22 18:38:40 +01:00

97 lines
3.1 KiB
YAML

name: "install all deps"
description: "Install all deps"
inputs:
skip_build:
description: "Skip build"
default: "false"
build_lite:
description: "Build lite"
default: "false"
test:
description: "Test"
default: "false"
python_version:
description: "Python version"
default: "3.10"
os:
description: "OS"
default: "ubuntu-latest"
outputs:
venv_activate:
description: "Venv activate"
value: ${{ steps.venv.outputs.venv_activate }}
runs:
using: "composite"
steps:
- name: Set venv binary path (linux)
if: ${{ inputs.os == 'ubuntu-latest' }}
shell: bash
run: |
echo "VENV_ACTIVATE=venv/bin/activate" >> $GITHUB_ENV
- name: Set venv binary path (windows)
if: ${{ inputs.os == 'windows-latest' }}
shell: bash
run: |
echo "VENV_ACTIVATE=venv\\\Scripts\\\activate" >> $GITHUB_ENV
- name: log venv binary path
id: venv
shell: bash
run: |
echo "venv_activate=$VENV_ACTIVATE" >> $GITHUB_OUTPUT
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python_version }}
cache: pip
cache-dependency-path: |
client/python/requirements.txt
requirements.txt
test/requirements.txt
- name: Create env
shell: bash
run: |
python -m pip install --upgrade virtualenv
python -m virtualenv venv
- name: Install uv
shell: bash
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/cache@v4
id: cache
with:
path: |
venv/**
client/python/venv
restore-keys: |
gradio-lib-${{inputs.python_version}}-${{inputs.os}}-latest-pip-
key: "gradio-lib-${{inputs.python_version}}-${{inputs.os}}-latest-pip-${{ hashFiles('client/python/requirements.txt') }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('test/requirements.txt') }}-${{ hashFiles('client/python/test/requirements.txt') }}${{ inputs.test == 'true' && '-test' || ''}}"
- name: Install ffmpeg
uses: FedericoCarboni/setup-ffmpeg@583042d32dd1cabb8bd09df03bde06080da5c87c # @v2
- name: Install test dependencies
if: inputs.test == 'true' && steps.cache.outputs.cache-hit != 'true'
shell: bash
run: |
. ${{ env.VENV_ACTIVATE }}
uv pip install -r test/requirements.txt
uv pip install -r client/python/test/requirements.txt
- name: Install Gradio and Client Libraries Locally (Linux)
shell: bash
run: |
. ${{ env.VENV_ACTIVATE }}
uv pip install -e client/python
uv pip install -e ".[oauth]"
- name: install-frontend
uses: "gradio-app/gradio/.github/actions/install-frontend-deps@main"
with:
skip_build: ${{ inputs.skip_build }}
build_lite: ${{ inputs.build_lite }}
- name: generate json
shell: bash
if: inputs.os == 'ubuntu-latest'
run: |
. ${{ env.VENV_ACTIVATE }}
uv pip install boto3 && python js/_website/generate_jsons/generate.py