diff --git a/.github/workflows/test_dht-node.yml b/.github/workflows/test_dht-node.yml new file mode 100644 index 000000000..a47269791 --- /dev/null +++ b/.github/workflows/test_dht-node.yml @@ -0,0 +1,81 @@ +name: gradido test_dht-node CI + +on: push + +jobs: + ############################################################################## + # JOB: DOCKER BUILD TEST ##################################################### + ############################################################################## + build: + name: Docker Build Test + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build `test` image + run: | + docker build --target test -t "gradido/dht-node:test" dht-node/ + docker save "gradido/dht-node:test" > /tmp/dht-node.tar + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: docker-dht-node-test + path: /tmp/dht-node.tar + + ############################################################################## + # JOB: LINT ################################################################## + ############################################################################## + lint: + name: Lint + runs-on: ubuntu-latest + needs: [build] + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Download Docker Image + uses: actions/download-artifact@v3 + with: + name: docker-dht-node-test + path: /tmp + - name: Load Docker Image + run: docker load < /tmp/dht-node.tar + + - name: Lint + run: docker run --rm gradido/dht-node:test yarn run lint + + ############################################################################## + # JOB: UNIT TEST ############################################################# + ############################################################################## + unit_test: + name: Unit tests + runs-on: ubuntu-latest + needs: [build] + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Download Docker Image + uses: actions/download-artifact@v3 + with: + name: docker-dht-node-test + path: /tmp + + - name: Load Docker Image + run: docker load < /tmp/dht-node.tar + + - name: Unit tests + run: | + docker run --env NODE_ENV=test -v ~/coverage:/app/coverage --rm gradido/dht-node:test yarn run test + cp -r ~/coverage ./coverage + + - name: Coverage check + uses: webcraftmedia/coverage-check-action@master + with: + report_name: Coverage dht-node + type: lcov + result_path: ./coverage/lcov.info + min_coverage: 95 + token: ${{ github.token }} \ No newline at end of file