mirror of
https://github.com/gradio-app/gradio.git
synced 2024-11-21 01:01:05 +08:00
harden CI (#8965)
* test pr * conditional * conditional * conditional * conditional * conditional * changes * changes * add changeset * changes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
This commit is contained in:
parent
d4c503a471
commit
d30432e9c6
7
.changeset/dark-dancers-hide.md
Normal file
7
.changeset/dark-dancers-hide.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
"@gradio/client": minor
|
||||
"gradio": minor
|
||||
"website": minor
|
||||
---
|
||||
|
||||
feat:harden CI
|
@ -1,3 +1,4 @@
|
||||
**/*.md
|
||||
**/js/app/public/**
|
||||
**/pnpm-workspace.yaml
|
||||
**/js/app/dist/**
|
||||
@ -12,7 +13,7 @@
|
||||
**/gradio/**
|
||||
**/.pnpm-store/**
|
||||
**/.venv/**
|
||||
**/.github/**
|
||||
|
||||
/guides/**
|
||||
**/.mypy_cache/**
|
||||
!test-strategy.md
|
||||
@ -25,7 +26,6 @@
|
||||
sweep.yaml
|
||||
**/.vercel/**
|
||||
**/build/**
|
||||
**/*.md
|
||||
**/src/lib/json/**/*
|
||||
**/playwright/.cache/**/*
|
||||
**/theme/src/pollen.css
|
||||
|
164
.github/actions/changes/action.yml
vendored
164
.github/actions/changes/action.yml
vendored
@ -2,18 +2,11 @@ name: "prepare"
|
||||
description: "Prepare workflow"
|
||||
|
||||
inputs:
|
||||
type:
|
||||
description: "Type of workflow"
|
||||
default: "one of: `gradio`, `python-client`, `js`, `js-client`, `functional`"
|
||||
token:
|
||||
description: "Github token"
|
||||
required: true
|
||||
name:
|
||||
description: "Check name"
|
||||
default: "false"
|
||||
commit_status:
|
||||
description: "Whether to create a commit status"
|
||||
default: "true"
|
||||
description: "GitHub token"
|
||||
filter:
|
||||
description: "Which filter to use"
|
||||
|
||||
outputs:
|
||||
should_run:
|
||||
description: "Whether to run the workflow"
|
||||
@ -30,122 +23,55 @@ outputs:
|
||||
source_branch:
|
||||
description: "Source branch"
|
||||
value: ${{ steps.pr.outputs.source_branch }}
|
||||
merge_sha:
|
||||
description: "SHA of the merged result preview branch"
|
||||
value: ${{ steps.pr.outputs.merge_sha }}
|
||||
mergeable:
|
||||
description: "Whether the PR is mergeable"
|
||||
value: ${{ steps.pr.outputs.mergeable }}
|
||||
labels:
|
||||
description: "Labels on the PR"
|
||||
value: ${{ steps.pr.outputs.labels }}
|
||||
found_pr:
|
||||
description: "Whether a PR was found"
|
||||
value: ${{ steps.pr.outputs.found_pr }}
|
||||
run_id:
|
||||
description: "Run ID"
|
||||
value: ${{ steps.pr.outputs.run_id }}
|
||||
gradio_version:
|
||||
description: "Gradio version"
|
||||
value: ${{ steps.pr.outputs.gradio_version }}
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: "Get PR number"
|
||||
id: pr
|
||||
uses: "gradio-app/github/actions/find-pr@main"
|
||||
with:
|
||||
github_token: ${{ inputs.token }}
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: ${{ github.repository }}
|
||||
ref: ${{ steps.pr.outputs.sha }}
|
||||
fetch-depth: 0
|
||||
token: ${{ inputs.token }}
|
||||
- uses: dorny/paths-filter@v3
|
||||
- uses: gradio-app/github/actions/filter-paths@main
|
||||
id: changes
|
||||
with:
|
||||
base: main
|
||||
ref: ${{ steps.pr.outputs.sha == github.sha && 'main' || steps.pr.outputs.sha }}
|
||||
filters: |
|
||||
gradio:
|
||||
- 'client/python/**'
|
||||
- 'gradio/**'
|
||||
- 'requirements.txt'
|
||||
- '.github/**'
|
||||
- 'scripts/**'
|
||||
- 'test/**'
|
||||
js:
|
||||
- 'js/**'
|
||||
- 'client/js/**'
|
||||
- '.github/**'
|
||||
- 'package.json'
|
||||
- 'pnpm-lock.yaml'
|
||||
- 'tsconfig.json'
|
||||
- '.config/**'
|
||||
functional:
|
||||
- '.github/**'
|
||||
- 'client/**'
|
||||
- 'demo/**'
|
||||
- 'gradio/**'
|
||||
- 'js/**'
|
||||
- 'scripts/**'
|
||||
- 'globals.d.ts'
|
||||
- 'package.json'
|
||||
- 'pnpm-lock.yaml'
|
||||
- 'pyproject.toml'
|
||||
- 'requirements.txt'
|
||||
- '.config/**'
|
||||
visual:
|
||||
- '.github/workflows/deploy-chromatic.yml'
|
||||
- 'js!(/_website)/**'
|
||||
- 'package.json'
|
||||
website:
|
||||
- 'js/_website/**'
|
||||
- 'package.json'
|
||||
- 'pnpm-lock.yaml'
|
||||
- 'guides/**'
|
||||
- 'README.md'
|
||||
- 'CHANGELOG.md'
|
||||
- 'gradio/**'
|
||||
- 'client/**'
|
||||
- 'demo/**'
|
||||
- '.github/deplooy-website.yml'
|
||||
|
||||
- name: set env (gradio)
|
||||
if: ${{ inputs.type == 'gradio' }}
|
||||
shell: bash
|
||||
run: echo "SHOULD_RUN=${{ steps.changes.outputs.gradio == 'true' }}" >> $GITHUB_ENV
|
||||
- name: set env (js)
|
||||
if: ${{ inputs.type == 'js' }}
|
||||
shell: bash
|
||||
run: echo "SHOULD_RUN=${{ steps.changes.outputs.js == 'true' }}" >> $GITHUB_ENV
|
||||
- name: set env (functional)
|
||||
if: ${{ inputs.type == 'functional' }}
|
||||
shell: bash
|
||||
run: echo "SHOULD_RUN=${{ steps.changes.outputs.functional == 'true' }}" >> $GITHUB_ENV
|
||||
- name: set env (visual)
|
||||
if: ${{ inputs.type == 'visual' }}
|
||||
shell: bash
|
||||
run: echo "SHOULD_RUN=${{ steps.changes.outputs.visual == 'true' }}" >> $GITHUB_ENV
|
||||
- name: set end (all)
|
||||
if: ${{ inputs.type == 'all' }}
|
||||
shell: bash
|
||||
run: echo "SHOULD_RUN=true" >> $GITHUB_ENV
|
||||
- name: set env (website)
|
||||
if: ${{ inputs.type == 'website' }}
|
||||
shell: bash
|
||||
run: echo "SHOULD_RUN=${{ steps.changes.outputs.website == 'true' }}" >> $GITHUB_ENV
|
||||
- if: ${{ steps.pr.outputs.mergeable == 'false' && steps.pr.outputs.source_branch != 'main' }}
|
||||
run: echo "SHOULD_RUN=false" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
- name: set output
|
||||
id: should_run
|
||||
shell: bash
|
||||
run: echo "should_run=${{ env.SHOULD_RUN }}" >> $GITHUB_OUTPUT
|
||||
- uses: "gradio-app/github/actions/commit-status@main"
|
||||
with:
|
||||
token: ${{ inputs.token }}
|
||||
pr: ${{ steps.pr.outputs.pr_number }}
|
||||
sha: ${{ steps.pr.outputs.sha }}
|
||||
name: ${{ inputs.name }}
|
||||
changes: ${{ steps.changes.outputs.changes }}
|
||||
type: ${{ inputs.type }}
|
||||
init: true
|
||||
mergeable: ${{ steps.pr.outputs.source_branch == 'main' || steps.pr.outputs.mergeable }}
|
||||
commit_status: ${{ inputs.type == 'visual' && steps.should_run.outputs.should_run == 'false' || inputs.commit_status }}
|
||||
filter: ${{ inputs.filter }}
|
||||
- name: get gradio version
|
||||
id: gradio_version
|
||||
run: |
|
||||
GRADIO_VERSION=$(curl -s https://pypi.org/pypi/gradio/json | grep -o '"version":"[^"]*"' | cut -d'"' -f4 | head -n 1)"
|
||||
echo $GRADIO_VERSION >> $GITHUB_OUTPUT
|
||||
- name: convert to JSON
|
||||
uses: gradio-app/github/actions/input-to-json@main
|
||||
with:
|
||||
path: output.json
|
||||
sha: ${{ github.event.pull_request?.head.sha || github.sha }}
|
||||
source_repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
|
||||
source_branch: ${{ github.event.pull_request.head.ref || github.ref }}
|
||||
pr_number: ${{ github.event.pull_request?.number || 'false'}}
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
labels: ${{ github.event.pull_request.labels }}
|
||||
run_id: ${{ github.run_id }}
|
||||
gradio_version: ${{ steps.gradio_version.outputs.gradio_version }}
|
||||
- name: cat json #remove
|
||||
run: cat output.json
|
||||
shell: bash
|
||||
- name: upload JSON
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: output.json
|
||||
path: output.json
|
||||
- name: set outputs
|
||||
id: pr
|
||||
uses: gradio-app/github/actions/json_to_outputs@main
|
||||
with:
|
||||
json: output.json
|
||||
- name: echo outputs #remove
|
||||
run: echo ${{ toJson(steps.pr.outputs) }}
|
||||
shell: bash
|
||||
|
30
.github/actions/install-all-deps/action.yml
vendored
30
.github/actions/install-all-deps/action.yml
vendored
@ -1,28 +1,28 @@
|
||||
name: 'install all deps'
|
||||
description: 'Install all deps'
|
||||
name: "install all deps"
|
||||
description: "Install all deps"
|
||||
|
||||
inputs:
|
||||
always_install_pnpm:
|
||||
description: 'Dictates whether or not we should install pnpm & dependencies, regardless of the cache'
|
||||
default: 'false'
|
||||
description: "Dictates whether or not we should install pnpm & dependencies, regardless of the cache"
|
||||
default: "false"
|
||||
skip_build:
|
||||
description: 'Skip build'
|
||||
default: 'false'
|
||||
description: "Skip build"
|
||||
default: "false"
|
||||
build_lite:
|
||||
description: 'Build lite'
|
||||
default: 'false'
|
||||
description: "Build lite"
|
||||
default: "false"
|
||||
test:
|
||||
description: 'Test'
|
||||
default: 'false'
|
||||
description: "Test"
|
||||
default: "false"
|
||||
python_version:
|
||||
description: 'Python version'
|
||||
default: '3.8'
|
||||
description: "Python version"
|
||||
default: "3.8"
|
||||
os:
|
||||
description: 'OS'
|
||||
default: 'ubuntu-latest'
|
||||
description: "OS"
|
||||
default: "ubuntu-latest"
|
||||
outputs:
|
||||
venv_activate:
|
||||
description: 'Venv activate'
|
||||
description: "Venv activate"
|
||||
value: ${{ steps.venv.outputs.venv_activate }}
|
||||
|
||||
runs:
|
||||
|
16
.github/actions/install-frontend-deps/action.yml
vendored
16
.github/actions/install-frontend-deps/action.yml
vendored
@ -1,16 +1,16 @@
|
||||
name: 'install frontend'
|
||||
description: 'Install frontend deps'
|
||||
name: "install frontend"
|
||||
description: "Install frontend deps"
|
||||
|
||||
inputs:
|
||||
always_install_pnpm:
|
||||
description: 'Dictates whether or not we should install pnpm & dependencies, regardless of the cache'
|
||||
default: 'false'
|
||||
description: "Dictates whether or not we should install pnpm & dependencies, regardless of the cache"
|
||||
default: "false"
|
||||
skip_build:
|
||||
description: 'Skip build'
|
||||
default: 'false'
|
||||
description: "Skip build"
|
||||
default: "false"
|
||||
build_lite:
|
||||
description: 'Build lite'
|
||||
default: 'false'
|
||||
description: "Build lite"
|
||||
default: "false"
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
51
.github/filters.json
vendored
Normal file
51
.github/filters.json
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"gradio": [
|
||||
"client/python/**",
|
||||
"gradio/**",
|
||||
"requirements.txt",
|
||||
".github/**",
|
||||
"scripts/**",
|
||||
"test/**"
|
||||
],
|
||||
"js": [
|
||||
"js/**",
|
||||
"client/js/**",
|
||||
".github/**",
|
||||
"package.json",
|
||||
"pnpm-lock.yaml",
|
||||
"tsconfig.json",
|
||||
".config/**"
|
||||
],
|
||||
"functional": [
|
||||
".github/**",
|
||||
"client/**",
|
||||
"demo/**",
|
||||
"gradio/**",
|
||||
"js/**",
|
||||
"scripts/**",
|
||||
|
||||
"globals.d.ts",
|
||||
"package.json",
|
||||
"pnpm-lock.yaml",
|
||||
"pyproject.toml",
|
||||
"requirements.txt",
|
||||
".config/**"
|
||||
],
|
||||
"visual": [
|
||||
".github/workflows/deploy-chromatic.yml",
|
||||
"js!(/_website)/**",
|
||||
"package.json"
|
||||
],
|
||||
"website": [
|
||||
"js/_website/**",
|
||||
"package.json",
|
||||
"pnpm-lock.yaml",
|
||||
"guides/**",
|
||||
"README.md",
|
||||
"CHANGELOG.md",
|
||||
"gradio/**",
|
||||
"client/**",
|
||||
"demo/**",
|
||||
".github/deploy-website.yml"
|
||||
]
|
||||
}
|
1
.github/workflows/comment-queue.yml
vendored
1
.github/workflows/comment-queue.yml
vendored
@ -22,6 +22,7 @@ on:
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
environment: comment_pr
|
||||
concurrency:
|
||||
group: ${{inputs.pr_number || inputs.tag}}
|
||||
runs-on: ubuntu-latest
|
||||
|
45
.github/workflows/delete-stale-spaces.yml
vendored
45
.github/workflows/delete-stale-spaces.yml
vendored
@ -1,35 +1,36 @@
|
||||
# safe runs from main
|
||||
|
||||
name: Delete Stale Spaces
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
daysStale:
|
||||
description: 'How stale a space needs to be to be deleted (days)'
|
||||
description: "How stale a space needs to be to be deleted (days)"
|
||||
required: true
|
||||
default: '7'
|
||||
|
||||
default: "7"
|
||||
|
||||
jobs:
|
||||
delete-old-spaces:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.9'
|
||||
- name: Install pip
|
||||
run: python -m pip install pip wheel requests
|
||||
- name: Install Hub Client Library
|
||||
run: pip install huggingface-hub==0.9.1
|
||||
- name: Set daysStale
|
||||
env:
|
||||
DEFAULT_DAYS_STALE: '7'
|
||||
run: echo "DAYS_STALE=${{ github.event.inputs.daysStale || env.DEFAULT_DAYS_STALE }}" >> $GITHUB_ENV
|
||||
- name: Find and delete stale spaces
|
||||
run: |
|
||||
python scripts/delete_old_spaces.py $DAYS_STALE \
|
||||
gradio-pr-deploys \
|
||||
${{ secrets.SPACES_DEPLOY_TOKEN }}
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.9"
|
||||
- name: Install pip
|
||||
run: python -m pip install pip wheel requests
|
||||
- name: Install Hub Client Library
|
||||
run: pip install huggingface-hub==0.9.1
|
||||
- name: Set daysStale
|
||||
env:
|
||||
DEFAULT_DAYS_STALE: "7"
|
||||
run: echo "DAYS_STALE=${{ github.event.inputs.daysStale || env.DEFAULT_DAYS_STALE }}" >> $GITHUB_ENV
|
||||
- name: Find and delete stale spaces
|
||||
run: |
|
||||
python scripts/delete_old_spaces.py $DAYS_STALE \
|
||||
gradio-pr-deploys \
|
||||
${{ secrets.SPACES_DEPLOY_TOKEN }}
|
||||
|
176
.github/workflows/deploy-spaces.yml
vendored
176
.github/workflows/deploy-spaces.yml
vendored
@ -1,176 +0,0 @@
|
||||
name: "deploy / spaces"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
merge_sha: ${{ steps.changes.outputs.merge_sha }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
found_pr: ${{ steps.changes.outputs.found_pr }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
type: "functional"
|
||||
name: "deploy / spaces"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit_status: false
|
||||
|
||||
comment-spaces-start:
|
||||
needs: changes
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
if: ${{ needs.changes.outputs.should_run == 'true' }}
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: spaces~pending~null
|
||||
deploy-spaces:
|
||||
outputs:
|
||||
space_url: ${{ steps.upload-demo.outputs.SPACE_URL }}
|
||||
gradio_version: ${{ steps.get_gradio_version.outputs.gradio_version }}
|
||||
js_tarball_url: ${{ steps.upload_js_tarball.outputs.js_tarball_url }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.should_run == 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ needs.changes.outputs.merge_sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
python_version: '3.9'
|
||||
build_lite: 'true'
|
||||
|
||||
- name: Package Lite NPM package
|
||||
working-directory: js/lite
|
||||
run: pnpm pack --pack-destination .
|
||||
- name: Upload Lite NPM package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: gradio-lite-${{ github.sha }}
|
||||
path: js/lite/gradio-lite-*.tgz
|
||||
|
||||
- name: Install pip
|
||||
run: python -m pip install build requests
|
||||
- name: Get Gradio Version
|
||||
id: get_gradio_version
|
||||
run: |
|
||||
if ${{ github.event_name == 'pull_request' || github.event.workflow_run.event == 'pull_request' }}; then
|
||||
echo "GRADIO_VERSION=$(python -c 'import requests;print(requests.get("https://pypi.org/pypi/gradio/json").json()["info"]["version"])')" >> $GITHUB_OUTPUT
|
||||
python -c "import os;print(os.environ['GITHUB_REF'].split('/')[2])" > pr_number.txt
|
||||
else
|
||||
echo "GRADIO_VERSION=$(python -c 'import json; print(json.load(open("gradio/package.json"))["version"])')" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
- name: Build pr package
|
||||
run: |
|
||||
python -c 'import json; j = json.load(open("gradio/package.json")); j["version"] = "${{ steps.get_gradio_version.outputs.GRADIO_VERSION }}"; json.dump(j, open("gradio/package.json", "w"))'
|
||||
python3 -m build -w
|
||||
|
||||
- name: Set up Demos
|
||||
run: |
|
||||
python scripts/copy_demos.py https://gradio-builds.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/gradio-${{ steps.get_gradio_version.outputs.GRADIO_VERSION }}-py3-none-any.whl \
|
||||
"gradio-client @ git+https://github.com/gradio-app/gradio@${{ needs.changes.outputs.sha }}#subdirectory=client/python"
|
||||
- name: Upload wheel
|
||||
run: |
|
||||
export AWS_ACCESS_KEY_ID=${{ secrets.PR_DEPLOY_KEY }}
|
||||
export AWS_SECRET_ACCESS_KEY=${{ secrets.PR_DEPLOY_SECRET }}
|
||||
export AWS_DEFAULT_REGION=us-east-1
|
||||
aws s3 cp dist/gradio-${{ steps.get_gradio_version.outputs.GRADIO_VERSION }}-py3-none-any.whl s3://gradio-builds/${{ needs.changes.outputs.sha }}/
|
||||
- name: Create and Upload JS Client Tarball to S3
|
||||
id: upload_js_tarball
|
||||
continue-on-error: true
|
||||
run: |
|
||||
cd client/js
|
||||
tarball_name=$(npm pack)
|
||||
export AWS_ACCESS_KEY_ID=${{ secrets.PR_DEPLOY_KEY }}
|
||||
export AWS_SECRET_ACCESS_KEY=${{ secrets.PR_DEPLOY_SECRET }}
|
||||
export AWS_DEFAULT_REGION=us-east-1
|
||||
aws s3 cp $tarball_name s3://gradio-builds/${{ needs.changes.outputs.sha }}/$tarball_name
|
||||
echo "js_tarball_url=https://gradio-builds.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/$tarball_name" >> $GITHUB_OUTPUT
|
||||
- name: Install Hub Client Library
|
||||
run: pip install huggingface-hub==0.23.2
|
||||
# temporary, but ensures the script cannot be modified in a PR
|
||||
- name: Get deploy scripts
|
||||
run: |
|
||||
curl https://raw.githubusercontent.com/gradio-app/gradio/main/scripts/upload_demo_to_space.py -o scripts/upload_demo_to_space.py
|
||||
curl https://raw.githubusercontent.com/gradio-app/gradio/main/scripts/upload_website_demos.py -o scripts/upload_website_demos.py
|
||||
- name: Upload demo to spaces
|
||||
if: github.event.workflow_run.event == 'pull_request'
|
||||
id: upload-demo
|
||||
run: |
|
||||
python scripts/upload_demo_to_space.py all_demos \
|
||||
gradio-pr-deploys/pr-${{ needs.changes.outputs.pr_number }}-all-demos \
|
||||
${{ secrets.SPACES_DEPLOY_TOKEN }} \
|
||||
--gradio-version ${{ steps.get_gradio_version.outputs.GRADIO_VERSION }} > url.txt
|
||||
echo "SPACE_URL=$(cat url.txt)" >> $GITHUB_OUTPUT
|
||||
- name: Upload Website Demos
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
id: upload-website-demos
|
||||
run: |
|
||||
python scripts/upload_website_demos.py --AUTH_TOKEN ${{ secrets.WEBSITE_SPACES_DEPLOY_TOKEN }} \
|
||||
--WHEEL_URL https://gradio-builds.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/ \
|
||||
--CLIENT_URL "gradio-client @ git+https://github.com/gradio-app/gradio@${{ needs.changes.outputs.sha }}#subdirectory=client/python" \
|
||||
--GRADIO_VERSION ${{ steps.get_gradio_version.outputs.GRADIO_VERSION }}
|
||||
- name: log
|
||||
run: |
|
||||
echo ${{github.event.workflow_run.event }}
|
||||
echo ${{ github.event.workflow_run.conclusion }}
|
||||
|
||||
comment-spaces-success:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [deploy-spaces, changes]
|
||||
if: needs.deploy-spaces.result == 'success' && needs.changes.outputs.found_pr == 'true'
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: spaces~success~${{ needs.deploy-spaces.outputs.space_url }}
|
||||
additional_text: |
|
||||
**Install Gradio from this PR**
|
||||
```bash
|
||||
pip install https://gradio-builds.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/gradio-${{ needs.deploy-spaces.outputs.gradio_version }}-py3-none-any.whl
|
||||
```
|
||||
|
||||
**Install Gradio Python Client from this PR**
|
||||
```bash
|
||||
pip install "gradio-client @ git+https://github.com/gradio-app/gradio@${{ needs.changes.outputs.sha }}#subdirectory=client/python"
|
||||
```
|
||||
|
||||
**Install Gradio JS Client from this PR**
|
||||
```bash
|
||||
npm install ${{ needs.deploy-spaces.outputs.js_tarball_url }}
|
||||
```
|
||||
comment-spaces-failure:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [deploy-spaces, changes]
|
||||
if: always() && needs.deploy-spaces == 'failure' && needs.changes.outputs.found_pr == 'true'
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: spaces~failure~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/
|
15
.github/workflows/generate-changeset.yml
vendored
15
.github/workflows/generate-changeset.yml
vendored
@ -16,6 +16,7 @@ concurrency:
|
||||
jobs:
|
||||
get-pr:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: github.event.workflow_run.conclusion == 'success'
|
||||
outputs:
|
||||
found_pr: ${{ steps.pr_details.outputs.found_pr }}
|
||||
@ -23,11 +24,11 @@ jobs:
|
||||
source_repo: ${{ steps.pr_details.outputs.source_repo }}
|
||||
source_branch: ${{ steps.pr_details.outputs.source_branch }}
|
||||
steps:
|
||||
- name: get pr details
|
||||
id: pr_details
|
||||
uses: gradio-app/github/actions/find-pr@main
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: get pr details
|
||||
id: pr_details
|
||||
uses: gradio-app/github/actions/find-pr@main
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
comment-changes-start:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: get-pr
|
||||
@ -37,6 +38,8 @@ jobs:
|
||||
pr_number: ${{ needs.get-pr.outputs.pr_number }}
|
||||
message: changes~pending~null
|
||||
version:
|
||||
environment: comment_pr
|
||||
|
||||
permissions: write-all
|
||||
name: static checks
|
||||
needs: get-pr
|
||||
@ -55,7 +58,7 @@ jobs:
|
||||
- name: generate changeset
|
||||
id: version
|
||||
uses: "gradio-app/github/actions/generate-changeset@main"
|
||||
with:
|
||||
with:
|
||||
github_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
main_pkg: gradio
|
||||
pr_number: ${{ needs.get-pr.outputs.pr_number }}
|
||||
|
92
.github/workflows/previews-build.yml
vendored
Normal file
92
.github/workflows/previews-build.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: "storybook-build"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
env:
|
||||
CI: true
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
gradio_version: ${{ steps.changes.outputs.gradio_version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
filter: "visual"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test:
|
||||
name: test
|
||||
runs-on: ubuntu-22.04
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
python_version: "3.9"
|
||||
build_lite: "true"
|
||||
- name: Package Lite NPM package
|
||||
working-directory: js/lite
|
||||
run: pnpm pack --pack-destination .
|
||||
- name: Upload Lite NPM package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: gradio-lite-${{ github.sha }}
|
||||
path: js/lite/gradio-lite-*.tgz
|
||||
|
||||
- name: Build pr package
|
||||
run: |
|
||||
python -c 'import json; j = json.load(open("gradio/package.json")); j["version"] = "${{ needs.changes.outputs.gradio_version }}"; json.dump(j, open("gradio/package.json", "w"))'
|
||||
python3 -m build -w
|
||||
- name: Upload Python package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: gradio-build
|
||||
path: dist/gradio-${{ needs.changes.outputs.gradio_version }}-py3-none-any.whl
|
||||
- name: copy demos
|
||||
uses: gradio-app/gradio/.github/actions/copy-demos@main
|
||||
with:
|
||||
gradio_version: "https://gradio-builds.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/gradio-${{ needs.changes.outputs.gradio_version }}-py3-none-any.whl"
|
||||
gradio_client_version: "gradio-client @ git+https://github.com/gradio-app/gradio@${{ needs.changes.outputs.sha }}#subdirectory=client/python"
|
||||
- name: upload demos
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: demos
|
||||
path: demos/all_demos
|
||||
- name: Create JS client tarball
|
||||
id: create_js_tarball
|
||||
continue-on-error: true
|
||||
run: |
|
||||
cd client/js
|
||||
tarball_name=$(npm pack)
|
||||
echo "tarball_name=client/js/$tarball_name" >> $GITHUB_OUTPUT
|
||||
- name: Upload JS client tarball artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: js-client-tarball
|
||||
path: ${{ steps.create_js_tarball.outputs.tarball_name }}
|
||||
|
||||
- name: upload storybook
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: storybook-static
|
||||
path: storybook-static
|
153
.github/workflows/previews-deploy.yml
vendored
Normal file
153
.github/workflows/previews-deploy.yml
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
name: "deploy / spaces"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
gradio_version: ${{ steps.changes.outputs.gradio_version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
filter: "functional"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
comment-spaces-start:
|
||||
needs: changes
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
if: ${{ needs.changes.outputs.should_run == 'true' }}
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: spaces~pending~null
|
||||
deploy-spaces:
|
||||
environment: deploy_spaces
|
||||
outputs:
|
||||
space_url: ${{ steps.upload-demo.outputs.SPACE_URL }}
|
||||
js_tarball_url: ${{ steps.upload_js_tarball.outputs.js_tarball_url }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.should_run == 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download all artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
- name: list artifacts
|
||||
run: ls -R .
|
||||
|
||||
- name: Set wheel name
|
||||
id: set_wheel_name
|
||||
run: |
|
||||
wheel_file=$(find ./gradio-build -maxdepth 1 -type f -name "*.whl" -print -quit)
|
||||
echo "wheel_name=$wheel_file" >> $GITHUB_OUTPUT
|
||||
- name: Upload wheel
|
||||
run: |
|
||||
export AWS_ACCESS_KEY_ID=${{ secrets.PR_DEPLOY_KEY }}
|
||||
export AWS_SECRET_ACCESS_KEY=${{ secrets.PR_DEPLOY_SECRET }}
|
||||
export AWS_DEFAULT_REGION=us-east-1
|
||||
aws s3 cp ${{ steps.set_wheel_name.outputs.wheel_name}}-py3-none-any.whl s3://gradio-pypi-previews/${{ needs.changes.outputs.sha }}/
|
||||
|
||||
- name: Set tarball name
|
||||
id: set_tarball_name
|
||||
run: |
|
||||
tar_gz_file=$(find ./js-client-tarball -maxdepth 1 -type f -name "*.tgz" -print -quit)
|
||||
echo "tarball_name=$tar_gz_file" >> $GITHUB_OUTPUT
|
||||
- name: Upload JS Client Tarball to S3
|
||||
id: upload_js_tarball
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export AWS_ACCESS_KEY_ID=${{ secrets.PR_DEPLOY_KEY }}
|
||||
export AWS_SECRET_ACCESS_KEY=${{ secrets.PR_DEPLOY_SECRET }}
|
||||
export AWS_DEFAULT_REGION=us-east-1
|
||||
aws s3 cp $tarball_name s3://gradio-npm-previews/${{ needs.changes.outputs.sha }}/${{ steps.set_tarball_name.outputs.tarball_name }}
|
||||
echo "js_tarball_url=https://gradio-npm-previews.s3.amazonaws.com/${{ steps.set_tarball_name.outputs.tarball_name }}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install Hub Client Library
|
||||
run: pip install huggingface-hub==0.23.2
|
||||
# temporary, but ensures the script cannot be modified in a PR
|
||||
- name: Get deploy scripts
|
||||
run: |
|
||||
curl https://raw.githubusercontent.com/gradio-app/gradio/main/scripts/upload_demo_to_space.py -o scripts/upload_demo_to_space.py
|
||||
curl https://raw.githubusercontent.com/gradio-app/gradio/main/scripts/upload_website_demos.py -o scripts/upload_website_demos.py
|
||||
|
||||
|
||||
# safe, pulls from main branch
|
||||
- name: Upload demo to spaces
|
||||
if: github.event.workflow_run.event == 'pull_request'
|
||||
id: upload-demo
|
||||
run: |
|
||||
python scripts/upload_demo_to_space.py all_demos \
|
||||
gradio-pr-deploys/pr-${{ needs.changes.outputs.pr_number }}-all-demos \
|
||||
${{ secrets.SPACES_DEPLOY_TOKEN }} \
|
||||
--gradio-version ${{ needs.changes.outputs.gradio_version }} > url.txt
|
||||
echo "SPACE_URL=$(cat url.txt)" >> $GITHUB_OUTPUT
|
||||
# safe, pulls from main branch
|
||||
- name: Upload Website Demos
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
id: upload-website-demos
|
||||
run: |
|
||||
python scripts/upload_website_demos.py --AUTH_TOKEN ${{ secrets.WEBSITE_SPACES_DEPLOY_TOKEN }} \
|
||||
--WHEEL_URL https://gradio-builds.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/ \
|
||||
--CLIENT_URL "gradio-client @ git+https://github.com/gradio-app/gradio@${{ needs.changes.outputs.sha }}#subdirectory=client/python" \
|
||||
--GRADIO_VERSION ${{ needs.changes.outputs.gradio_version }}
|
||||
- name: log
|
||||
run: |
|
||||
echo ${{github.event.workflow_run.event }}
|
||||
echo ${{ github.event.workflow_run.conclusion }}
|
||||
- name: log context
|
||||
run: |
|
||||
echo ${{ toJson(github) }}
|
||||
|
||||
comment-spaces-success:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [deploy-spaces, changes]
|
||||
if: needs.deploy-spaces.result == 'success'
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: spaces~success~${{ needs.deploy-spaces.outputs.space_url }}
|
||||
additional_text: |
|
||||
**Install Gradio from this PR**
|
||||
```bash
|
||||
pip install https://gradio-pypi-previews.s3.amazonaws.com/${{ needs.changes.outputs.sha }}/gradio-${{ needs.changes.outputs.gradio_version }}-py3-none-any.whl
|
||||
```
|
||||
|
||||
**Install Gradio Python Client from this PR**
|
||||
```bash
|
||||
pip install "gradio-client @ git+https://github.com/gradio-app/gradio@${{ needs.changes.outputs.sha }}#subdirectory=client/python"
|
||||
```
|
||||
|
||||
**Install Gradio JS Client from this PR**
|
||||
```bash
|
||||
npm install ${{ needs.deploy-spaces.outputs.js_tarball_url }}
|
||||
```
|
||||
comment-spaces-failure:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [deploy-spaces, changes]
|
||||
if: always() && needs.deploy-spaces == 'failure'
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: spaces~failure~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/
|
13
.github/workflows/publish.yml
vendored
13
.github/workflows/publish.yml
vendored
@ -1,3 +1,5 @@
|
||||
# safe runs from main
|
||||
|
||||
name: publish
|
||||
on:
|
||||
push:
|
||||
@ -11,6 +13,7 @@ env:
|
||||
jobs:
|
||||
version_or_publish:
|
||||
runs-on: ubuntu-22.04
|
||||
environment: publish
|
||||
steps:
|
||||
- name: checkout repo
|
||||
uses: actions/checkout@v4
|
||||
@ -21,7 +24,7 @@ jobs:
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
skip_build: 'false'
|
||||
skip_build: "false"
|
||||
- name: Build packages
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
@ -36,8 +39,8 @@ jobs:
|
||||
title: "chore: update versions"
|
||||
publish: pnpm ci:publish
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GRADIO_PAT }}
|
||||
- name: add label to skip chromatic build
|
||||
if: ${{ steps.changesets.outputs.pullRequestNumber != '' && steps.changesets.outputs.pullRequestNumber != 'undefined' }}
|
||||
@ -61,8 +64,8 @@ jobs:
|
||||
if: steps.changesets.outputs.hasChangesets != 'true'
|
||||
uses: "gradio-app/github/actions/publish-pypi@main"
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWSACCESSKEYID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWSSECRETKEY }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.SDK_AWS_S3_BUCKET_ACCESS_KEY }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.SDK_AWS_S3_BUCKET_SECRET_ACCESS_KEY }}
|
||||
AWS_DEFAULT_REGION: us-west-2
|
||||
with:
|
||||
user: __token__
|
||||
|
56
.github/workflows/storybook-build.yml
vendored
Normal file
56
.github/workflows/storybook-build.yml
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
name: "storybook-build"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
env:
|
||||
CI: true
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
filter: "visual"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test:
|
||||
name: test
|
||||
runs-on: ubuntu-22.04
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
skip_build: "true"
|
||||
- name: build client
|
||||
run: pnpm --filter @gradio/client build
|
||||
- name: generate theme.css
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
python scripts/generate_theme.py --outfile js/storybook/theme.css
|
||||
- name: build storybook
|
||||
run: pnpm build-storybook --quiet
|
||||
- name: upload storybook
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: storybook-static
|
||||
path: storybook-static
|
@ -2,15 +2,11 @@ name: "test / visual"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
workflows: ["storybook-build"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
|
||||
concurrency:
|
||||
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
@ -18,22 +14,28 @@ jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
labels: ${{ steps.changes.outputs.labels }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
should_run: ${{ steps.json.outputs.should_run }}
|
||||
sha: ${{ steps.json.outputs.sha }}
|
||||
pr_number: ${{ steps.json.outputs.pr_number }}
|
||||
source_branch: ${{ steps.json.outputs.source_branch }}
|
||||
source_repo: ${{ steps.json.outputs.source_repo }}
|
||||
labels: ${{ steps.json.outputs.labels }}
|
||||
run_id: ${{ steps.json.outputs.run_id }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
type: "visual"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
name: "UI Tests"
|
||||
name: artifact-dir
|
||||
path: different_dir
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
- uses: gradio-app/github/actions/json-to-output@main
|
||||
id: json
|
||||
with:
|
||||
path: output.json
|
||||
comment-chromatic-start:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: changes
|
||||
@ -44,7 +46,20 @@ jobs:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: |
|
||||
storybook~pending~null
|
||||
update-status:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.should_run == 'false' || github.repository == 'gradio-app/gradio' || contains(needs.changes.outputs.labels, 'no-visual-update') }}
|
||||
steps:
|
||||
- name: update status
|
||||
uses: gradio-app/github/actions/set-commit-status@main
|
||||
with:
|
||||
sha: ${{ needs.changes.outputs.sha }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
name: "storybook"
|
||||
run_id: ${{ needs.changes.outputs.run_id }}
|
||||
test-visual:
|
||||
environment: storybook
|
||||
name: "test-visual"
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.should_run == 'true' && github.repository == 'gradio-app/gradio' && !contains(needs.changes.outputs.labels, 'no-visual-update') }}
|
||||
@ -54,34 +69,26 @@ jobs:
|
||||
errors: ${{ steps.publish-chromatic.outputs.errorCount }}
|
||||
storybook_url: ${{ steps.publish-chromatic.outputs.storybookUrl }}
|
||||
build_url: ${{ steps.publish-chromatic.outputs.buildUrl }}
|
||||
permissions:
|
||||
actions: read
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: dowload storybook artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ needs.changes.outputs.sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
skip_build: 'true'
|
||||
- name: build client
|
||||
run: pnpm --filter @gradio/client build
|
||||
- name: generate theme.css
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
python scripts/generate_theme.py --outfile js/storybook/theme.css
|
||||
- name: build storybook
|
||||
run: pnpm build-storybook --quiet
|
||||
name: storybook-static
|
||||
path: storybook-static
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: publish to chromatic
|
||||
id: publish-chromatic
|
||||
uses: chromaui/action@v11
|
||||
with:
|
||||
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ secrets.COMMIT_STATUS }}
|
||||
onlyChanged: true
|
||||
exitOnceUploaded: true
|
||||
|
||||
storybookBuildDir: storybook-static
|
||||
|
||||
comment-chromatic-end:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [test-visual, changes]
|
||||
@ -91,7 +98,7 @@ jobs:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: |
|
||||
storybook~success~${{ needs.test-visual.outputs.storybook_url }}
|
||||
|
||||
|
||||
comment-chromatic-fail:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [test-visual, changes]
|
||||
@ -102,8 +109,6 @@ jobs:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: |
|
||||
storybook~failure~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/
|
||||
|
||||
|
||||
|
||||
# visual~success~${{ needs.chromatic-deployment.outputs.changes }}~${{ needs.chromatic-deployment.outputs.errors }}~${{ needs.chromatic-deployment.outputs.build_url }}
|
||||
|
43
.github/workflows/test-functional.yml
vendored
43
.github/workflows/test-functional.yml
vendored
@ -1,17 +1,14 @@
|
||||
name: "test / functional"
|
||||
name: "functional"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
@ -21,30 +18,23 @@ jobs:
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
merge_sha: ${{ steps.changes.outputs.merge_sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
type: "functional"
|
||||
filter: "functional"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
test-functional:
|
||||
name: "test-functional"
|
||||
test:
|
||||
name: "test"
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ needs.changes.outputs.merge_sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
- name: install dependencies
|
||||
id: install_deps
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
@ -92,14 +82,3 @@ jobs:
|
||||
export LITE_APP_LOAD_TIME=$(jq -r '.app_load_time' .lite-perf.json)
|
||||
echo "LITE_APP_LOAD_TIME=$LITE_APP_LOAD_TIME" >> $GITHUB_ENV
|
||||
cat .lite-perf.json # For debugging
|
||||
- name: do check
|
||||
if: always()
|
||||
uses: "gradio-app/github/actions/commit-status@main"
|
||||
with:
|
||||
type: "functional"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
pr: ${{ needs.changes.outputs.pr_number }}
|
||||
sha: ${{ needs.changes.outputs.sha }}
|
||||
name: "test / functional"
|
||||
result: ${{ job.status }}
|
||||
job_id: "test-functional"
|
||||
|
56
.github/workflows/test-hygiene.yml
vendored
56
.github/workflows/test-hygiene.yml
vendored
@ -1,66 +1,30 @@
|
||||
name: "test / hygiene"
|
||||
name: "hygiene"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
test:
|
||||
name: "test"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
merge_sha: ${{ steps.changes.outputs.merge_sha }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
type: "all"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test-hygiene:
|
||||
name: "test-hygiene"
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ needs.changes.outputs.merge_sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
- name: Generate Notebooks
|
||||
run: |
|
||||
pip install nbformat && python scripts/generate_notebooks.py
|
||||
- name: Print Git Status
|
||||
run: echo $(git status) && echo $(git diff)
|
||||
- name: Assert Notebooks Match
|
||||
- name: Assert Notebooks Match
|
||||
run: git status | grep "nothing to commit, working tree clean"
|
||||
- name: Check for large files
|
||||
uses: actionsdesk/lfs-warning@v3.3
|
||||
with:
|
||||
filesizelimit: 5MB
|
||||
- name: do check
|
||||
if: always()
|
||||
uses: "gradio-app/github/actions/commit-status@main"
|
||||
with:
|
||||
type: "all"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
pr: ${{ needs.changes.outputs.pr_number }}
|
||||
sha: ${{ needs.changes.outputs.sha }}
|
||||
name: "test / hygiene"
|
||||
result: ${{ job.status }}
|
||||
job_id: "test-hygiene"
|
||||
|
96
.github/workflows/test-python.yml
vendored
96
.github/workflows/test-python.yml
vendored
@ -1,94 +1,70 @@
|
||||
name: "test / python"
|
||||
name: "python"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
# this is a non-secret secret and provides read access to a set of spaces for testing purposes
|
||||
# this secret has minimal permissions and only has access to things that can be made public
|
||||
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
||||
HF_TOKEN: ${{ vars.HF_TOKEN }}
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
merge_sha: ${{ steps.changes.outputs.merge_sha }}
|
||||
labels: ${{ steps.changes.outputs.labels }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
type: "gradio"
|
||||
name: "test / python / linux"
|
||||
filter: "gradio"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test-python:
|
||||
needs: [changes]
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
test:
|
||||
name: "test-python-${{ matrix.os }}-${{ matrix.test-type == 'flaky' && 'flaky' || 'not-flaky'}}"
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
strategy:
|
||||
matrix:
|
||||
os: ["ubuntu-latest", "windows-latest"]
|
||||
test-type: ["not flaky", "flaky"]
|
||||
exclude:
|
||||
- os: ${{ github.event.workflow_run.event == 'pull_request' && contains( needs.changes.outputs.labels, 'windows-tests') && 'dummy' || 'windows-latest' }}
|
||||
- test-type: ${{ github.event.workflow_run.event == 'pull_request' && contains( needs.changes.outputs.labels, 'flaky-tests') && 'dummy' || 'flaky' }}
|
||||
- os: ${{ github.event_name == 'pull_request' && contains( github.event.pull_request.labels.*.name, 'windows-tests') && 'dummy' || 'windows-latest' }}
|
||||
- test-type: ${{ github.event_name == 'pull_request' && contains( github.event.pull_request.labels.*.name, 'flaky-tests') && 'dummy' || 'flaky' }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ needs.changes.outputs.merge_sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
- name: install dependencies
|
||||
id: install_deps
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
python_version: "3.8"
|
||||
os: ${{ matrix.os }}
|
||||
test: true
|
||||
- name: Lint
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
./scripts/lint_backend.sh
|
||||
- name: Typecheck
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
./scripts/type_check_backend.sh
|
||||
- name: Run tests
|
||||
run: |
|
||||
. ${{steps.install_deps.outputs.venv_activate}}
|
||||
python -m pytest -m "${{ matrix.test-type }}"
|
||||
- name: do check
|
||||
if: always()
|
||||
uses: "gradio-app/github/actions/commit-status@main"
|
||||
with:
|
||||
type: "gradio"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
pr: ${{ needs.changes.outputs.pr_number }}
|
||||
sha: ${{ needs.changes.outputs.sha }}
|
||||
name: "test / python / ${{ matrix.os == 'ubuntu-latest' && 'linux' || 'windows'}}"
|
||||
result: ${{ job.status }}
|
||||
job_id: "test-python-${{ matrix.os }}-${{ matrix.test-type == 'flaky' && 'flaky' || 'not-flaky'}}"
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
id: install_deps
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
python_version: "3.8"
|
||||
os: ${{ matrix.os }}
|
||||
test: true
|
||||
- name: Lint
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
./scripts/lint_backend.sh
|
||||
- name: Typecheck
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
./scripts/type_check_backend.sh
|
||||
- name: Run tests
|
||||
run: |
|
||||
. ${{steps.install_deps.outputs.venv_activate}}
|
||||
python -m pytest -m "${{ matrix.test-type }}"
|
||||
|
40
.github/workflows/tests-js.yml
vendored
40
.github/workflows/tests-js.yml
vendored
@ -1,13 +1,11 @@
|
||||
name: "test / js"
|
||||
name: "js"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
statuses: write
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
env:
|
||||
CI: true
|
||||
@ -15,7 +13,7 @@ env:
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
@ -25,28 +23,23 @@ jobs:
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
merge_sha: ${{ steps.changes.outputs.merge_sha }}
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
type: "js"
|
||||
filter: "js"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test-js:
|
||||
test:
|
||||
name: test
|
||||
runs-on: ubuntu-22.04
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
name: test-js
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ needs.changes.outputs.merge_sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-frontend-deps@main"
|
||||
with:
|
||||
@ -65,14 +58,3 @@ jobs:
|
||||
run: pnpm test:run
|
||||
- name: client tests
|
||||
run: pnpm --filter @gradio/client test
|
||||
- name: do check
|
||||
if: always()
|
||||
uses: "gradio-app/github/actions/commit-status@main"
|
||||
with:
|
||||
type: "js"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
pr: ${{ needs.changes.outputs.pr_number }}
|
||||
sha: ${{ needs.changes.outputs.sha }}
|
||||
name: "test / js"
|
||||
result: ${{ job.status }}
|
||||
job_id: "test-js"
|
||||
|
1
.github/workflows/trigger-changeset.yml
vendored
1
.github/workflows/trigger-changeset.yml
vendored
@ -7,7 +7,6 @@ on:
|
||||
issue_comment:
|
||||
types: [edited]
|
||||
|
||||
|
||||
jobs:
|
||||
changeset:
|
||||
permissions: write-all
|
||||
|
19
.github/workflows/trigger-checks.yml
vendored
19
.github/workflows/trigger-checks.yml
vendored
@ -1,19 +0,0 @@
|
||||
name: trigger
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened, labeled, unlabeled]
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
jobs:
|
||||
checks:
|
||||
permissions: write-all
|
||||
runs-on: ubuntu-22.04
|
||||
if: github.event.sender.login != 'gradio-pr-bot'
|
||||
steps:
|
||||
- run: echo "Requesting checks"
|
68
.github/workflows/website-build.yml
vendored
Normal file
68
.github/workflows/website-build.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
name: "website-build"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 5.0-dev
|
||||
|
||||
env:
|
||||
CI: true
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.event.pull_request.number }}-${{ github.ref_name }}-${{ github.workflow }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
name: "changes"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_run: ${{ steps.changes.outputs.should_run }}
|
||||
sha: ${{ steps.changes.outputs.sha }}
|
||||
gradio_version: ${{ steps.changes.outputs.gradio_version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: "gradio-app/gradio/.github/actions/changes@main"
|
||||
id: changes
|
||||
with:
|
||||
filter: "website"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test:
|
||||
name: test
|
||||
runs-on: ubuntu-22.04
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
skip_build: true
|
||||
# unsafe - pr could have modified the build script
|
||||
- name: build client
|
||||
run: pnpm --filter @gradio/client build
|
||||
|
||||
- name: build website
|
||||
run: pnpm --filter @gradio/website build
|
||||
|
||||
- name: upload website artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website
|
||||
path: js/_website/.vercel
|
||||
|
||||
- name: upload website json artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website-json
|
||||
path: js/_website/src/lib/json
|
||||
- name: upload website json templates
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website-templates
|
||||
path: js/_website/src/lib/templates
|
@ -3,7 +3,7 @@ name: "deploy / website"
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["trigger"]
|
||||
types:
|
||||
types:
|
||||
- requested
|
||||
|
||||
permissions:
|
||||
@ -12,7 +12,6 @@ permissions:
|
||||
concurrency:
|
||||
group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
|
||||
# these variables are not secret and are used to identify the Vercel project
|
||||
env:
|
||||
@ -30,7 +29,6 @@ jobs:
|
||||
pr_number: ${{ steps.changes.outputs.pr_number }}
|
||||
source_branch: ${{ steps.changes.outputs.source_branch }}
|
||||
source_repo: ${{ steps.changes.outputs.source_repo }}
|
||||
found_pr: ${{ steps.changes.outputs.found_pr }}
|
||||
mergeable: ${{ steps.changes.outputs.mergeable }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@ -49,68 +47,69 @@ jobs:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: website~pending~null
|
||||
deploy-website:
|
||||
environment: deploy_website
|
||||
name: "deploy-website"
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: needs.changes.outputs.should_run == 'true'
|
||||
outputs:
|
||||
vercel_url: ${{ steps.output_url.outputs.vercel_url }}
|
||||
env:
|
||||
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|
||||
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
ref: ${{ needs.changes.outputs.merge_sha }}
|
||||
repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }}
|
||||
- name: install dependencies
|
||||
uses: "gradio-app/gradio/.github/actions/install-all-deps@main"
|
||||
name: website-json
|
||||
path: js/_website/lib/json
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
always_install_pnpm: true
|
||||
skip_build: true
|
||||
- name: build client
|
||||
run: pnpm --filter @gradio/client build
|
||||
name: website-templates
|
||||
path: js/_website/lib/templates
|
||||
|
||||
- name: deploy json to aws
|
||||
if: startsWith(needs.changes.outputs.source_branch, 'changeset-release/') && needs.changes.outputs.source_repo == 'gradio-app/gradio'
|
||||
run: |
|
||||
export AWS_ACCESS_KEY_ID=${{ secrets.AWSACCESSKEYID }}
|
||||
export AWS_SECRET_ACCESS_KEY=${{ secrets.AWSSECRETKEY }}
|
||||
export AWS_ACCESS_KEY_ID=${{ secrets.DOCS_JSON_AWS_S3_ACCESS_KEY }}
|
||||
export AWS_SECRET_ACCESS_KEY=${{ secrets.DOCS_JSON_AWS_S3_SECRET_ACCESS_KEY }}
|
||||
export AWS_DEFAULT_REGION=us-west-2
|
||||
version=$(jq -r .version js/_website/src/lib/json/version.json)
|
||||
aws s3 cp ./js/_website/src/lib/json/ s3://gradio-docs-json/$version/ --recursive
|
||||
aws s3 cp ./js/_website/src/lib/templates/ s3://gradio-docs-json/$version/templates/ --recursive
|
||||
- name: Install Vercel CLI
|
||||
run: pnpm install --global vercel@latest
|
||||
version=$(jq -r .version js/_website/lib/json/version.json)
|
||||
aws s3 cp ./js/_website/lib/json/ s3://gradio-docs-json/$version/ --recursive
|
||||
aws s3 cp ./js/_website/lib/templates/ s3://gradio-docs-json/$version/templates/ --recursive
|
||||
|
||||
- name: download website artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: website
|
||||
path: js/_website/.vercel
|
||||
|
||||
# preview
|
||||
- name: Pull Vercel Environment Information
|
||||
shell: bash
|
||||
if: needs.changes.outputs.found_pr == 'true'
|
||||
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
|
||||
- name: Build Project Artifacts
|
||||
if: needs.changes.outputs.found_pr == 'true'
|
||||
shell: bash
|
||||
run: vercel build --token=${{ secrets.VERCEL_TOKEN }}
|
||||
if: needs.changes.outputs.pr_number != 'false'
|
||||
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_DEPLOY_TOKEN }} --cwd js/_website
|
||||
|
||||
- name: Deploy Project Artifacts to Vercel
|
||||
if: needs.changes.outputs.found_pr == 'true'
|
||||
if: needs.changes.outputs.pr_number != 'true'
|
||||
id: output_url
|
||||
shell: bash
|
||||
run: echo "vercel_url=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }})" >> $GITHUB_OUTPUT
|
||||
# production
|
||||
run: echo "vercel_url=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_DEPLOY_TOKEN }} --cwd js/_website)" >> $GITHUB_OUTPUT
|
||||
|
||||
# production
|
||||
- name: Pull Vercel Environment Information
|
||||
if: needs.changes.outputs.source_repo == 'gradio-app/gradio' && needs.changes.outputs.source_branch == 'main'
|
||||
shell: bash
|
||||
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
|
||||
- name: Build Project Artifacts
|
||||
if: needs.changes.outputs.source_repo == 'gradio-app/gradio' && needs.changes.outputs.source_branch == 'main'
|
||||
shell: bash
|
||||
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
|
||||
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_DEPLOY_TOKEN }} --cwd js/_website
|
||||
|
||||
- name: Deploy Project Artifacts to Vercel
|
||||
if: needs.changes.outputs.source_repo == 'gradio-app/gradio' && needs.changes.outputs.source_branch == 'main'
|
||||
shell: bash
|
||||
run: echo "VERCEL_URL=$(vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }})" >> $GITHUB_ENV
|
||||
|
||||
run: echo "VERCEL_URL=$(vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_DEPLOY_TOKEN }})" --cwd js/_website >> $GITHUB_ENV
|
||||
|
||||
comment-deploy-success:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [deploy-website, changes]
|
||||
if: needs.deploy-website.result == 'success' && needs.changes.outputs.found_pr == 'true'
|
||||
if: needs.deploy-website.result == 'success' && needs.changes.outputs.pr_number != 'false'
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
@ -119,10 +118,9 @@ jobs:
|
||||
comment-deploy-failure:
|
||||
uses: "./.github/workflows/comment-queue.yml"
|
||||
needs: [deploy-website, changes]
|
||||
if: always() && needs.deploy-website.result == 'failure' && needs.changes.outputs.found_pr == 'true'
|
||||
if: always() && needs.deploy-website.result == 'failure' && needs.changes.outputs.pr_number != 'false'
|
||||
secrets:
|
||||
gh_token: ${{ secrets.COMMENT_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ needs.changes.outputs.pr_number }}
|
||||
message: website~failure~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/
|
||||
|
BIN
client/js/gradio-client-1.4.0.tgz
Normal file
BIN
client/js/gradio-client-1.4.0.tgz
Normal file
Binary file not shown.
@ -11,15 +11,15 @@
|
||||
"prepare": "svelte-kit sync"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^3.2.0",
|
||||
"@sveltejs/adapter-static": "^3.0.1",
|
||||
"@sveltejs/kit": "^2.5.7",
|
||||
"@sveltejs/adapter-auto": "^3.2.2",
|
||||
"@sveltejs/adapter-static": "^3.0.2",
|
||||
"@sveltejs/kit": "^2.5.20",
|
||||
"@tailwindcss/forms": "^0.5.0",
|
||||
"@tailwindcss/typography": "^0.5.4",
|
||||
"@types/prismjs": "^1.26.0",
|
||||
"flexsearch": "^0.7.43",
|
||||
"prismjs": "1.29.0",
|
||||
"tailwindcss": "^3.1.6",
|
||||
"flexsearch": "^0.7.43"
|
||||
"tailwindcss": "^3.1.6"
|
||||
},
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
|
@ -145,7 +145,7 @@
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/main/docs/third-party-clients"
|
||||
href="./docs/third-party-clients"
|
||||
target="_self"
|
||||
class="shadow-alternate hover:scale-[1.02] group group relative flex flex-col overflow-hidden md:first:row-span-2 rounded-xl bg-gradient-to-r px-3 py-4 dark:border-gray-900 from-{data
|
||||
.COLOR_SETS[3]}-50 hover:shadow-alternate to-white shadow-none transition-shadow dark:from-gray-850 dark:to-gray-950 dark:hover:from-gray-800"
|
||||
|
@ -1,7 +0,0 @@
|
||||
import { redirect } from "@sveltejs/kit";
|
||||
|
||||
export function load({ params, url }) {
|
||||
if (params?.version != "main") {
|
||||
throw redirect(302, `/main` + url.pathname);
|
||||
}
|
||||
}
|
@ -2,7 +2,10 @@ import { redirect } from "@sveltejs/kit";
|
||||
|
||||
export function load({ params }) {
|
||||
if (params?.version)
|
||||
throw redirect(302, `/main/docs/third-party-clients/introduction`);
|
||||
throw redirect(
|
||||
302,
|
||||
`/${params?.version}/docs/third-party-clients/introduction`
|
||||
);
|
||||
|
||||
throw redirect(302, `/main/docs/third-party-clients/introduction`);
|
||||
throw redirect(302, `/docs/third-party-clients/introduction`);
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ export async function load({ params, parent }) {
|
||||
const modules: any = import.meta.glob(
|
||||
"/src/lib/templates*/third-party-clients/**/*.svx"
|
||||
);
|
||||
|
||||
let name = params.doc;
|
||||
let page_path: string | null = null;
|
||||
|
||||
@ -23,7 +22,6 @@ export async function load({ params, parent }) {
|
||||
}
|
||||
|
||||
let version_append = on_main ? "/" : "_" + VERSION.replace(/\./g, "-") + "/";
|
||||
|
||||
let module;
|
||||
|
||||
for (const path in modules) {
|
||||
|
@ -173,7 +173,5 @@ export const redirects = {
|
||||
"/docs/no-reload": "/docs/gradio/NO_RELOAD",
|
||||
"/docs/python-client/python-client": "/docs/python-client/introduction",
|
||||
"/docs/python-client/js-client": "/docs/js-client",
|
||||
"/docs/gradio/interface#interface-queue": "/docs/gradio/interface",
|
||||
"/docs/third-party-clients/introduction":
|
||||
"/main/docs/third-party-clients/introduction"
|
||||
"/docs/gradio/interface#interface-queue": "/docs/gradio/interface"
|
||||
};
|
||||
|
@ -435,7 +435,7 @@ importers:
|
||||
version: 2.2.0
|
||||
'@sveltejs/adapter-vercel':
|
||||
specifier: ^5.3.0
|
||||
version: 5.3.0(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))
|
||||
version: 5.3.0(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))
|
||||
hast-util-to-string:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
@ -450,14 +450,14 @@ importers:
|
||||
version: 0.5.0
|
||||
devDependencies:
|
||||
'@sveltejs/adapter-auto':
|
||||
specifier: ^3.2.0
|
||||
version: 3.2.0(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))
|
||||
specifier: ^3.2.2
|
||||
version: 3.2.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))
|
||||
'@sveltejs/adapter-static':
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))
|
||||
specifier: ^3.0.2
|
||||
version: 3.0.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))
|
||||
'@sveltejs/kit':
|
||||
specifier: ^2.5.7
|
||||
version: 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
specifier: ^2.5.20
|
||||
version: 2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
'@tailwindcss/forms':
|
||||
specifier: ^0.5.0
|
||||
version: 0.5.0(tailwindcss@3.1.6(postcss@8.4.38))
|
||||
@ -4391,13 +4391,13 @@ packages:
|
||||
'@storybook/types@8.1.8':
|
||||
resolution: {integrity: sha512-bWg6WkhnhkWBIu03lUKlX2eOYSjDzpzoulzLh1H4Tl1JReGed+cHbIpdIU6lke2aJyb2BNyzoyudUHKBBGaOzg==}
|
||||
|
||||
'@sveltejs/adapter-auto@3.2.0':
|
||||
resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==}
|
||||
'@sveltejs/adapter-auto@3.2.2':
|
||||
resolution: {integrity: sha512-Mso5xPCA8zgcKrv+QioVlqMZkyUQ5MjDJiEPuG/Z7cV/5tmwV7LmcVWk5tZ+H0NCOV1x12AsoSpt/CwFwuVXMA==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.0.0
|
||||
|
||||
'@sveltejs/adapter-static@3.0.1':
|
||||
resolution: {integrity: sha512-6lMvf7xYEJ+oGeR5L8DFJJrowkefTK6ZgA4JiMqoClMkKq0s6yvsd3FZfCFvX1fQ0tpCD7fkuRVHsnUVgsHyNg==}
|
||||
'@sveltejs/adapter-static@3.0.2':
|
||||
resolution: {integrity: sha512-/EBFydZDwfwFfFEuF1vzUseBoRziwKP7AoHAwv+Ot3M084sE/HTVBHf9mCmXfdM9ijprY5YEugZjleflncX5fQ==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.0.0
|
||||
|
||||
@ -4406,8 +4406,8 @@ packages:
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.4.0
|
||||
|
||||
'@sveltejs/kit@2.5.7':
|
||||
resolution: {integrity: sha512-6uedTzrb7nQrw6HALxnPrPaXdIN2jJJTzTIl96Z3P5NiG+OAfpdPbrWrvkJ3GN4CfWqrmU4dJqwMMRMTD/C7ow==}
|
||||
'@sveltejs/kit@2.5.20':
|
||||
resolution: {integrity: sha512-47rJ5BoYwURE/Rp7FNMLp3NzdbWC9DQ/PmKd0mebxT2D/PrPxZxcLImcD3zsWdX2iS6oJk8ITJbO/N2lWnnUqA==}
|
||||
engines: {node: '>=18.13'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -6710,8 +6710,8 @@ packages:
|
||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
import-meta-resolve@4.0.0:
|
||||
resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==}
|
||||
import-meta-resolve@4.1.0:
|
||||
resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
|
||||
|
||||
imurmurhash@0.1.4:
|
||||
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
|
||||
@ -12582,32 +12582,32 @@ snapshots:
|
||||
'@types/express': 4.17.21
|
||||
file-system-cache: 2.3.0
|
||||
|
||||
'@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))':
|
||||
'@sveltejs/adapter-auto@3.2.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))':
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
import-meta-resolve: 4.0.0
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
import-meta-resolve: 4.1.0
|
||||
|
||||
'@sveltejs/adapter-static@3.0.1(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))':
|
||||
'@sveltejs/adapter-static@3.0.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))':
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
|
||||
'@sveltejs/adapter-vercel@5.3.0(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))':
|
||||
'@sveltejs/adapter-vercel@5.3.0(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))':
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
'@vercel/nft': 0.26.4
|
||||
esbuild: 0.20.2
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
'@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))':
|
||||
'@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38))))(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))':
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.11(@types/node@20.12.8)(lightningcss@1.24.1)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1(postcss@8.4.38)))
|
||||
'@types/cookie': 0.6.0
|
||||
cookie: 0.6.0
|
||||
devalue: 5.0.0
|
||||
esm-env: 1.0.0
|
||||
import-meta-resolve: 4.0.0
|
||||
import-meta-resolve: 4.1.0
|
||||
kleur: 4.1.5
|
||||
magic-string: 0.30.10
|
||||
mrmime: 2.0.0
|
||||
@ -15290,7 +15290,7 @@ snapshots:
|
||||
parent-module: 1.0.1
|
||||
resolve-from: 4.0.0
|
||||
|
||||
import-meta-resolve@4.0.0: {}
|
||||
import-meta-resolve@4.1.0: {}
|
||||
|
||||
imurmurhash@0.1.4: {}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user