wpstarter/o-dusk-updater
Symfony Console tool to update Laravel Dusk ChromeDriver binaries outside Laravel. Download latest or specified Chrome/Chromium/ChromeDriver versions, detect installed Chrome and driver versions, and optionally auto-update when outdated.
vendor/bin/), making it lightweight and non-invasive to application logic. Ideal for projects where Dusk is a secondary concern (e.g., testing utilities, microservices).symfony/console and guzzlehttp/guzzle, with no heavyweight or Laravel-specific dependencies. This ensures low overhead and predictable performance.| Risk Area | Description | Mitigation Strategy |
|---|---|---|
| Version Mismatch | ChromeDriver must match Chrome/Chromium major version; mismatches cause test failures. | Enforce version pinning in CI (e.g., update 114) and validate pre-test execution. |
| Permission Issues | Writing to vendor/bin/ may fail in restrictive environments (e.g., Docker). |
Use entrypoint scripts or Docker volume mounts with correct permissions. |
| Network Dependencies | Relies on GitHub API for ChromeDriver releases; outages block updates. | Cache releases locally or use a mirror/CDN for offline environments. |
| Binary Compatibility | Older ChromeDriver versions may lack support for modern Chrome features. | Test with LTS Chrome versions and deprioritize cutting-edge releases. |
| Legacy Support | No explicit support for ChromeDriver versions <74. | Audit target versions; avoid if using legacy stacks. |
| Flaky Tests | Outdated ChromeDriver can introduce intermittent failures. | Run updates pre-test in CI and monitor failure rates post-integration. |
114.x) or allow auto-updates to latest?--headless) need to be preserved post-update?Dockerfile or entrypoint scripts.vendor/bin/chromedriver or CI logs).latest) or pinned versions (e.g., 114).composer require --dev wpstarter/dusk-updater
./vendor/bin/dusk-updater detect # Check current versions
./vendor/bin/dusk-updater update 114 # Test update
- name: Update ChromeDriver
run: ./vendor/bin/dusk-updater update ${{ env.CHROMEDRIVER_VERSION }}
before_script:
- ./vendor/bin/dusk-updater update 114
Dockerfile:
RUN ./vendor/bin/dusk-updater update 114
README.md with supported ChromeDriver versions.| Component | Compatibility Notes |
|---|---|
| Laravel Dusk | Fully compatible; designed for Laravel Dusk workflows. |
| Symfony/PHP | Works outside Laravel due to Symfony Console; ideal for standalone testing suites. |
| ChromeDriver | Must match major version of Chrome/Chromium (e.g., Chrome 114 → ChromeDriver 114.x). |
| Operating Systems | Tested on Linux/macOS/Windows; Docker requires volume permissions. |
| CI/CD Systems | Compatible with GitHub Actions, GitLab CI, Jenkins, etc. |
| Containerization | Works in Docker but may need user/permission adjustments (e.g., USER node). |
vendor/bin/ is writable (fix permissions if needed).vendor/bin/.- name: Update ChromeDriver
run: ./vendor/bin/dusk-updater update 114
- name: Run Dusk Tests
run: php artisan dusk
RUN
How can I help you explore Laravel packages today?