Bump esbuild from 0.27.0 to 0.27.1 #11936
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: Continuous integration | |
| on: | |
| push: | |
| branches: [ main ] | |
| paths-ignore: | |
| - '**/*.md' | |
| pull_request: | |
| branches: [ main ] | |
| schedule: | |
| - cron: '15 10 * * *' | |
| env: | |
| SYS_VAR_CI_INSTALL_TEST: 0 | |
| jobs: | |
| testing: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: windows-latest | |
| python-version: "3.10" | |
| node-version: 22.x | |
| shard: 1 | |
| - os: windows-latest | |
| python-version: "3.12" | |
| node-version: 20.x | |
| shard: 2 | |
| - os: ubuntu-latest | |
| python-version: "3.14" | |
| node-version: 22.x | |
| shard: 3 | |
| - os: ubuntu-latest | |
| python-version: "3.11" | |
| node-version: 20.x | |
| shard: 4 | |
| - os: windows-latest | |
| python-version: "3.14" | |
| node-version: 20.x | |
| shard: 1 | |
| - os: ubuntu-latest | |
| python-version: "3.10" | |
| node-version: 20.x | |
| shard: 2 | |
| - os: ubuntu-latest | |
| python-version: "3.13" | |
| node-version: 22.x | |
| shard: 3 | |
| - os: ubuntu-latest | |
| python-version: "3.10" | |
| node-version: 24.x | |
| shard: 4 | |
| - os: ubuntu-latest | |
| python-version: "3.11" | |
| node-version: 20.x | |
| shard: 1 | |
| - os: macos-latest | |
| python-version: "3.11" | |
| node-version: 20.x | |
| shard: 1 | |
| - os: macos-latest | |
| python-version: "3.14" | |
| node-version: 20.x | |
| shard: 2 | |
| - os: macos-latest | |
| python-version: "3.10" | |
| node-version: 20.x | |
| shard: 3 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| - name: Install nodejs dependencies | |
| env: | |
| PLAYWRIGHT_BROWSERS_PATH: 0 | |
| run: | | |
| npm ci | |
| npx playwright install --with-deps | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install uv | |
| uv pip install wheel --python ${{ matrix.python-version }} --system | |
| uv pip install -r Browser/dev-requirements.txt --python ${{ matrix.python-version }} --system | |
| uv pip install -r pyproject.toml --python ${{ matrix.python-version }} --system | |
| - name: Build stubs | |
| run: | | |
| inv node-build | |
| - name: Check types with mypy on Linux | |
| if: matrix.os == 'ubuntu-latest' && matrix.shard == 1 && matrix.python-version != '3.10' | |
| run: | | |
| inv lint-python | |
| - name: Lint atest | |
| if: matrix.shard == 1 | |
| run: | | |
| inv lint-robot | |
| - name: Lint node | |
| if: matrix.shard == 1 | |
| run: | | |
| inv lint-node | |
| - name: Build test app | |
| run: | | |
| inv create-test-app | |
| - name: Start xvfb on Linux | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| export DISPLAY=:99.0 | |
| Xvfb -ac :99 -screen 0 1280x1024x16 > /dev/null 2>&1 & | |
| - name: Run pytests | |
| if: matrix.shard == 1 | |
| run: | | |
| invoke utest | |
| - name: Run Robot Framework tests on linux | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| xvfb-run --auto-servernum inv atest --shard ${{ matrix.shard }}/4 | |
| - name: Run Robot Framework tests on Windows | |
| if: matrix.os == 'windows-latest' | |
| run: | | |
| inv atest --shard ${{ matrix.shard }}/4 | |
| - name: Run Robot Framework tests on macOS | |
| if: matrix.os == 'macos-latest' | |
| run: | | |
| inv atest --shard ${{ matrix.shard }}/4 | |
| - uses: actions/upload-artifact@v5 | |
| if: ${{ always() }} | |
| with: | |
| name: Test results-${{ matrix.os }}-${{ matrix.shard }}-${{ matrix.python-version }}-${{ matrix.node-version }} | |
| path: atest/output | |
| - name: Github Job Summary | |
| if: ${{ always() }} | |
| run: | | |
| python -m GHAReports --robotlog atest/output/output.xml | |
| python -m GHAReports --robotlog atest/output/output.xml --markdown fail.md --no-totals --no-passes --no-skipped --fails --no-warnings | |
| cat fail.md | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ "ubuntu-latest", "windows-latest" ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22.x | |
| cache: 'npm' | |
| - name: Install nodejs dependencies | |
| env: | |
| PLAYWRIGHT_BROWSERS_PATH: 0 | |
| run: | | |
| npm ci | |
| npx playwright install --with-deps | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.12 | |
| cache: 'pip' | |
| - name: Install python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install uv | |
| uv pip install wheel --python 3.12 --system --verbose | |
| uv pip install -r Browser/dev-requirements.txt --python 3.12 --system | |
| uv pip install -r pyproject.toml --python 3.12 --system | |
| - name: Build stubs | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| inv node-build | |
| - name: Build test app | |
| run: | | |
| inv create-test-app | |
| - name: Create Distributable Package | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| inv docs | |
| inv create-package | |
| - uses: actions/upload-artifact@v5 | |
| if: matrix.os == 'ubuntu-latest' | |
| with: | |
| name: rfbrowser-wheel | |
| path: dist/robotframework_browser-*-py3-none-any.whl | |
| - name: Package demoapp | |
| run: | | |
| inv demo-app | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: demoapp-${{ matrix.os }} | |
| path: zip_results/demoapp | |
| test-install: | |
| needs: build | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, ubuntu-latest] | |
| python-version: ["3.10", "3.13"] | |
| node-version: [20.x, 24.x] | |
| exclude: | |
| - python-version: "3.10" | |
| node-version: 20.x | |
| - os: windows-latest | |
| python-version: "3.10" | |
| - os: windows-latest | |
| node-version: 20.x | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Download package for install testing | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: rfbrowser-wheel | |
| - name: Download package for install testing | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: demoapp-${{ matrix.os }} | |
| path: zip_results/demoapp | |
| - name: Unzip demoapp in *nix like | |
| if: matrix.os != 'windows-latest' | |
| run: | | |
| ls -l zip_results/demoapp | |
| unzip -o zip_results/demoapp/demo-app-linux.zip | |
| - name: Unzip demoapp in windows | |
| if: matrix.os == 'windows-latest' | |
| run: | | |
| dir zip_results/demoapp | |
| tar -xf zip_results/demoapp/demo-app-win32.zip | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install Robot Framework Browser on *nix like | |
| run: | | |
| pip install uv | |
| uv pip install ./robotframework_browser-*-py3-none-any.whl --python ${{ matrix.python-version }} --system | |
| if: matrix.os != 'windows-latest' | |
| - name: Install Robot Framework Browser on windows | |
| run: | | |
| pip install uv | |
| uv pip install (gci *.whl)--python ${{ matrix.python-version }} --system | |
| if: matrix.os == 'windows-latest' | |
| - name: Install node deps and python deps for test running | |
| run: | | |
| rfbrowser init | |
| uv pip install wheel --python ${{ matrix.python-version }} --system | |
| uv pip install -r Browser/dev-requirements.txt --python ${{ matrix.python-version }} --system | |
| - name: Test on Ubuntu - serial mode | |
| if: matrix.os == 'ubuntu-latest' | |
| env: | |
| SYS_VAR_CI_INSTALL_TEST: 1 | |
| run: | | |
| rm -rf Browser | |
| export DISPLAY=:99.0 | |
| Xvfb -ac :99 -screen 0 1280x1024x16 > /dev/null 2>&1 & | |
| xvfb-run --auto-servernum invoke atest-robot --smoke | |
| - name: Run Robot Framework tests on windows or macOS | |
| if: matrix.os != 'ubuntu-latest' | |
| env: | |
| SYS_VAR_CI_INSTALL_TEST: 1 | |
| run: | | |
| Remove-Item -Path .\Browser -Force -Recurse | |
| invoke atest-robot --smoke | |
| - name: Uninstall on Linux or MacOS | |
| if: ${{ matrix.os != 'windows-latest' }} | |
| run: | | |
| rfbrowser clean-node | |
| uv pip uninstall robotframework-browser --python ${{ matrix.python-version }} --system | |
| - uses: actions/upload-artifact@v5 | |
| if: ${{ always() }} | |
| with: | |
| name: ${{ matrix.os }} ${{ matrix.python-version }} ${{ matrix.node-version }} Clean install results | |
| path: atest/output | |
| - name: Github Job Summary | |
| if: ${{ always() }} | |
| run: | | |
| python -m GHAReports --robotlog atest/output/output.xml | |
| python -m GHAReports --robotlog atest/output/output.xml --markdown fail.md --no-totals --no-passes --no-skipped --fails --no-warnings | |
| cat fail.md | |
| build_browser_batteries_wheels: | |
| name: Build wheels on ${{ matrix.os }} for BrowserBatteries tests | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| - os: macos-latest | |
| arch: arm64 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22.x" | |
| - name: Setup Python 3.13 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install uv | |
| uv pip install wheel invoke --python 3.13 --system --verbose | |
| python -c "import sys;print(sys.platform)" | |
| python -c "import sysconfig;print(sysconfig.get_platform())" | |
| python -c "import platform;print(platform.machine().lower())" | |
| inv deps | |
| - name: Build stubs | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| inv node-build | |
| - name: Create Distributable Browser Package | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| inv create-package | |
| - uses: actions/upload-artifact@v5 | |
| name: Upload rfbrowser-wheel for BrowserBatteries tests | |
| if: matrix.os == 'ubuntu-latest' | |
| with: | |
| name: rfbrowser-wheel-bb-test | |
| path: dist/robotframework_browser-*-py3-none-any.whl | |
| if-no-files-found: error | |
| - name: Build test app | |
| run: | | |
| inv create-test-app | |
| - name: Package demoapp | |
| run: | | |
| inv demo-app | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: demoapp-bb-test-${{ matrix.os }} | |
| path: zip_results/demoapp | |
| if-no-files-found: error | |
| - name: Create Distributable BrowserBatteries Package | |
| run: | | |
| inv package-nodejs | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: browser-batteries-wheels-bb-test-${{ matrix.os }} | |
| path: browser_batteries/dist/robotframework_browser_batteries-*.whl | |
| if-no-files-found: error | |
| test_browser_batteries_wheels: | |
| needs: | |
| - build_browser_batteries_wheels | |
| name: Test wheels on ${{ matrix.os }} for BrowserBatteries tests | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| - os: macos-latest | |
| arch: arm64 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.14 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.14 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22.x" | |
| - name: Download browser-wheel | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: rfbrowser-wheel-bb-test | |
| path: rfbrowser-wheel | |
| - name: Download BrowserBatteries wheel | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: browser-batteries-wheels-bb-test-${{ matrix.os }} | |
| path: browser-batteries-wheels | |
| - name: Download demoapp | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: demoapp-bb-test-${{ matrix.os }} | |
| path: demoapp | |
| - name: Install Browser and BrowserBatteries | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install rfbrowser-wheel/robotframework_browser-*-py3-none-any.whl | |
| pip install browser-batteries-wheels/robotframework_browser_batteries-*-py3-none-*.whl | |
| rfbrowser --version | |
| rfbrowser install --with-deps | |
| - name: Install test dependencies | |
| run: | | |
| pip install -r Browser/dev-requirements.txt | |
| - name: Unzip demoapp *nix | |
| run: | | |
| rm -rf Browser | |
| rm -rf node | |
| rm -rf browser_batteries | |
| ls -l demoapp | |
| unzip demoapp/demo-app*.zip -d . | |
| - name: Run tests on Linux with packed demoapp | |
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm' | |
| run: | | |
| xvfb-run --auto-servernum invoke atest-robot --smoke | |
| - name: Run tests on MacOS with packed demoapp | |
| if: matrix.os == 'macos-latest' | |
| run: | | |
| inv atest-robot | |
| - uses: actions/upload-artifact@v5 | |
| if: ${{ always() }} | |
| with: | |
| name: Clean_install_results_${{ matrix.os }} | |
| path: atest/output | |
| - name: Github Job Summary | |
| if: ${{ always() }} | |
| run: | | |
| python -m GHAReports --robotlog atest/output/output.xml | |
| python -m GHAReports --robotlog atest/output/output.xml --markdown fail.md --no-totals --no-passes --no-skipped --fails --no-warnings | |
| cat fail.md | |
| docker_image: | |
| runs-on: ubuntu-latest | |
| needs: build_browser_batteries_wheels | |
| permissions: write-all | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| cache: 'pip' | |
| - name: Docker meta | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ghcr.io/marketsquare/robotframework-browser/rfbrowser | |
| tags: | | |
| type=raw,value=tidii | |
| - name: Download browser wheel | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: rfbrowser-wheel-bb-test | |
| path: docker/dist | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build with GitHub Packages | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: docker/Dockerfile.dev_pr | |
| tags: tidii | |
| labels: ${{ steps.meta.outputs.labels }} | |
| push: false | |
| - name: Download demo app | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: demoapp-bb-test-ubuntu-latest | |
| path: demoapp | |
| - name: unzip demo app | |
| run: | | |
| rm -rf node | |
| ls -l demoapp | |
| unzip demoapp/demo-app*.zip -d . | |
| ls -l node | |
| - name: Start demo app and run tests with docker image | |
| run: | | |
| pip install uv | |
| uv pip install invoke robotframework-ghareports --python 3.14 --system | |
| invoke run-test-app-no-build --asynchronous | |
| docker run -v ./atest/:/home/pwuser/test -t tidii:latest bash -c "robot -v SERVER:172.17.0.1:7272 --exclude no-docker-pr -L debug --outputdir /home/pwuser/output /home/pwuser/test" | |
| inv docker-copy-output | |
| - name: Github Job Summary | |
| if: ${{ always() }} | |
| run: | | |
| python -m GHAReports --robotlog output_docker/output.xml | |
| python -m GHAReports --robotlog output_docker/output.xml --markdown fail.md --no-totals --no-passes --no-skipped --fails --no-warnings | |
| cat fail.md |