This repository contains all the configurations required to package Passbolt for multiple Linux distributions.
- Docker
- Ruby
- Bundler
Install the dependencies:
# Configure bundle to use local path
bundle config set --local path '.bundle'
bundle installRequired variables:
export PASSBOLT_FLAVOUR=pro # or 'ce' for Community Edition
export PASSBOLT_COMPONENT=stable # release channel
export PASSBOLT_VERSION=5.1.1 # version to test
export API_CLONE_BRANCH=master # API branch to testOptional variables:
export LOCAL_CREDS=/path/to/docker/config.json # if using private Docker registrybundle exec kitchen list- Complete Test Run (creates, installs, tests, and destroys):
bundle exec kitchen test filesystem-benchmarks-debian-bookworm -t tests/integration- Step-by-Step Testing (useful for debugging):
# Create test environment
bundle exec kitchen create filesystem-benchmarks-debian-bookworm
# Install and configure
bundle exec kitchen converge filesystem-benchmarks-debian-bookworm
# Run tests only
bundle exec kitchen verify filesystem-benchmarks-debian-bookworm -t tests/integration
# Login to test instance
bundle exec kitchen login filesystem-benchmarks-debian-bookworm
# Clean up when done
bundle exec kitchen destroy filesystem-benchmarks-debian-bookworm- Keep Container After Testing (for debugging):
bundle exec kitchen test filesystem-benchmarks-debian-bookworm --destroy=neverfilesystem-benchmarks: Tests file system setup and permissionspurge-benchmarks: Tests package removalruntime-benchmarks: Tests running applicationbreak-benchmarks: Tests error handling
debian-bookwormubuntu-24.04almalinux-9rockylinux-9opensuse-leap-15
- Run with debug logging:
bundle exec kitchen test -l debug- Run specific test file:
bundle exec kitchen verify filesystem-benchmarks-debian-bookworm -t tests/integration/filesystem-benchmarks/controls/systemfiles.rb- Test multiple platforms:
bundle exec kitchen test filesystem-benchmarks-* -t tests/integrationtests/integration/: Contains InSpec tests that verify the installationtests/cookbooks/: Contains Chef recipes for building and installing packagestests/fixtures/: Contains test data and configurations
To inspect a running test instance:
- Use
--destroy=neverwhen running tests - Login to the container:
bundle exec kitchen login filesystem-benchmarks-debian-bookworm- Inside the container, you can check:
- Log files:
/var/log/passbolt/ - Configuration:
/etc/passbolt/ - Service status:
systemctl status nginx,systemctl status php-fpm
- Log files:
To test public code, modify tests/test_env.sh to point to the Passbolt API repository you want to package and test.