{"id":44368617,"url":"https://github.com/ascoderu/iiab-lokole-tests","last_synced_at":"2026-02-11T19:09:43.800Z","repository":{"id":336836721,"uuid":"1151328420","full_name":"ascoderu/iiab-lokole-tests","owner":"ascoderu","description":"Integration testing suite for Lokole + Internet-in-a-Box across Ubuntu LTS releases","archived":false,"fork":false,"pushed_at":"2026-02-06T14:14:42.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-06T18:29:29.725Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ascoderu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-06T10:28:24.000Z","updated_at":"2026-02-06T14:15:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ascoderu/iiab-lokole-tests","commit_stats":null,"previous_names":["ascoderu/iiab-lokole-tests"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ascoderu/iiab-lokole-tests","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascoderu%2Fiiab-lokole-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascoderu%2Fiiab-lokole-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascoderu%2Fiiab-lokole-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascoderu%2Fiiab-lokole-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ascoderu","download_url":"https://codeload.github.com/ascoderu/iiab-lokole-tests/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ascoderu%2Fiiab-lokole-tests/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29341769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T18:58:20.535Z","status":"ssl_error","status_checked_at":"2026-02-11T18:56:44.814Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-11T19:09:41.246Z","updated_at":"2026-02-11T19:09:43.794Z","avatar_url":"https://github.com/ascoderu.png","language":"Shell","readme":"# IIAB-Lokole Integration Tests\n\n[![Test Ubuntu LTS](https://github.com/ascoderu/iiab-lokole-tests/workflows/test-ubuntu-lts/badge.svg)](https://github.com/ascoderu/iiab-lokole-tests/actions)\n\nAutomated integration testing suite for [Lokole](https://github.com/ascoderu/lokole) offline email integration with [Internet-in-a-Box (IIAB)](https://github.com/iiab/iiab) across multiple Ubuntu LTS releases and deployment scenarios.\n\n## What This Tests\n\n- **Fresh IIAB Installations**: Complete installation with Lokole from scratch\n- **Lokole Upgrades**: Testing upgrade paths from older versions\n- **Ubuntu LTS Releases**: 22.04, 24.04, 26.04 (stable + daily pre-releases)\n- **Python Compatibility**: Validating Python 3.10-3.14+ support with matrix testing\n- **Comprehensive Verification**: Services, sockets, web access, logs, and error detection\n- **Hardware Platforms**: VMs (Multipass/GitHub Actions) and physical Raspberry Pi\n\n## Quick Start\n\n```bash\n# Clone repository\ngit clone --recursive https://github.com/ascoderu/iiab-lokole-tests.git\ncd iiab-lokole-tests\n\n# Run complete test suite on Ubuntu 24.04\n./scripts/scenarios/fresh-install.sh --ubuntu-version 24.04\n\n# Or run all phases automatically\n./run-complete-test.sh\n```\n\n## Python 3.14+ Support\n\nThis test suite supports the full range of Python versions across Ubuntu LTS releases:\n\n| Ubuntu | Python | Status         | Testing Method                |\n| ------ | ------ | -------------- | ----------------------------- |\n| 22.04  | 3.10   | ✅ Stable      | Standard images               |\n| 24.04  | 3.12   | ✅ Stable      | Standard images               |\n| 26.04  | 3.13   | ⚙️ Pre-release | Daily images (`--use-daily`)  |\n| 26.04  | 3.14+  | 🔮 Future      | Auto-supported when available |\n\n**Matrix Testing**: All PR tests run across Ubuntu 22.04, 24.04, and 26.04 (daily) to ensure comprehensive Python version compatibility. This ensures Lokole works seamlessly as Ubuntu evolves to Python 3.14 and beyond.\n\n**Testing pre-release Ubuntu:**\n\n```bash\n./scripts/scenarios/fresh-install.sh --ubuntu-version 26.04 --use-daily\n```\n\n## Repository Structure\n\n```\niiab-lokole-tests/\n├── scripts/\n│   ├── vm/               # VM provisioning (Multipass, Vagrant)\n│   ├── monitoring/       # Installation monitoring and progress tracking\n│   ├── verify/           # Comprehensive verification (JSON reports, PR comments)\n│   ├── scenarios/        # Complete test scenarios\n│   └── analyze/          # Log analysis and reporting\n├── environments/\n│   ├── multipass/        # Multipass cloud-init configs\n│   ├── vagrant/          # Vagrantfiles\n│   └── iiab-configs/     # IIAB local_vars.yml templates\n├── .github/\n│   ├── workflows/        # GitHub Actions CI/CD\n│   └── actions/          # Reusable composite actions\n├── docs/                 # Documentation\n└── roles/                # Git submodule: ansible-role-lokole\n```\n\n## Test Scenarios\n\n### 1. Fresh Install\n\nTests complete IIAB installation with Lokole on clean system:\n\n```bash\n./scripts/scenarios/fresh-install.sh --ubuntu-version 24.04\n```\n\n### 2. Upgrade Path\n\nTests Lokole upgrade on existing IIAB:\n\n```bash\n./scripts/scenarios/upgrade-lokole.sh --from-version 0.5.9 --to-version 0.5.10\n```\n\n### 3. PR Testing\n\nTests Lokole or IIAB Pull Request:\n\n```bash\n./scripts/scenarios/test-pr-branch.sh \\\n  --pr-repo ascoderu/lokole \\\n  --pr-ref feature/upgrade-client-python-3.12 \\\n  --pr-sha abc123def456\n```\n\n### 4. Release Validation\n\nValidates new releases work with IIAB:\n\n```bash\n./scripts/scenarios/validate-release.sh --lokole-version 0.5.10\n```\n\n## Automated Testing (GitHub Actions)\n\n### PR-Triggered Tests\n\nLabel PRs with `test-iiab-integration` to trigger integration tests:\n\n1. Go to Lokole or IIAB PR\n2. Add label: `test-iiab-integration`\n3. GitHub Actions automatically runs tests across **Ubuntu 22.04, 24.04, and 26.04**\n4. Comprehensive results posted as formatted comment on PR with:\n   - System info (OS, Python version)\n   - Service status (all 4 Lokole services)\n   - Socket permissions\n   - Web access tests\n   - Log error analysis\n   - Troubleshooting hints\n\n**📖 See [docs/SETUP.md](docs/SETUP.md) for complete setup instructions.**\n\n### Scheduled Tests\n\n- **Ubuntu Daily**: Weekly check for new Multipass images\n- **Release Validation**: Automatic on Lokole/IIAB releases\n- **Post-Merge**: After every merge to master\n\n### Manual Triggers\n\n```bash\n# Trigger workflow via GitHub CLI\ngh workflow run test-ubuntu-lts.yml -f ubuntu_version=26.04 -f use_daily=true\n```\n\n## Documentation\n\n- 📋 [**Setup Guide**](docs/SETUP.md) - Repository configuration and secrets\n- 🔗 [**Webhook Configuration**](docs/WEBHOOKS.md) - Cross-repository integration setup\n- [**Running Tests**](docs/RUNNING_TESTS.md) - Local and CI test execution\n- [**Adding Tests**](docs/ADDING_TESTS.md) - Contributing new test scenarios\n- [**Troubleshooting**](docs/TROUBLESHOOTING.md) - Common issues and solutions\n- [**Integration Points**](docs/INTEGRATION_POINTS.md) - Technical details of Lokole ↔ IIAB\n\n## Test Results \u0026 Reports\n\nTest results are generated in multiple formats:\n\n- **JSON**: `/tmp/lokole-verification-\u003cvm_name\u003e.json` (structured test data)\n- **Markdown**: `/tmp/pr-comment-\u003cvm_name\u003e.md` (PR comments with icons and tables)\n- **Text**: `fresh-install-\u003cversion\u003e-\u003ctimestamp\u003e.txt` (human-readable artifacts)\n\n### Comprehensive Verification\n\nEach test run performs comprehensive checks:\n\n- **System Info**: OS version, Python version (3.10-3.14+), kernel\n- **Services**: Individual status for lokole-gunicorn, lokole-celery-beat, lokole-celery-worker, lokole-restarter\n- **Socket**: Existence, permissions, www-data group membership\n- **Web Access**: HTTP response codes (200/502/503/000) with interpretation\n- **Logs**: NGINX errors, supervisor failures, Lokole exceptions\n- **Summary**: Pass/fail/warning counts with automated troubleshooting hints\n\n## Requirements\n\n### For Local Testing\n\n- **Multipass**: VM management (or Vagrant/Docker)\n- **Ansible**: \u003e= 2.11\n- **Python**: \u003e= 3.10 (3.12+ recommended)\n- **Bash**: \u003e= 4.0\n- **jq**: JSON processing for reports\n\n### For CI/CD\n\n- GitHub Actions (included)\n- Secrets: `INTEGRATION_TEST_PAT` (Personal Access Token) - see [docs/SETUP.md](docs/SETUP.md)\n\n## Cross-Repository Integration\n\nThis repository integrates with:\n\n- [`ascoderu/lokole`](https://github.com/ascoderu/lokole) - Lokole email software\n- [`ascoderu/ansible-role-lokole`](https://github.com/ascoderu/ansible-role-lokole) - Canonical Ansible role\n- [`iiab/iiab`](https://github.com/iiab/iiab) - Internet-in-a-Box platform\n\n**📖 For complete webhook setup instructions, see [docs/SETUP.md](docs/SETUP.md) and [docs/WEBHOOKS.md](docs/WEBHOOKS.md).**\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Adding New Tests\n\n1. Create test script in `scripts/verify/`\n2. Add to scenario in `scripts/scenarios/`\n3. Document in `docs/ADDING_TESTS.md`\n4. Submit PR with test results\n\n### Reporting Issues\n\n- **Test framework issues**: [iiab-lokole-tests/issues](https://github.com/ascoderu/iiab-lokole-tests/issues)\n- **Lokole bugs**: [lokole/issues](https://github.com/ascoderu/lokole/issues)\n- **IIAB bugs**: [iiab/issues](https://github.com/iiab/iiab/issues)\n\n## License\n\nApache License 2.0\n\n## Maintainers\n\n- [Ascoderu](https://ascoderu.ca) - Lokole maintainers\n- [IIAB Community](https://wiki.iiab.io) - IIAB contributors\n\n## Acknowledgments\n\nThis testing framework was developed to ensure reliable integration between Lokole and IIAB across diverse platforms and Ubuntu releases, supporting education and communication in low-bandwidth communities worldwide.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fascoderu%2Fiiab-lokole-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fascoderu%2Fiiab-lokole-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fascoderu%2Fiiab-lokole-tests/lists"}