GitHub ActionsでMongoDBのレプリカセットを使用してテストを実行する方法を調べました。
docker-composeを使ってもよかったのですが、mongodb-github-actionがあったので試しに使用してみました。
パラメータとしては下記の2つのものが指定できるようです。
- MongoDBのバージョン
- レプリカセットの名前
バージョンとレプリカセットの名前しか指定できないので、接続URLにユーザー名などが指定されている場合接続できないので注意が必要です。
試したURLを載せておきます。
MONGO_URL=mongodb://localhost:27017/test?replicaSet=replset
docker-composeなどでローカルでコンテナを起動している場合はMONGO_INITDB_ROOT_USERNAME、MONGO_INITDB_ROOT_PASSWORD、MONGO_INITDB_DATABASEなどを設定ファイルで指定することが多いので、これはこれでサクッと試せるのでこれはいいかなと思いました。
ただし、レプリカセットのメンバーは1つだけなので、複数ある場合のテストがある場合は今のところ使えなさそうではあります。
最後に.github/workflows/node.js.ymlの設定を載せておきます。
name: Node.js CI on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: build: runs-on: ubuntu-20.04 strategy: matrix: node-version: [14.8] mongodb-version: [4.2] steps: - name: Git checkout uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} mongodb-replica-set: replset - run: yarn --frozen-lockfile - run: yarn build - run: yarn test