# Copyright © 2020 Interplanetary Database Association e.V., # Planetmint and IPDB software contributors. # SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) # Code is Apache-2.0 and docs are CC-BY-4.0 name: Unit tests on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: matrix: include: - abci_enabled: "ABCI enabled" abci: "enabled" - abci_disabled: "ABCI disabled" abci: "disabled" steps: - name: Check out repository code uses: actions/checkout@v3 - name: Build container run: | if [[ "${{ matrix.abci }}" == "enabled" ]]; then docker-compose -f docker-compose.yml build --no-cache --build-arg abci_status=enable planetmint fi if [[ ""${{ matrix.abci }}" == "disabled"" ]]; then docker-compose -f docker-compose.yml build --no-cache planetmint fi - name: Save image run: docker save -o planetmint.tar planetmint_planetmint - name: Upload image uses: actions/upload-artifact@v3 with: name: planetmint-abci-${{matrix.abci}} path: planetmint.tar retention-days: 5 test-with-abci: runs-on: ubuntu-latest needs: build strategy: matrix: include: - db: "MongoDB with ABCI" host: "mongodb" port: 27017 abci: "enabled" - db: "Tarantool with ABCI" host: "tarantool" port: 3303 abci: "enabled" steps: - name: Check out repository code uses: actions/checkout@v3 - name: Download planetmint uses: actions/download-artifact@v3 with: name: planetmint-abci-enabled - name: Load planetmint run: docker load -i planetmint.tar - name: Start containers run: docker-compose -f docker-compose.yml up -d planetmint - name: Run tests run: docker exec planetmint_planetmint_1 pytest -v -m abci test-without-abci: runs-on: ubuntu-latest needs: build strategy: matrix: include: - db: "MongoDB without ABCI" host: "mongodb" port: 27017 - db: "Tarantool without ABCI" host: "tarantool" port: 3303 steps: - name: Check out repository code uses: actions/checkout@v3 - name: Download planetmint uses: actions/download-artifact@v3 with: name: planetmint-abci-disabled - name: Load planetmint run: docker load -i planetmint.tar - name: Start containers run: docker-compose -f docker-compose.yml up -d bdb - name: Run tests run: docker exec planetmint_planetmint_1 pytest -v --cov=planetmint --cov-report xml:htmlcov/coverage.xml - name: Upload Coverage to Codecov uses: codecov/codecov-action@v3