name: Database Migration Test on: workflow_call: jobs: test: name: MySQL -> Postgres Migration runs-on: ubuntu-22.04 env: COMPOSE_PROJECT_NAME: ghactions TEST_IMAGE: migration-test-image defaults: run: working-directory: server steps: - name: Checkout mattermost project uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Calculate Golang Version id: go working-directory: ./server run: echo GO_VERSION=$(cat .go-version) >> "${GITHUB_OUTPUT}" - name: Run docker compose run: | cd build docker compose --ansi never run --rm start_dependencies docker compose --ansi never exec -T minio sh -c 'mkdir -p /data/mattermost-test'; docker compose --ansi never ps - name: Fix MySQL user permissions run: | cd build docker exec ${COMPOSE_PROJECT_NAME}-mysql-1 sh -c "sed -i '/# default-authentication-plugin/c\default-authentication-plugin=mysql_native_password' /etc/my.cnf" docker exec ${COMPOSE_PROJECT_NAME}-mysql-1 sh -c "mysql -u root -pmostest -e \"ALTER USER 'mmuser'@'%' IDENTIFIED WITH mysql_native_password BY 'mostest';\"" docker exec ${COMPOSE_PROJECT_NAME}-mysql-1 sh -c "mysql -u root -pmostest -e \"ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mostest';\"" docker restart ${COMPOSE_PROJECT_NAME}-mysql-1 && sleep 10 - name: Build test image env: BUILD_IMAGE: golang:${{ steps.go.outputs.GO_VERSION }}-bookworm PGLOADER_IMAGE: mattermost/mattermost-pgloader:v3.6.9 run: | docker build -t $TEST_IMAGE - <