[REF-2425] Reduce unnecessary CI runs (#2966)
This commit is contained in:
parent
0af4770180
commit
7e4668f5ca
34
.github/workflows/benchmarks.yml
vendored
34
.github/workflows/benchmarks.yml
vendored
@ -5,10 +5,6 @@ on:
|
|||||||
branches: [main]
|
branches: [main]
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
pull_request:
|
|
||||||
branches: [main]
|
|
||||||
paths-ignore:
|
|
||||||
- '**/*.md'
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@ -24,7 +20,6 @@ env:
|
|||||||
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
||||||
PR_TITLE: ${{ github.event.pull_request.title }}
|
PR_TITLE: ${{ github.event.pull_request.title }}
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
reflex-web:
|
reflex-web:
|
||||||
strategy:
|
strategy:
|
||||||
@ -93,6 +88,15 @@ jobs:
|
|||||||
python-version: '3.9.18'
|
python-version: '3.9.18'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: '3.8.18'
|
python-version: '3.8.18'
|
||||||
|
# keep only one python version for MacOS
|
||||||
|
- os: macos-latest
|
||||||
|
python-version: '3.8.18'
|
||||||
|
- os: macos-latest
|
||||||
|
python-version: '3.9.18'
|
||||||
|
- os: macos-latest
|
||||||
|
python-version: '3.10.13'
|
||||||
|
- os: macos-latest
|
||||||
|
python-version: '3.12.0'
|
||||||
include:
|
include:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: '3.10.11'
|
python-version: '3.10.11'
|
||||||
@ -143,13 +147,14 @@ jobs:
|
|||||||
- name: Install additional dependencies for DB access
|
- name: Install additional dependencies for DB access
|
||||||
run: poetry run pip install psycopg2-binary
|
run: poetry run pip install psycopg2-binary
|
||||||
- name: Build reflex
|
- name: Build reflex
|
||||||
run: |
|
run: |
|
||||||
poetry build
|
poetry build
|
||||||
- name: Upload benchmark results
|
- name: Upload benchmark results
|
||||||
# Only run if the database creds are available in this context.
|
# Only run if the database creds are available in this context.
|
||||||
if: ${{ env.DATABASE_URL }}
|
if: ${{ env.DATABASE_URL }}
|
||||||
run: poetry run python scripts/benchmarks/benchmark_reflex_size.py --os ubuntu-latest
|
run:
|
||||||
--python-version 3.11.5 --commit-sha "${{ github.sha }}" --pr-id "${{ github.event.pull_request.id }}"
|
poetry run python scripts/benchmarks/benchmark_reflex_size.py --os ubuntu-latest
|
||||||
|
--python-version 3.11.5 --commit-sha "${{ github.sha }}" --pr-id "${{ github.event.pull_request.id }}"
|
||||||
--db-url "${{ env.DATABASE_URL }}" --branch-name "${{ github.head_ref || github.ref_name }}"
|
--db-url "${{ env.DATABASE_URL }}" --branch-name "${{ github.head_ref || github.ref_name }}"
|
||||||
--measurement-type "reflex-build" --path ./dist
|
--measurement-type "reflex-build" --path ./dist
|
||||||
|
|
||||||
@ -160,8 +165,8 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
# Show OS combos first in GUI
|
# Show OS combos first in GUI
|
||||||
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
python-version: [ '3.11.5']
|
python-version: ['3.11.5']
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
@ -170,7 +175,7 @@ jobs:
|
|||||||
- name: Install Poetry
|
- name: Install Poetry
|
||||||
uses: snok/install-poetry@v1
|
uses: snok/install-poetry@v1
|
||||||
with:
|
with:
|
||||||
version : 1.3.1
|
version: 1.3.1
|
||||||
virtualenvs-create: true
|
virtualenvs-create: true
|
||||||
virtualenvs-in-project: true
|
virtualenvs-in-project: true
|
||||||
virtualenvs-path: .venv
|
virtualenvs-path: .venv
|
||||||
@ -180,15 +185,16 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
python -m venv .venv
|
python -m venv .venv
|
||||||
source .venv/*/activate
|
source .venv/*/activate
|
||||||
poetry install --without dev --no-interaction --no-root
|
poetry install --without dev --no-interaction --no-root
|
||||||
|
|
||||||
- name: Install additional dependencies for DB access
|
- name: Install additional dependencies for DB access
|
||||||
run: poetry run pip install psycopg2-binary
|
run: poetry run pip install psycopg2-binary
|
||||||
|
|
||||||
- if: ${{ env.DATABASE_URL }}
|
- if: ${{ env.DATABASE_URL }}
|
||||||
name: calculate and upload size
|
name: calculate and upload size
|
||||||
run: poetry run python scripts/benchmarks/benchmark_reflex_size.py --os "${{ matrix.os }}"
|
run:
|
||||||
|
poetry run python scripts/benchmarks/benchmark_reflex_size.py --os "${{ matrix.os }}"
|
||||||
--python-version "${{ matrix.python-version }}" --commit-sha "${{ github.sha }}"
|
--python-version "${{ matrix.python-version }}" --commit-sha "${{ github.sha }}"
|
||||||
--pr-id "${{ github.event.pull_request.id }}" --db-url "${{ env.DATABASE_URL }}"
|
--pr-id "${{ github.event.pull_request.id }}" --db-url "${{ env.DATABASE_URL }}"
|
||||||
--branch-name "${{ github.head_ref || github.ref_name }}"
|
--branch-name "${{ github.head_ref || github.ref_name }}"
|
||||||
--measurement-type "reflex-package" --path ./.venv
|
--measurement-type "reflex-package" --path ./.venv
|
||||||
|
10
.github/workflows/check_generated_pyi.yml
vendored
10
.github/workflows/check_generated_pyi.yml
vendored
@ -1,15 +1,19 @@
|
|||||||
name: check-generated-pyi
|
name: check-generated-pyi
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
# We don't just trigger on make_pyi.py and the components dir, because
|
# We don't just trigger on make_pyi.py and the components dir, because
|
||||||
# there are other things that can change the generator output
|
# there are other things that can change the generator output
|
||||||
# e.g. black version, reflex.Component, reflex.Var.
|
# e.g. black version, reflex.Component, reflex.Var.
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
|
||||||
@ -21,7 +25,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ./.github/actions/setup_build_env
|
- uses: ./.github/actions/setup_build_env
|
||||||
with:
|
with:
|
||||||
python-version: "3.11.5"
|
python-version: '3.11.5'
|
||||||
run-poetry-install: true
|
run-poetry-install: true
|
||||||
create-venv-at-path: .venv
|
create-venv-at-path: .venv
|
||||||
- run: |
|
- run: |
|
||||||
|
44
.github/workflows/integration_app_harness.yml
vendored
44
.github/workflows/integration_app_harness.yml
vendored
@ -1,12 +1,16 @@
|
|||||||
name: integration-app-harness
|
name: integration-app-harness
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
|
||||||
@ -18,8 +22,8 @@ jobs:
|
|||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
state_manager: [ "redis", "memory" ]
|
state_manager: ['redis', 'memory']
|
||||||
python-version: ["3.8.18", "3.11.5", "3.12.0"]
|
python-version: ['3.8.18', '3.11.5', '3.12.0']
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
services:
|
services:
|
||||||
# Label used to access the service container
|
# Label used to access the service container
|
||||||
@ -35,22 +39,22 @@ jobs:
|
|||||||
# Maps port 6379 on service container to the host
|
# Maps port 6379 on service container to the host
|
||||||
- 6379:6379
|
- 6379:6379
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ./.github/actions/setup_build_env
|
- uses: ./.github/actions/setup_build_env
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
run-poetry-install: true
|
run-poetry-install: true
|
||||||
create-venv-at-path: .venv
|
create-venv-at-path: .venv
|
||||||
- run: poetry run pip install pyvirtualdisplay pillow
|
- run: poetry run pip install pyvirtualdisplay pillow
|
||||||
- name: Run app harness tests
|
- name: Run app harness tests
|
||||||
env:
|
env:
|
||||||
SCREENSHOT_DIR: /tmp/screenshots
|
SCREENSHOT_DIR: /tmp/screenshots
|
||||||
REDIS_URL: ${{ matrix.state_manager == 'redis' && 'redis://localhost:6379' || '' }}
|
REDIS_URL: ${{ matrix.state_manager == 'redis' && 'redis://localhost:6379' || '' }}
|
||||||
run: |
|
run: |
|
||||||
poetry run pytest integration
|
poetry run pytest integration
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
name: Upload failed test screenshots
|
name: Upload failed test screenshots
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: failed_test_screenshots
|
name: failed_test_screenshots
|
||||||
path: /tmp/screenshots
|
path: /tmp/screenshots
|
||||||
|
15
.github/workflows/integration_tests.yml
vendored
15
.github/workflows/integration_tests.yml
vendored
@ -10,6 +10,10 @@ on:
|
|||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
@ -29,7 +33,6 @@ env:
|
|||||||
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
||||||
PR_TITLE: ${{ github.event.pull_request.title }}
|
PR_TITLE: ${{ github.event.pull_request.title }}
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
example-counter:
|
example-counter:
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
@ -96,9 +99,10 @@ jobs:
|
|||||||
poetry run bash scripts/integration.sh ./reflex-examples/counter dev
|
poetry run bash scripts/integration.sh ./reflex-examples/counter dev
|
||||||
- name: Measure and upload .web size
|
- name: Measure and upload .web size
|
||||||
if: ${{ env.DATABASE_URL }}
|
if: ${{ env.DATABASE_URL }}
|
||||||
run: poetry run python scripts/benchmarks/benchmark_reflex_size.py --os "${{ matrix.os }}"
|
run:
|
||||||
|
poetry run python scripts/benchmarks/benchmark_reflex_size.py --os "${{ matrix.os }}"
|
||||||
--python-version "${{ matrix.python-version }}" --commit-sha "${{ github.sha }}"
|
--python-version "${{ matrix.python-version }}" --commit-sha "${{ github.sha }}"
|
||||||
--pr-id "${{ github.event.pull_request.id }}" --db-url "${{ env.DATABASE_URL }}"
|
--pr-id "${{ github.event.pull_request.id }}" --db-url "${{ env.DATABASE_URL }}"
|
||||||
--branch-name "${{ github.head_ref || github.ref_name }}"
|
--branch-name "${{ github.head_ref || github.ref_name }}"
|
||||||
--measurement-type "counter-app-dot-web" --path ./reflex-examples/counter/.web
|
--measurement-type "counter-app-dot-web" --path ./reflex-examples/counter/.web
|
||||||
|
|
||||||
@ -143,8 +147,9 @@ jobs:
|
|||||||
poetry run bash scripts/integration.sh ./reflex-web prod
|
poetry run bash scripts/integration.sh ./reflex-web prod
|
||||||
- name: Measure and upload .web size
|
- name: Measure and upload .web size
|
||||||
if: ${{ env.DATABASE_URL }}
|
if: ${{ env.DATABASE_URL }}
|
||||||
run: poetry run python scripts/benchmarks/benchmark_reflex_size.py --os "${{ matrix.os }}"
|
run:
|
||||||
|
poetry run python scripts/benchmarks/benchmark_reflex_size.py --os "${{ matrix.os }}"
|
||||||
--python-version "${{ matrix.python-version }}" --commit-sha "${{ github.sha }}"
|
--python-version "${{ matrix.python-version }}" --commit-sha "${{ github.sha }}"
|
||||||
--pr-id "${{ github.event.pull_request.id }}"
|
--pr-id "${{ github.event.pull_request.id }}"
|
||||||
--db-url "${{ env.DATABASE_URL }}" --branch-name "${{ github.head_ref || github.ref_name }}"
|
--db-url "${{ env.DATABASE_URL }}" --branch-name "${{ github.head_ref || github.ref_name }}"
|
||||||
--measurement-type "reflex-web-dot-web" --path ./reflex-web/.web
|
--measurement-type "reflex-web-dot-web" --path ./reflex-web/.web
|
||||||
|
4
.github/workflows/integration_tests_wsl.yml
vendored
4
.github/workflows/integration_tests_wsl.yml
vendored
@ -1,5 +1,9 @@
|
|||||||
name: integration-tests-wsl
|
name: integration-tests-wsl
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: ['main']
|
branches: ['main']
|
||||||
|
4
.github/workflows/pre-commit.yml
vendored
4
.github/workflows/pre-commit.yml
vendored
@ -1,5 +1,9 @@
|
|||||||
name: pre-commit
|
name: pre-commit
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: ['main']
|
branches: ['main']
|
||||||
|
24
.github/workflows/reflex_init_in_docker_test.yml
vendored
24
.github/workflows/reflex_init_in_docker_test.yml
vendored
@ -1,12 +1,16 @@
|
|||||||
name: reflex-init-in-docker-test
|
name: reflex-init-in-docker-test
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
|
||||||
@ -17,12 +21,12 @@ jobs:
|
|||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- shell: bash
|
- shell: bash
|
||||||
run: |
|
run: |
|
||||||
# Run reflex init in a docker container
|
# Run reflex init in a docker container
|
||||||
|
|
||||||
# cwd is repo root
|
# cwd is repo root
|
||||||
docker build -f integration/init-test/Dockerfile -t reflex-init-test integration/init-test
|
docker build -f integration/init-test/Dockerfile -t reflex-init-test integration/init-test
|
||||||
docker run --rm -v $(pwd):/reflex-repo/ reflex-init-test /reflex-repo/integration/init-test/in_docker_test_script.sh
|
docker run --rm -v $(pwd):/reflex-repo/ reflex-init-test /reflex-repo/integration/init-test/in_docker_test_script.sh
|
||||||
|
54
.github/workflows/unit_tests.yml
vendored
54
.github/workflows/unit_tests.yml
vendored
@ -1,12 +1,16 @@
|
|||||||
name: unit-tests
|
name: unit-tests
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: ['main']
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
|
||||||
@ -14,8 +18,8 @@ permissions:
|
|||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
unit-tests:
|
unit-tests:
|
||||||
@ -24,22 +28,22 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
python-version: ["3.8.18", "3.9.18", "3.10.13", "3.11.5", "3.12.0"]
|
python-version: ['3.8.18', '3.9.18', '3.10.13', '3.11.5', '3.12.0']
|
||||||
# Windows is a bit behind on Python version availability in Github
|
# Windows is a bit behind on Python version availability in Github
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: "3.10.13"
|
python-version: '3.10.13'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: "3.9.18"
|
python-version: '3.9.18'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: "3.8.18"
|
python-version: '3.8.18'
|
||||||
include:
|
include:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: "3.10.11"
|
python-version: '3.10.11'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: "3.9.13"
|
python-version: '3.9.13'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: "3.8.10"
|
python-version: '3.8.10'
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
# Service containers to run with `runner-job`
|
# Service containers to run with `runner-job`
|
||||||
services:
|
services:
|
||||||
@ -56,20 +60,20 @@ jobs:
|
|||||||
# Maps port 6379 on service container to the host
|
# Maps port 6379 on service container to the host
|
||||||
- 6379:6379
|
- 6379:6379
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ./.github/actions/setup_build_env
|
- uses: ./.github/actions/setup_build_env
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
run-poetry-install: true
|
run-poetry-install: true
|
||||||
create-venv-at-path: .venv
|
create-venv-at-path: .venv
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
export PYTHONUNBUFFERED=1
|
export PYTHONUNBUFFERED=1
|
||||||
poetry run pytest tests --cov --no-cov-on-fail --cov-report=
|
poetry run pytest tests --cov --no-cov-on-fail --cov-report=
|
||||||
- name: Run unit tests w/ redis
|
- name: Run unit tests w/ redis
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||||
run: |
|
run: |
|
||||||
export PYTHONUNBUFFERED=1
|
export PYTHONUNBUFFERED=1
|
||||||
export REDIS_URL=redis://localhost:6379
|
export REDIS_URL=redis://localhost:6379
|
||||||
poetry run pytest tests --cov --no-cov-on-fail --cov-report=
|
poetry run pytest tests --cov --no-cov-on-fail --cov-report=
|
||||||
- run: poetry run coverage html
|
- run: poetry run coverage html
|
||||||
|
Loading…
Reference in New Issue
Block a user