Sign inSign up

mattermostdevelopment/mattermost-test-system-io

By mattermostdevelopment

Updated 2 days ago

Uploading and viewing test reports and for orchestrating test-shard executions.

Buildkit cache
Image
Integration & delivery
Developer tools
Monitoring & observability
0

6.4K

mattermostdevelopment/mattermost-test-system-io repository overview

Mattermost Test System IO

Uploading and viewing test reports (Playwright, Cypress, Detox), and for orchestrating test-shard execution across an arbitrary number of CI workers (on GitHub Actions).

Quick Start

See the local deployment guide for step-by-step instructions to build and run locally with PostgreSQL and S3.

To build the image yourself from a checkout of the repo root:

docker build -t mattermost-test-system-io:dev -f apps/server/Dockerfile .

Tags

TagDescription
latestLatest production release
X.Y.Z (e.g., 0.1.0)Specific production release
X.Y.Z-abcdefg.betaStaging prerelease (not recommended for production)

Environment Variables

All configuration is read from TSIO_* environment variables. The list below mirrors apps/server/internal/config/config.go.

VariableRequiredDefaultDescription
TSIO_HTTP_LISTEN_ADDRNo0.0.0.0:8080HTTP bind address (overridden in the image to bind all interfaces).
TSIO_DATABASE_URLYesPostgreSQL 18.3 connection string (e.g. postgres://tsio:tsio@host:5432/tsio?sslmode=disable).
TSIO_DB_AUTO_MIGRATENotrueApply embedded migrations on startup. Disable to run tsioctl db migrate out-of-band.
TSIO_S3_ENDPOINTNoS3-compatible endpoint URL. Leave empty for AWS S3; set for MinIO/other.
TSIO_S3_REGIONNous-east-1S3 region.
TSIO_S3_BUCKETYesS3 bucket name for artifacts.
TSIO_S3_ACCESS_KEYYesS3 access key.
TSIO_S3_SECRET_KEYYesS3 secret key.
TSIO_S3_FORCE_PATH_STYLENofalseUse path-style addressing (required for MinIO).
TSIO_SESSION_SECRETYesSecret used to sign browser sessions. Must be non-empty and unique per deployment.
TSIO_SESSION_TTLNo720hSession lifetime.
TSIO_REFRESH_TOKEN_TTLNo720hRefresh-token lifetime.
TSIO_APIKEY_ROTATION_GRACENo24hGrace window during API-key rotation.
TSIO_ADMIN_KEYNodev-admin-key-do-not-use-in-productionGates privileged setup endpoints. MUST be overridden in production.
TSIO_GITHUB_OAUTH_CLIENT_IDNoGitHub OAuth app client ID. Leave unset to disable human sign-in.
TSIO_GITHUB_OAUTH_CLIENT_SECRETNoGitHub OAuth app client secret.
TSIO_GITHUB_OAUTH_REDIRECT_URLNoOAuth redirect URL (e.g. https://<host>/api/v1/auth/github/callback).
TSIO_GITHUB_ACTIONS_OIDC_ISSUERNohttps://token.actions.githubusercontent.comOIDC issuer for CI workload auth. Empty disables OIDC.
TSIO_GITHUB_ACTIONS_OIDC_AUDIENCENoExpected aud claim. Empty disables aud validation; set in production.
TSIO_MAX_UPLOAD_BYTESNo1073741824 (1 GiB)Max total upload size.
TSIO_MAX_ARTIFACT_BYTESNo104857600 (100 MiB)Max individual artifact size.
TSIO_ORCH_REAPER_INTERVAL_MSNo5000Tick interval for the orchestration lease/run-timeout reaper. Lower values reclaim expired leases faster at the cost of more DB scans.
TSIO_ORCH_MAX_SPECS_PER_RUNNo5000Total spec-count cap (summed across every dispatch unit) for a single orchestration begin run request. Requests over the cap are rejected with TOO_MANY_SPECS.
TSIO_UPLOAD_TIMEOUT_MSNo3600000 (1h)Client-facing upload timeout surfaced via /api/v1/config.
TSIO_HTML_VIEW_ENABLEDNofalseEnable in-browser HTML report viewing.
TSIO_SEARCH_MIN_LENGTHNo3Minimum characters for search queries.
TSIO_CORS_ALLOWED_ORIGINSNoComma-separated list of allowed CORS origins.
TSIO_LOG_LEVELNoinfodebug | info | warn | error.
TSIO_LOG_FORMATNojsonjson | text.
TSIO_ENVIRONMENTNodevelopmentEnvironment label surfaced via /api/v1/info.
TSIO_REPO_URLNohttps://github.com/mattermost/mattermost-test-system-ioRepository URL surfaced via /api/v1/info.

Health Checks

EndpointDescription
GET /healthLiveness (always 200)
GET /readyReadiness (checks DB)
GET /api/v1/infoBuild info (version, commit, build time)

The React web UI is embedded into the binary and served on the same port:

open http://localhost:8080/

Image Details

  • Base: gcr.io/distroless/static-debian12:nonroot
  • Architecture: linux/amd64
  • User: Non-root (nonroot:nonroot)
  • Port: 8080
  • Contents: /tsio (server), /tsioctl (admin CLI), /api/openapi.yaml. The web bundle and SQL migrations are embedded into the Go binary.

Source

github.com/mattermost/mattermost-test-system-io

Tag summary

Content type

Buildkit_cache

Digest

sha256:fe0627134

Size

220.4 MB

Last updated

2 days ago

docker pull mattermostdevelopment/mattermost-test-system-io:buildcache