* Utilize free runners for E2E tests, report back to PR on run completion * Increase test stability on smaller instances * Merge worker reports * merge start+prepare steps * upgrade keycloak * increase test timeouts * Add video recording to report artifacts Co-authored-by: Saturnino Abril <5334504+saturninoabril@users.noreply.github.com> --------- Co-authored-by: Saturnino Abril <5334504+saturninoabril@users.noreply.github.com>
104 строки
3.9 KiB
YAML
104 строки
3.9 KiB
YAML
version: '2.4'
|
|
services:
|
|
minio:
|
|
image: mattermostdevelopment/mirrored-minio:RELEASE.2019-10-11T00-38-09Z-1
|
|
command: "server /data"
|
|
environment:
|
|
MINIO_ACCESS_KEY: minioaccesskey
|
|
MINIO_SECRET_KEY: miniosecretkey
|
|
MINIO_SSE_MASTER_KEY: "my-minio-key:6368616e676520746869732070617373776f726420746f206120736563726574"
|
|
healthcheck:
|
|
test: [ "CMD", "nc", "-z", "-w1", "127.0.0.1", "9000" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
inbucket:
|
|
image: mattermostdevelopment/mirrored-inbucket:3.0.0
|
|
restart: always
|
|
environment:
|
|
INBUCKET_WEB_ADDR: "0.0.0.0:9001"
|
|
INBUCKET_POP3_ADDR: "0.0.0.0:10110"
|
|
INBUCKET_SMTP_ADDR: "0.0.0.0:10025"
|
|
healthcheck:
|
|
test: [ "CMD", "nc", "-z", "-w1", "127.0.0.1", "10025" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
openldap:
|
|
image: mattermostdevelopment/mirrored-openldap:1.4.0
|
|
restart: always
|
|
environment:
|
|
LDAP_TLS_VERIFY_CLIENT: "never"
|
|
LDAP_ORGANISATION: "Mattermost Test"
|
|
LDAP_DOMAIN: "mm.test.com"
|
|
LDAP_ADMIN_PASSWORD: "mostest"
|
|
healthcheck:
|
|
test: [ "CMD", "bash", "-o", "pipefail", "-c", "ss -ltn 'sport = :636' | grep -qE '^LISTEN'" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
elasticsearch:
|
|
image: mattermost/mattermost-elasticsearch-docker:7.17.3
|
|
environment:
|
|
http.host: "0.0.0.0"
|
|
http.port: 9200
|
|
http.cors.enabled: "true"
|
|
http.cors.allow-origin: "http://localhost:1358,http://127.0.0.1:1358"
|
|
http.cors.allow-headers: "X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization"
|
|
http.cors.allow-credentials: "true"
|
|
transport.host: "127.0.0.1"
|
|
ES_JAVA_OPTS: "-Xms512m -Xmx2G"
|
|
healthcheck:
|
|
test: [ "CMD", "bash", "-o", "pipefail", "-c", "curl --silent localhost:9200/_cat/health | awk '{ print $$4 }' | grep -qE '^green$$'" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
dejavu:
|
|
image: mattermostdevelopment/mirrored-dejavu:3.4.2
|
|
healthcheck:
|
|
test: [ "CMD", "nc", "-z", "-w1", "127.0.0.1", "1358" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
keycloak:
|
|
image: quay.io/keycloak/keycloak:23.0.7
|
|
restart: always
|
|
entrypoint: /opt/keycloak/bin/kc.sh start --import-realm
|
|
environment:
|
|
KEYCLOAK_ADMIN: admin
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
KC_HOSTNAME_STRICT: 'false'
|
|
KC_HOSTNAME_STRICT_HTTPS: 'false'
|
|
KC_HTTP_ENABLED: 'true'
|
|
JAVA_OPTS: "-Xms64m -Xmx2G -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"
|
|
volumes:
|
|
- "./docker/keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json"
|
|
- "./docker/keycloak/kc-healthcheck.sh:/usr/local/bin/kc-healthcheck.sh"
|
|
healthcheck:
|
|
# We can't use a simple 'curl --silent localhost:9990/health | grep -q \"status\":\"UP\"' because there's no curl in the image: https://www.keycloak.org/server/health#_using_the_health_checks
|
|
test: [ "CMD", "/usr/local/bin/kc-healthcheck.sh" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
prometheus:
|
|
image: mattermostdevelopment/mirrored-prometheus:v2.27.1
|
|
volumes:
|
|
- "./docker/prometheus-linux.yml:/etc/prometheus/prometheus.yml"
|
|
healthcheck:
|
|
test: [ "CMD", "wget", "-q", "-O-", "127.0.0.1:9090/-/ready" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|
|
# wget -q -O- localhost:3000/healthz | grep -q Ok
|
|
grafana:
|
|
image: mattermostdevelopment/mirrored-grafana:8.0.1
|
|
volumes:
|
|
- "./docker/grafana/grafana.ini:/etc/grafana/grafana.ini"
|
|
- "./docker/grafana/provisioning:/etc/grafana/provisioning"
|
|
- "./docker/grafana/dashboards:/var/lib/grafana/dashboards"
|
|
healthcheck:
|
|
test: [ "CMD", "bash", "-o", "pipefail", "-c", "wget -q -O- localhost:3000/healthz | grep -q Ok" ]
|
|
interval: 10s
|
|
timeout: 15s
|
|
retries: 12
|