name: mailcow Integration Tests on: push: branches: [ "master", "staging" ] workflow_dispatch: permissions: contents: read jobs: integration_tests: runs-on: ubuntu-latest steps: - name: Setup Ansible run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get install python3 python3-pip git sudo pip3 install ansible - name: Prepair Test Environment run: | git clone https://github.com/mailcow/mailcow-integration-tests.git --branch $(curl -sL https://api.github.com/repos/mailcow/mailcow-integration-tests/releases/latest | jq -r '.tag_name') --single-branch . ./fork_check.sh ./ci.sh ./ci-pip-requirements.sh env: VAULT_PW: ${{ secrets.MAILCOW_TESTS_VAULT_PW }} VAULT_FILE: ${{ secrets.MAILCOW_TESTS_VAULT_FILE }} - name: Start Integration Test Server run: | ./fork_check.sh ansible-playbook mailcow-start-server.yml --diff env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' ANSIBLE_HOST_KEY_CHECKING: 'false' - name: Setup Integration Test Server run: | ./fork_check.sh sleep 30 ansible-playbook mailcow-setup-server.yml --private-key id_ssh_rsa --diff env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' ANSIBLE_HOST_KEY_CHECKING: 'false' - name: Run Integration Tests run: | ./fork_check.sh ansible-playbook mailcow-integration-tests.yml --private-key id_ssh_rsa --diff env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' ANSIBLE_HOST_KEY_CHECKING: 'false' - name: Delete Integration Test Server if: always() run: | ./fork_check.sh ansible-playbook mailcow-delete-server.yml --diff env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' ANSIBLE_HOST_KEY_CHECKING: 'false'