diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f72df571..c2b3cf1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ env: jobs: unit-test: - name: "Unit Tests (Debian 13)" + name: "Unit Tests" runs-on: ubuntu-22.04 continue-on-error: false timeout-minutes: 30 @@ -31,17 +31,18 @@ jobs: - name: "Docker Image" run: | make docker-image - - name: "Unit Test" + - name: "Unit Tests" run: | make docker-unit-tests - - name: "Upload Code Coverage" - uses: codecov/codecov-action@v2 + mkdir -p out/coverage + mv unit.out out/coverage/ + - uses: actions/upload-artifact@v4 with: - token: ${{ secrets.CODECOV_TOKEN }} - files: unit.out + name: unit-tests-coverage + path: out/ test: - name: "Test (Ubuntu 22.04)" + name: "System Test" runs-on: ubuntu-22.04 continue-on-error: false timeout-minutes: 30 @@ -88,7 +89,8 @@ jobs: - name: "Run Benchmark" run: | - COVERAGE_DIR=${{ runner.temp }} make bench + mkdir -p out/coverage + COVERAGE_DIR=$PWD/out/coverage make bench - name: "Run System Tests" env: @@ -100,23 +102,53 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} run: | sudo mkdir -p /srv ; sudo chown runner /srv - COVERAGE_DIR=${{ runner.temp }} make system-test + mkdir -p out/coverage + COVERAGE_DIR=$PWD/out/coverage make system-test + + - uses: actions/upload-artifact@v4 + with: + name: system-tests-coverage + path: out/ + + coverage: + name: "Upload Coverage" + runs-on: ubuntu-22.04 + continue-on-error: false + timeout-minutes: 30 + needs: + - unit-test + - test + steps: + - name: "Checkout Repository" + uses: actions/checkout@v4 + + - name: "Download Unit Test Coverage" + uses: actions/download-artifact@v4 + with: + name: unit-tests-coverage + + - name: "Download System Test Coverage" + uses: actions/download-artifact@v4 + with: + name: system-tests-coverage - name: "Merge Code Coverage" run: | go install github.com/wadey/gocovmerge@v0.0.0-20160331181800-b5bfa59ec0ad - ~/go/bin/gocovmerge ${{ runner.temp }}/*.out > coverage.txt + ~/go/bin/gocovmerge coverage/*.out > coverage.txt - name: "Upload Code Coverage" - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.txt + fail_ci_if_error: true + ci-debian-build: name: "Build" needs: - - test + - coverage runs-on: ubuntu-latest strategy: fail-fast: false @@ -237,8 +269,7 @@ jobs: ci-binary-build: name: "Build" needs: - - unit-test - - test + - coverage runs-on: ubuntu-latest strategy: matrix: