# Nightly race detector run. # # Runs all server tests with Go's -race detector enabled to catch # data races. Runs sequentially (fullyparallel: false) on a 2-core # runner to minimize resource usage — race detection adds significant # overhead that makes parallel execution impractical. # # Schedule: Nightly at ~2am ET (6am UTC) # # Previously, -race was implicitly bundled with the binary params job # via the fullyparallel=false → RACE_MODE coupling. This decouples # the two concerns: binary params tests the Postgres driver encoding; # this workflow tests for data races. name: Server CI Nightly Race on: schedule: - cron: "0 6 * * *" # Daily 6am UTC (~2am ET) workflow_dispatch: # Manual trigger for on-demand race detection permissions: contents: read jobs: buildenv: name: Build Environment runs-on: ubuntu-22.04 outputs: build-server-tag: ${{ steps.calculate.outputs.BUILD_SERVER_TAG }} steps: - name: Checkout mattermost project uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Calculate build image tag id: calculate working-directory: server/ run: | tag=$(./build/buildenv-tag.sh) echo "BUILD_SERVER_TAG=${tag}" >> "${GITHUB_OUTPUT}" test-race: name: Race Detector needs: buildenv permissions: contents: read actions: write uses: ./.github/workflows/server-test-template.yml with: name: Race Detector datasource: postgres://mmuser:mostest_password@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10 drivername: postgres logsartifact: race-detector-server-test-logs build-server-tag: ${{ needs.buildenv.outputs.build-server-tag }} fips-enabled: false fullyparallel: false race-enabled: true runner: ubuntu-22.04 allow-failure: true