diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 76b749b971..c97111b036 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -91,6 +91,43 @@ jobs: path: packages/ # Upload the contents of the dist directory retention-days: 1 # Keep artifact for 1 day (adjust as needed) + build-windows: + name: Build Dash Package - Windows + runs-on: windows-latest + timeout-minutes: 30 + outputs: + artifact_name: dash-packages + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Node.js for frontend build + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: npm + + - name: Install NPM dependencies + run: npm ci + + - name: Set up Python for build + uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: pip + + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + python -m pip install "setuptools<80.0.0" + python -m pip install build wheel + python -m pip install -e .[dev,ci] + + - name: Build Dash + run: npm run first-build + test-typing: name: Typing Tests runs-on: ubuntu-latest diff --git a/dash/development/update_components.py b/dash/development/update_components.py index 2789be22fd..db219a86b0 100644 --- a/dash/development/update_components.py +++ b/dash/development/update_components.py @@ -43,8 +43,8 @@ def bootstrap_components(components_source, concurrency, install_type): else "{dash-core-components,dash-html-components,dash-table}" ) - cmdstr = f"npx lerna exec --concurrency {concurrency} --scope='{source_glob}' -- npm {install_type}" - cmd = shlex.split(cmdstr, posix=not is_windows) + cmdstr = f'npx lerna exec --concurrency {concurrency} --scope="{source_glob}" -- npm {install_type}' + cmd = shlex.split(cmdstr, posix=True) status_print(cmdstr) with subprocess.Popen( @@ -79,8 +79,8 @@ def build_components(components_source, concurrency): else "{dash-core-components,dash-html-components,dash-table}" ) - cmdstr = f"npx lerna exec --concurrency {concurrency} --scope='{source_glob}' -- npm run build" - cmd = shlex.split(cmdstr, posix=not is_windows) + cmdstr = f'npx lerna exec --concurrency {concurrency} --scope="{source_glob}" -- npm run build' + cmd = shlex.split(cmdstr, posix=True) status_print(cmdstr) with subprocess.Popen(