diff --git a/.github/codecov.yml b/.github/codecov.yml new file mode 100644 index 000000000..6754a2d89 --- /dev/null +++ b/.github/codecov.yml @@ -0,0 +1,6 @@ +coverage: + status: + project: + default: + target: 80% + threshold: 5% \ No newline at end of file diff --git a/.github/workflows/coverage_reporting.yml b/.github/workflows/coverage_reporting.yml new file mode 100644 index 000000000..f7c2bb81e --- /dev/null +++ b/.github/workflows/coverage_reporting.yml @@ -0,0 +1,76 @@ +--- +name: Codecov + +on: # yamllint disable-line rule:truthy + pull_request: # yamllint disable-line rule:empty-values + +jobs: + testing: + name: coverage + runs-on: ubuntu-latest + strategy: + fail-fast: false + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: "1.20" + + - uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: build and install receptor + run: | + make build-all + sudo cp ./receptor /usr/local/bin/receptor + + - name: Download kind binary + run: curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64 && chmod +x ./kind + + - name: Create k8s cluster + run: ./kind create cluster + + - name: Interact with the cluster + run: kubectl get nodes + + - name: Run receptor tests with coverage + run: make coverage + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + verbose: true + + - name: get k8s logs + if: ${{ failure() }} + run: .github/workflows/artifact-k8s-logs.sh + + - name: remove sockets before archiving logs + if: ${{ failure() }} + run: find /tmp/receptor-testing -name controlsock -delete + + - name: Artifact receptor data + uses: actions/upload-artifact@v3 + if: ${{ failure() }} + with: + name: test-logs + path: /tmp/receptor-testing + + - name: Archive receptor binary + uses: actions/upload-artifact@v3 + with: + name: receptor + path: /usr/local/bin/receptor \ No newline at end of file diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b60ef1697..5950a73e0 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -78,15 +78,8 @@ jobs: - name: Interact with the cluster run: kubectl get nodes - - name: Run receptor tests with coverage - run: make coverage - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 - with: - fail_ci_if_error: true - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true + - name: Run receptor tests + run: make test - name: get k8s logs if: ${{ failure() }}