T28343: Enable continuous integration testing via custom GitLab CI pipeline
This merge request is to enable us to run continuous integration tests during Mattermost development and review, and accompanies mattermost-webapp!6 (merged).
Many of the Mattermost tests use containerized dependencies at runtime; here we use Docker-in-Docker (
docker-compose to provision the necessary services within our single top-level GitLab CI job container.
- Container dependencies are brought up during the
- The test suite is run within a separate inner Docker container -- importantly, on the same Docker network -- so that it can resolve dependent container service names
- A bind-mount is used to make the code/branch/commit that is being tested available from the GitLab runner container to the inner Docker container
MM_NO_DOCKERenvironment variable indicates to the test suite that it should not attempt to (redundantly) bring up container dependencies