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 # - 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 }} python -m pip install -r test/requirements.txt python -m pip install -r client/python/test/requirements.txt - name: Install Gradio and Client Libraries Locally (Linux) shell: bash run: | . ${{ env.VENV_ACTIVATE }} python -m pip install -e client/python python -m 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 }} pip install boto3 && python js/_website/generate_jsons/generate.py