Skip to content

Guide users to mongosync’s embedded verifier. #533

Guide users to mongosync’s embedded verifier.

Guide users to mongosync’s embedded verifier. #533

Workflow file for this run

on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
jobs:
basics:
strategy:
fail-fast: false
matrix:
# versions are: source, destination
mongodb_versions:
- [ '4.2', '4.2' ]
- [ '4.2', '4.4' ]
- [ '4.2', '5.0' ]
- [ '4.2', '6.0' ]
- [ '4.4', '4.4' ]
- [ '4.4', '5.0' ]
- [ '4.4', '6.0' ]
- [ '5.0', '5.0' ]
- [ '5.0', '6.0' ]
- [ '5.0', '7.0' ]
- [ '6.0', '6.0' ]
- [ '6.0', '7.0' ]
- [ '6.0', '8.0' ]
- [ '7.0', '7.0' ]
- [ '7.0', '8.0' ]
- [ '8.0', '8.0' ]
topology:
- name: replset
srcConnStr: mongodb://localhost:27020,localhost:27021,localhost:27022
dstConnStr: mongodb://localhost:27030,localhost:27031,localhost:27032
- name: replset-to-sharded
dstArgs: --sharded 2
srcConnStr: mongodb://localhost:27020,localhost:27021,localhost:27022
dstConnStr: mongodb://localhost:27030
- name: sharded
srcArgs: --sharded 2
dstArgs: --sharded 2
srcConnStr: mongodb://localhost:27020
dstConnStr: mongodb://localhost:27030
# Ubuntu 24 lacks OpenSSL 1.1.1’s libcrypto, which pre-v6 MongoDB
# versions need.
runs-on: ubuntu-22.04
name: ${{ matrix.mongodb_versions[0] }} to ${{ matrix.mongodb_versions[1] }}, ${{ matrix.topology.name }}
steps:
- run: uname -a
- run: ldconfig -p
- run: lsb_release -a
- name: Check out repository
uses: actions/checkout@v4
- name: Fetch Go ${{ matrix.go_version }}
uses: actions/setup-go@v5
with:
go-version: stable
- name: Install m and mtools
run: |-
{
echo npm install -g m
echo pipx install 'mtools[all]'
} | parallel
- name: Install MongoDB ${{ matrix.mongodb_versions[0] }} (source)
run: yes | m ${{ matrix.mongodb_versions[0] }} && dirname $(readlink $(which mongod)) > .srcpath
- name: Install MongoDB ${{ matrix.mongodb_versions[1] }} (destination)
run: yes | m ${{ matrix.mongodb_versions[1] }} && dirname $(readlink $(which mongod)) > .dstpath
- name: Install latest stable MongoDB (metadata)
run: yes | m stable && dirname $(readlink $(which mongod)) > .metapath
- name: Build
run: ./build.sh
- name: Start clusters
run: |-
{
echo mlaunch init --binarypath $(cat .srcpath) --port 27020 --dir src --replicaset ${{ matrix.topology.srcArgs }}
echo mlaunch init --binarypath $(cat .dstpath) --port 27030 --dir dst --replicaset ${{ matrix.topology.dstArgs }}
echo mlaunch init --binarypath $(cat .metapath) --port 27040 --dir meta --replicaset --nodes 1
} | parallel
- name: Test
run: go test -v ./... -race
env:
MVTEST_SRC: ${{matrix.topology.srcConnStr}}
MVTEST_DST: ${{matrix.topology.dstConnStr}}
MVTEST_META: mongodb://localhost:27040