mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
* ci: shard server Postgres tests into 4 parallel runners (#35739) Cherry-pick of00296f9b49from master. * updated go to version 1.25.8 (#35817) Cherry-pick of32a10bac62from master. * Move password hashers from server/v8 to server/public (#35805) Cherry-pick ofcca3f08574from master. * Generate instead of hard-coding test passwords, enforce new minimum for FIPS, shard CI, fix FIPS builds (#35905) Cherry-pick of1bdd985b41from master. * upgrade golangci-lint (#35845) Cherry-pick of157e0400b2from master. On release-11.4 (unlike 11.5), UpdatePostsChannelTypeByChannelId and BackfillPostsChannelType exist in the elasticsearch/opensearch files, so the imports they require (fmt, updatebyquery, scriptlanguage) must be added — they were not in the cherry-pick diff since they already existed on master. Also updates html2text/tablewriter/olekukonko deps to fix a workspace conflict where enterprise's Go 1.25.8 bump pulled in a newer html2text that requires tablewriter ≥ 1.1 (was pinned to 0.0.5 via a replace directive). Matches the subset of866f759e4b(Mm 66662 bump deps) relevant to this incompatibility. * Fix FIPS-incompatible passwords and config in e2e test suites (#36001) Cherry-pick ofb51b4a8937from master. release-11.4 differences vs release-11.5: - demo_plugin_installation.spec.ts also deleted (modify/delete conflict, git rm) - authentication_2_spec.ts conflict: HEAD missing check() call; took incoming (check + FIPS-length passwords) - member_invitation_ui_spec.ts: HEAD has 'Create Account' (capital A) matching release-11.4 button text; kept HEAD's button text with incoming's newTestPassword() * fix(cypress): demo plugin (#36056) Cherry-pick of39f1979aa5from master. demo_plugin_installation.spec.ts was deleted in step 10 (modify/delete); re-created here with both the FIPS-password change and the URL fix. * test: clean up channel store data after TestChannelStore (#36066) TestChannelStore sub-tests create channels, members, and team members using fake TeamIds and UserIds (model.NewId() for non-existent rows). These records are left in the database and cause integrity tests (TestCheck*) running in the same binary to fail their full-table scans. Register a t.Cleanup on TestChannelStore that purges the affected tables entirely. A blanket purge is safe: the schema enforces no FK constraints, and every test suite creates its own data independently. * Fix command injection in server-test-template workflow (#36080) Cherry-pick of9223935f16from master. * fix(ci): restore testname format in sharded gotestsum runs (#36078) run-shard-tests.sh called gotestsum directly without --format, so it fell back to gotestsum's default (pkgname) instead of the testname format set by the Makefile. Pass --format "${GOTESTSUM_FORMAT:-testname}" to match the Makefile default. Co-authored-by: Mattermost Build <[email protected]> * fixup: drop demo_plugin playwright specs — master-only APIs demo_plugin/helpers.ts and demo_plugin_installation.spec.ts use installAndEnablePlugin and isPluginActive which don't exist on release-11.4's PlaywrightExtended type. These files were re-created by the step-11 cherry-pick of39f1979aa5, but they don't compile on this branch (same class of problem as actions.spec.ts in step 10). * fixup: add missing await in PluginLinkTooltip test The test added in39f1979aa5is missing an await on renderWithContext, causing the pointer-events assertion to race. Fix from 0c7d3f27c6 (on a feature branch, not yet on master). * fixup: drop pointer-events test incompatible with jsdom@20 The 'should not block interaction with elements outside the tooltip' test checks getComputedStyle for pointer-events: none, which is set only in SCSS. release-11.4 uses jest-environment-jsdom@29 (jsdom@20), which does not apply stylesheets, so getComputedStyle always returns "". The test passes on release-11.5+ only because they use jest-environment-jsdom@30 (jsdom@25+). Drop the test rather than backport the jsdom upgrade. * fixup: add missing i18n keys for elasticsearch/opensearch functions BackfillPostsChannelType and UpdatePostsChannelTypeByChannelId exist on release-11.4 (unlike release-11.5+). The golangci-lint cherry-pick added new error strings to those functions referencing i18n keys that weren't in en.json. * fixup: run make i18n-extract to reorder keys correctly * fixup: drop terms-and-privacy checkbox from MM-T1774 on release-11.4 The #signup-body-card-form-check-terms-and-privacy element did not exist on release-11.4's signup page. It was added to master after this branch was cut, so the check() call from the incoming cherry-pick causes the test to fail with "element never found". * fixup: remove UpdatePostsChannelTypeByChannelId/BackfillPostsChannelType These functions were introduced by MM-67540 (allow searching public channel messages without channel membership), which never landed on release-11.4. The golangci-lint cherry-pick only modernizes existing code; the rerere resolution incorrectly added the full function bodies from master. Remove both functions and their now-unused imports (fmt, updatebyquery, scriptlanguage) from elasticsearch.go and opensearch.go. Also remove the two i18n keys added to support them. Same treatment as release-11.5, where these functions were also absent. --------- Co-authored-by: Mattermost Build <[email protected]>
135 lines
4.2 KiB
YAML
135 lines
4.2 KiB
YAML
services:
|
|
postgres:
|
|
image: "postgres:14"
|
|
restart: always
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
POSTGRES_USER: mmuser
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-mostest}
|
|
POSTGRES_DB: mattermost_test
|
|
POSTGRES_INITDB_ARGS: "--auth-host=scram-sha-256 --auth-local=scram-sha-256"
|
|
command: postgres -c 'config_file=/etc/postgresql/postgresql.conf'
|
|
volumes:
|
|
- "./docker/postgres.conf:/etc/postgresql/postgresql.conf:Z"
|
|
- "./docker/postgres_node_database.sql:/docker-entrypoint-initdb.d/postgres_node_database.sql:Z"
|
|
healthcheck:
|
|
test: [ "CMD", "pg_isready", "-h", "localhost" ]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 3
|
|
minio:
|
|
image: "minio/minio:RELEASE.2024-06-22T05-26-45Z"
|
|
command: "server /data --console-address :9002"
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
MINIO_ROOT_USER: minioaccesskey
|
|
MINIO_ROOT_PASSWORD: miniosecretkey
|
|
MINIO_KMS_SECRET_KEY: my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=
|
|
inbucket:
|
|
image: "inbucket/inbucket:stable"
|
|
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"
|
|
networks:
|
|
- mm-test
|
|
openldap:
|
|
image: "osixia/openldap:1.4.0"
|
|
restart: always
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
LDAP_TLS_VERIFY_CLIENT: "never"
|
|
LDAP_ORGANISATION: "Mattermost Test"
|
|
LDAP_DOMAIN: "mm.test.com"
|
|
LDAP_ADMIN_PASSWORD: "mostest"
|
|
elasticsearch:
|
|
image: "mattermostdevelopment/mattermost-elasticsearch:8.9.0"
|
|
networks:
|
|
- mm-test
|
|
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"
|
|
xpack.security.enabled: "false"
|
|
action.destructive_requires_name: "false"
|
|
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
|
opensearch:
|
|
build:
|
|
context: .
|
|
dockerfile: ./Dockerfile.opensearch
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
http.host: "0.0.0.0"
|
|
http.port: 9201
|
|
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"
|
|
discovery.type: single-node
|
|
plugins.security.disabled: "true"
|
|
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
|
redis:
|
|
image: "redis:7.4.0"
|
|
networks:
|
|
- mm-test
|
|
dejavu:
|
|
image: "appbaseio/dejavu:3.4.2"
|
|
networks:
|
|
- mm-test
|
|
keycloak:
|
|
image: "quay.io/keycloak/keycloak:23.0.7"
|
|
restart: always
|
|
entrypoint: /opt/keycloak/bin/kc.sh start --import-realm
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
KEYCLOAK_ADMIN: admin
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
KC_HOSTNAME_STRICT: 'false'
|
|
KC_HOSTNAME_STRICT_HTTPS: 'false'
|
|
KC_HTTP_ENABLED: 'true'
|
|
volumes:
|
|
- "./docker/keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json:Z"
|
|
prometheus:
|
|
image: "prom/prometheus:v2.46.0"
|
|
user: root
|
|
volumes:
|
|
- "./docker/prometheus.yml:/etc/prometheus/prometheus.yml:Z"
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
networks:
|
|
- mm-test
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
grafana:
|
|
image: "grafana/grafana:10.4.2"
|
|
volumes:
|
|
- "./docker/grafana/grafana.ini:/etc/grafana/grafana.ini:Z"
|
|
- "./docker/grafana/provisioning:/etc/grafana/provisioning:Z"
|
|
- "./docker/grafana/dashboards:/var/lib/grafana/dashboards:Z"
|
|
networks:
|
|
- mm-test
|
|
loki:
|
|
image: "grafana/loki:3.0.0"
|
|
networks:
|
|
- mm-test
|
|
promtail:
|
|
image: "grafana/promtail:3.0.0"
|
|
volumes:
|
|
- "./docker/promtail/promtail-local-config.yaml:/etc/promtail/docker-config.yaml:Z"
|
|
- "/var/lib/docker/containers:/var/lib/docker/containers:ro"
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
- "../logs:/logs:Z"
|
|
command: -config.file=/etc/promtail/docker-config.yaml
|
|
networks:
|
|
- mm-test
|