diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 90471eb7717..7cda25bb619 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -758,7 +758,6 @@ embed.go @grafana/grafana-as-code /.github/pr-commands.json @tolzhabayev /.github/renovate.json5 @grafana/frontend-ops /.github/actions/setup-enterprise/action.yml @grafana/grafana-backend-group -/.github/actions/test-coverage-processor/action.yml @grafana/grafana-backend-group /.github/actions/setup-grafana-bench/ @Proximyst /.github/workflows/add-to-whats-new.yml @grafana/docs-tooling /.github/workflows/auto-triager/ @grafana/plugins-platform-frontend @@ -791,7 +790,6 @@ embed.go @grafana/grafana-as-code /.github/workflows/pr-commands.yml @tolzhabayev /.github/workflows/pr-patch-check-event.yml @grafana/grafana-developer-enablement-squad /.github/workflows/pr-test-integration.yml @grafana/grafana-backend-group -/.github/workflows/pr-backend-coverage.yml @grafana/grafana-backend-group /.github/workflows/sync-mirror-event.yml @grafana/grafana-developer-enablement-squad /.github/workflows/publish-technical-documentation-next.yml @grafana/docs-tooling /.github/workflows/publish-technical-documentation-release.yml @grafana/docs-tooling diff --git a/.github/actions/test-coverage-processor/action.yml b/.github/actions/test-coverage-processor/action.yml deleted file mode 100644 index bd2458020c3..00000000000 --- a/.github/actions/test-coverage-processor/action.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: 'Go Coverage Processor' -description: 'Process Go test coverage files and generate reports' - -inputs: - test-type: - description: 'Type of test (e.g., be-unit, be-integration)' - required: true - type: string - coverage-file: - description: 'Path to the Go coverage file (.cov)' - required: true - type: string - codecov-token: - description: 'Token for CodeCov (required for CodeCov reporting)' - required: false - default: '' - codecov-flag: - description: 'Flag to categorize the upload to CodeCov' - required: false - default: '' - codecov-name: - description: 'Custom name for the upload to CodeCov' - required: false - default: '' - -runs: - using: 'composite' - steps: - - name: Process Go coverage output - shell: bash - env: - COVERAGE_FILE: ${{ inputs.coverage-file }} - run: | - # Ensure valid coverage file even if empty - if [ ! -s "$COVERAGE_FILE" ]; then - echo "Coverage file is empty, creating a minimal valid file" - echo "mode: set" > "$COVERAGE_FILE" - fi - - - name: Report coverage to CodeCov - uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5 - if: inputs.codecov-token != '' - with: - files: ${{ inputs.coverage-file }} - flags: ${{ inputs.codecov-flag || inputs.test-type }} - name: ${{ inputs.codecov-name || inputs.test-type }} - slug: grafana/grafana - # This URL doesn't use the Google auth, but is much more locked down. As such, it requires OIDC or a CodeCov-provided token to do anything. - url: https://codecov-webhook.grafana-dev.net - token: ${{ inputs.codecov-token }} diff --git a/.github/workflows/pr-backend-coverage.yml b/.github/workflows/pr-backend-coverage.yml deleted file mode 100644 index 12ed4423587..00000000000 --- a/.github/workflows/pr-backend-coverage.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Coverage - -on: - workflow_dispatch: - push: - branches: - - main - paths-ignore: - - 'docs/**' - - '**/*.md' - -permissions: - contents: read - id-token: write - -env: - EDITION: 'oss' - WIRE_TAGS: 'oss' - -jobs: - main: - name: Backend Unit Tests - runs-on: ubuntu-latest-8-cores - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version-file: go.mod - cache: true - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y build-essential shared-mime-info - go install github.com/mfridman/tparse@c1754a1f484ac5cd422697b0fec635177ddc8507 # v0.17.0 - - name: Generate Go code - run: make gen-go - - name: Run unit tests - run: COVER_OPTS="-coverprofile=be-unit.cov -coverpkg=github.com/grafana/grafana/..." GO_TEST_OUTPUT="/tmp/unit.log" make test-go-unit-cov - - name: Process and upload coverage - uses: ./.github/actions/test-coverage-processor - with: - test-type: 'be-unit' - # Needs to be named 'unit.cov' based on the Makefile command `make test-go-unit` - coverage-file: 'unit.cov' - codecov-token: ${{ secrets.CODECOV_TOKEN }} - codecov-flag: 'be-unit' - codecov-name: 'be-unit' - - - name: Install Grafana Bench - # We can't allow forks here, as we need secret access. - if: ${{ github.event_name != 'pull_request' }} - uses: ./.github/actions/setup-grafana-bench - - - name: Process output for Bench - if: ${{ github.event_name != 'pull_request' }} - run: | - grafana-bench report \ - --trigger pr-backend-unit-tests-oss \ - --report-input go \ - --report-output log \ - --grafana-version "$(git rev-parse HEAD)" \ - --suite-name grafana-oss-unit-tests \ - /tmp/unit.log || true - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false diff --git a/Makefile b/Makefile index d6bcef3b293..92a7d239f3e 100644 --- a/Makefile +++ b/Makefile @@ -19,9 +19,6 @@ GO_BUILD_FLAGS += $(if $(GO_BUILD_TAGS),-build-tags=$(GO_BUILD_TAGS)) GO_BUILD_FLAGS += $(GO_RACE_FLAG) GO_TEST_FLAGS += $(if $(GO_BUILD_TAGS),-tags=$(GO_BUILD_TAGS)) GO_TEST_OUTPUT := $(shell [ -n "$(GO_TEST_OUTPUT)" ] && echo '-json | tee $(GO_TEST_OUTPUT) | tparse -all') -GO_UNIT_COVERAGE ?= true -GO_UNIT_COVER_PROFILE ?= unit.cov -GO_INTEGRATION_COVER_PROFILE ?= integration.cov GIT_BASE = remotes/origin/main # GNU xargs has flag -r, and BSD xargs (e.g. MacOS) has that behaviour by default @@ -273,11 +270,6 @@ test-go-unit: ## Run unit tests for backend with flags. @echo "backend unit tests" $(GO) test $(GO_RACE_FLAG) $(GO_TEST_FLAGS) -v -short -timeout=30m $(GO_TEST_FILES) $(GO_TEST_OUTPUT) -.PHONY: test-go-unit-cov -test-go-unit-cov: ## Run unit tests for backend with flags and coverage - @echo "backend unit tests with coverage" - $(GO) test $(GO_RACE_FLAG) $(GO_TEST_FLAGS) -v -short $(if $(filter true,$(GO_UNIT_COVERAGE)),-covermode=atomic -coverprofile=$(GO_UNIT_COVER_PROFILE) $(if $(GO_UNIT_TEST_COVERPKG),-coverpkg=$(GO_UNIT_TEST_COVERPKG)),) -timeout=30m $(GO_TEST_FILES) $(GO_TEST_OUTPUT) - .PHONY: test-go-unit-pretty test-go-unit-pretty: check-tparse @if [ -z "$(FILES)" ]; then \