ibexa/ci-scripts
Continuous integration helper scripts for Ibexa projects. Includes tooling and pipeline utilities used in Ibexa’s CI workflows, distributed under Ibexa BUL or GPLv2 depending on use.
Installation: Install via Composer or clone the repository and integrate into your Ibexa DXP CI workflow:
composer require ibexa/ci-scripts --dev
Or clone directly:
git clone https://github.com/ibexa/ci-scripts.git
First Use Case: Run a basic Ibexa DXP installation with improved CLI feedback and visual testing:
./ci-scripts/bin/install.sh --edition=COMMUNITY --php-version=8.2 --visual
This installs Ibexa DXP with colored output, visual regression testing, and separated search indexing.
Key Files to Review:
bin/install.sh: Updated with CLI edition passing and colored output.config/recipes/: New visual testing configurations (e.g., visual-testing.yml).tests/: Expanded test suite including Ibexa Headless regression tests.bin/test.sh: Supports --visual flag for visual regression testing.CI Pipeline Integration: Updated scripts now support colored output and visual testing. Example GitHub Actions workflow:
- name: Install Ibexa DXP with Visual Testing
run: ./ci-scripts/bin/install.sh --edition=ENTERPRISE --visual
--visual: Enables visual regression testing (requires ibexa/behat).--php-version: Now defaults to 8.1 (minimum) or 8.2 (recommended).--edition: Passed directly from CLI (no hardcoded productVersion logic).Visual Testing: Leverage the built-in visual regression testing with improved Behat integration:
./ci-scripts/bin/test.sh --visual --recipe=visual-testing.yml
Requires ibexa/behat and a configured tool (e.g., Percy). Skip with --no-visual.
Recipe Customization: Extend recipes with visual testing or Node.js/PHP version updates:
# custom-recipe.yml
install:
- composer install
- nvm install 18
- ./ci-scripts/bin/test.sh --visual
Headless Testing: New Ibexa Headless regression tests are included. Run them with:
./ci-scripts/bin/test.sh --headless
--reset and --visual for local testing with visual feedback:
./ci-scripts/bin/install.sh --edition=COMMUNITY --reset --visual
./ci-scripts/bin/release.sh --version=4.6.0 --php-version=8.2
ibexa/docker installation to the end of the phase for better dependency resolution.composer install for PHP ≥8.1 and composer update otherwise (configurable via recipes).--force if needed.phpunit.xml aligns with project defaults.ibexa/behat and a screenshot tool (e.g., Percy). Skip with --no-visual if not needed./var/www is now marked as a safe Git directory by default. To revert:
git config --global --remove-safe-directory /var/www
php.ini if conflicts arise:
error_handler=
/var/www directly. Use --reset to clean it if needed.-v to scripts for detailed logs (now with colored output):
./ci-scripts/bin/install.sh -v --edition=COMMUNITY --visual
./ci-scripts/bin/test.sh --recipe=custom-recipe.yml --visual
install phase in recipes if needed:
install:
- ./ci-scripts/bin/install.sh --edition=COMMUNITY --no-search
ENTERPRISE) automatically exclude lower-edition packages. Override with --force.visual-testing step in recipes. Example:
visual-testing:
- ./vendor/bin/percy exec -- npm run test:visual
--no-execute-recipes.config/recipes/ and reference them via --recipe=path/to/recipe.yml.
Example for visual testing:
visual-testing:
- ./ci-scripts/bin/test.sh --visual --tool=percy
install phase to run custom commands (e.g., asset compilation):
install:
- ./ci-scripts/bin/install.sh --edition=COMMUNITY
- npm run build
./ci-scripts/bin/test.sh --headless
install phase in recipes:
install:
- ./ci-scripts/bin/install.sh --php-version=8.2
- echo "error_handler=custom_handler" >> /path/to/php.ini
How can I help you explore Laravel packages today?