Skip to content

ImapEngine v2.0

ImapEngine v2.0 #1185

name: run-integration-tests
on:
push:
branches:
- master
pull_request:
schedule:
- cron: "0 0 * * *"
jobs:
run-tests:
runs-on: ${{ matrix.os }}
env:
MAILBOX_HOST: 127.0.0.1
MAILBOX_PORT: ${{ matrix.port }}
MAILBOX_USERNAME: user@localhost.com
MAILBOX_PASSWORD: password
MAILBOX_ENCRYPTION: ""
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
php: [ 8.5, 8.4, 8.3, 8.2 ]
dependency-version: [ prefer-stable ]
server: [ greenmail ]
port: [ 3143 ]
include:
- os: ubuntu-latest
php: 8.4
dependency-version: prefer-stable
server: dovecot
port: 4143
name: ${{ matrix.server }} - P${{ matrix.php }} - ${{ matrix.dependency-version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Start IMAP server
run: docker compose up -d ${{ matrix.server }}
- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: dependencies-laravel-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: Install dependencies
run: |
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
- name: Wait for IMAP server
run: php tests/wait-for-mailbox.php
- name: Execute tests
run: vendor/bin/pest --testsuite Integration
- name: Show IMAP server logs
if: failure()
run: docker compose logs --no-color ${{ matrix.server }}
- name: Stop IMAP server
if: always()
run: docker compose down --volumes