From ff4a0a1c30e9556f2bc477f4a9e68c993c37d2c3 Mon Sep 17 00:00:00 2001 From: Nicolae Dicu Date: Thu, 18 Sep 2025 14:40:22 +0300 Subject: [PATCH] ci: Integrate verify, test and build docs in same workflow Implements DR: 001-test-results-in-workflow Signed-off-by: Nicolae Dicu --- .github/workflows/consumer_test.yml | 41 +++++++++++++++++--- .github/workflows/test_and_docs.yml | 58 +++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/test_and_docs.yml diff --git a/.github/workflows/consumer_test.yml b/.github/workflows/consumer_test.yml index 38ed75626..bb7ab18a5 100644 --- a/.github/workflows/consumer_test.yml +++ b/.github/workflows/consumer_test.yml @@ -13,10 +13,7 @@ name: Consumer Tests on: - pull_request: - types: [opened, reopened, synchronize] - merge_group: - types: [checks_requested] + workflow_call: jobs: test: @@ -34,12 +31,46 @@ jobs: run: | bazel run //:ide_support + - name: Prepare report directory + run: | + mkdir -p reports + - name: Run Consumer tests run: | - .venv_docs/bin/python -m pytest -s -v src/tests/ --repo="$CONSUMER" + .venv_docs/bin/python -m pytest -s -v src/tests/ --repo="$CONSUMER" --junitxml="reports/${{ matrix.consumer }}.xml" | tee "reports/${{ matrix.consumer }}.log" env: FORCE_COLOR: "1" TERM: xterm-256color PYTHONUNBUFFERED: "1" CONSUMER: ${{ matrix.consumer }} + + - name: Upload consumer test report + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + name: tests-${{ matrix.consumer }} + path: reports/ + + summarize: + needs: test + runs-on: ubuntu-latest + if: ${{ always() }} + steps: + - name: Prepare consumer report directory + run: | + mkdir -p tests-report + + - name: Download individual consumer reports + uses: actions/download-artifact@v4 + with: + pattern: tests-* + path: tests-report + merge-multiple: true + + - name: Upload bundled consumer report + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + name: tests-report + path: tests-report diff --git a/.github/workflows/test_and_docs.yml b/.github/workflows/test_and_docs.yml new file mode 100644 index 000000000..542bc6da9 --- /dev/null +++ b/.github/workflows/test_and_docs.yml @@ -0,0 +1,58 @@ +# ******************************************************************************* +# Copyright (c) 2025 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +name: Tests, Verify and Build Docs + +permissions: + contents: write + pages: write + pull-requests: write + id-token: write + +on: + pull_request_target: + types: [opened, reopened, synchronize] # Allows forks to trigger the docs build + push: + branches: + - main + merge_group: + types: [checks_requested] + +jobs: + docs-verify: + uses: eclipse-score/cicd-workflows/.github/workflows/docs-verify.yml@main + permissions: + pull-requests: write + contents: read + with: + bazel-docs-verify-target: "//:docs_check" + + # This is the user configurable part of the workflow + consumer-tests: + uses: ./.github/workflows/consumer_test.yml + secrets: inherit + + docs-build: + # Waits for consumer-tests but run only when docs verification succeeded + needs: [docs-verify, consumer-tests] + if: ${{ always() && needs.docs-verify.result == 'success' }} + uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@main + permissions: + contents: write + pages: write + pull-requests: write + id-token: write + with: + bazel-target: "//:docs -- --github_user=${{ github.repository_owner }} --github_repo=${{ github.event.repository.name }}" + retention-days: 3 + tests-report-artifact: tests-report