diff --git a/.github/workflows/sphinx_steps.yml b/.github/workflows/sphinx_steps.yml new file mode 100644 index 000000000..c65ee78d6 --- /dev/null +++ b/.github/workflows/sphinx_steps.yml @@ -0,0 +1,37 @@ +name: Sphinx steps +on: + workflow_call: +permissions: + contents: read + +jobs: + test_sphinx_builds: + name: Build Sphinx Documentation + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v6.0.2 + - name: Build Sphinx Documentation + run: |- + set -e + sudo apt-get update + sudo apt-get install -y --no-install-recommends libaugeas-dev + FINAL_STATUS=0 + declare -a FAILED_BUILDS + tools/venv.py + source venv/bin/activate + for doc_path in */docs + do + echo "" + echo "##[group]Building $doc_path" + if ! sphinx-build -W --keep-going -b html $doc_path $doc_path/_build/html; then + FINAL_STATUS=1 + FAILED_BUILDS[${#FAILED_BUILDS[@]}]="${doc_path%/docs}" + fi + echo "##[endgroup]" + done + if [[ $FINAL_STATUS -ne 0 ]]; then + echo "##[error]The following builds failed: ${FAILED_BUILDS[*]}" + exit 1 + fi + shell: bash diff --git a/.github/workflows/standard_tests_jobs.yml b/.github/workflows/standard_tests_jobs.yml index 6d7f0963d..c2238d0cd 100644 --- a/.github/workflows/standard_tests_jobs.yml +++ b/.github/workflows/standard_tests_jobs.yml @@ -46,9 +46,4 @@ jobs: IMAGE_NAME: "${{ matrix.IMAGE_NAME }}" test_name: "test" test_sphinx_builds: - runs-on: - - ubuntu-22.04 - steps: - - name: checkout - uses: actions/checkout@v6.0.2 - - uses: "./.github/actions/sphinx_steps" + uses: "./.github/workflows/sphinx_steps.yml" diff --git a/.github/workflows/tox_steps.yml b/.github/workflows/tox_steps.yml index 018db66ec..38dff477f 100644 --- a/.github/workflows/tox_steps.yml +++ b/.github/workflows/tox_steps.yml @@ -99,5 +99,26 @@ jobs: env python3 -m tox run shell: bash - - name: Upload coverage - uses: "./.github/actions/upload_coverage" + - name: Upload coverage data + if: env.uploadCoverage == true && (startsWith(matrix.TOXENV, 'cover') || startsWith(matrix.TOXENV, 'integration')) + run: |- + python3 tools/pip_install.py -I coverage + case "${{ runner.os }}" in + Darwin) + CODECOV_URL="https://uploader.codecov.io/latest/macos/codecov" + ;; + Linux) + CODECOV_URL="https://uploader.codecov.io/latest/linux/codecov" + ;; + Windows_NT) + CODECOV_URL="https://uploader.codecov.io/latest/windows/codecov.exe" + ;; + *) + echo "Unexpected OS" + exit 0 + esac + curl --retry 3 -o codecov "$CODECOV_URL" + chmod +x codecov + coverage xml + ./codecov || echo "Uploading coverage data failed" + shell: bash