| name: CI |
| |
| on: |
| push: |
| branches: [main] |
| pull_request: |
| branches: [main] |
| |
| env: |
| DEFAULT_DOXYGEN_VERSION: "1.14.0" |
| |
| jobs: |
| tests: |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest, macos-latest] |
| bazel: [7.0.0, 8.0.0] |
| subdir: |
| [ |
| base, |
| kwargs, |
| doxyfile, |
| doxylink, |
| latex, |
| nested, |
| custom, |
| awesome, |
| substitutions, |
| dependencies, |
| ] |
| exclude: |
| # In substitution example we use `string_keyed_label_dict`, which is not supported in bazel 7.0.0 |
| - bazel: 7.0.0 |
| subdir: substitutions |
| runs-on: ${{ matrix.os }} |
| |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Create .bazelversion file |
| working-directory: examples |
| run: echo "${{ matrix.bazel }}" > .bazelversion |
| shell: bash |
| - name: Build ${{ matrix.subdir }} |
| run: bazel build //${{ matrix.subdir }}:doxygen |
| working-directory: examples |
| - name: Check output |
| uses: andstor/file-existence-action@v3 |
| with: |
| files: "examples/bazel-bin/${{ matrix.subdir }}/html/index.html" |
| fail: true |
| - name: Check doxygen version in produced index.html |
| run: grep "Doxygen $DEFAULT_DOXYGEN_VERSION" examples/bazel-bin/${{ matrix.subdir }}/html/index.html |
| shell: bash |
| |
| tests-system-installation: |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest, macos-latest] |
| subdir: [base] |
| runs-on: ${{ matrix.os }} |
| |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Install doxygen |
| uses: ssciwr/doxygen-install@v1 |
| with: |
| version: "1.9.7" |
| - name: Enable use of system doxygen by decommenting the module extension line |
| uses: richardrigutins/replace-in-files@v2 |
| with: |
| search-text: '# doxygen_extension.configuration(version = "0.0.0")' |
| replacement-text: doxygen_extension.configuration(version = "0.0.0") |
| files: examples/MODULE.bazel |
| - name: Build ${{ matrix.subdir }} |
| run: bazel build //${{ matrix.subdir }}:doxygen |
| working-directory: examples |
| - name: Check output |
| uses: andstor/file-existence-action@v3 |
| with: |
| files: "examples/bazel-bin/${{ matrix.subdir }}/html/index.html" |
| fail: true |
| - name: Check doxygen version in produced index.html |
| run: grep 'Doxygen 1.9.7' examples/bazel-bin/${{ matrix.subdir }}/html/index.html |
| shell: bash |
| |
| tests-multiple-installations: |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest, macos-latest] |
| bazel: [7.0.0, 8.0.0] |
| subdir: [base] |
| runs-on: ${{ matrix.os }} |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Create .bazelversion file |
| working-directory: examples |
| run: echo "${{ matrix.bazel }}" > .bazelversion |
| shell: bash |
| - name: Install doxygen |
| uses: ssciwr/doxygen-install@v1 |
| - name: Enable use of windows doxygen by decommenting the module extension line |
| uses: richardrigutins/replace-in-files@v2 |
| with: |
| search-text: '# doxygen_extension.configuration(version = "1.11.0", sha256 = "478fc9897d00ca181835d248a4d3e5c83c26a32d1c7571f4321ddb0f2e97459f", platform = "windows")' |
| replacement-text: doxygen_extension.configuration(version = "1.11.0", sha256 = "478fc9897d00ca181835d248a4d3e5c83c26a32d1c7571f4321ddb0f2e97459f", platform = "windows") |
| files: examples/MODULE.bazel |
| - name: Enable use of mac doxygen by decommenting the module extension line |
| uses: richardrigutins/replace-in-files@v2 |
| with: |
| search-text: '# doxygen_extension.configuration(version = "1.12.0", sha256 = "6ace7dde967d41f4e293d034a67eb2c7edd61318491ee3131112173a77344001", platform = "mac")' |
| replacement-text: doxygen_extension.configuration(version = "1.12.0", sha256 = "6ace7dde967d41f4e293d034a67eb2c7edd61318491ee3131112173a77344001", platform = "mac-arm") |
| files: examples/MODULE.bazel |
| - name: Enable use linux doxygen by decommenting the module extension line |
| uses: richardrigutins/replace-in-files@v2 |
| with: |
| search-text: '# doxygen_extension.configuration(version = "1.10.0", sha256 = "dcfc9aa4cc05aef1f0407817612ad9e9201d9bf2ce67cecf95a024bba7d39747", platform = "linux")' |
| replacement-text: doxygen_extension.configuration(version = "1.10.0", sha256 = "dcfc9aa4cc05aef1f0407817612ad9e9201d9bf2ce67cecf95a024bba7d39747", platform = "linux") |
| files: examples/MODULE.bazel |
| - name: Build ${{ matrix.subdir }} |
| run: bazel build //${{ matrix.subdir }}:doxygen |
| working-directory: examples |
| - name: Check output |
| uses: andstor/file-existence-action@v3 |
| with: |
| files: "examples/bazel-bin/${{ matrix.subdir }}/html/index.html" |
| fail: true |
| - name: Check doxygen version in produced index.html (windows) |
| if: matrix.os == 'windows-latest' |
| run: grep 'Doxygen 1.11.0' examples/bazel-bin/${{ matrix.subdir }}/html/index.html |
| shell: bash |
| - name: Check doxygen version in produced index.html (mac) |
| if: matrix.os == 'macos-latest' |
| run: grep 'Doxygen 1.12.0' examples/bazel-bin/${{ matrix.subdir }}/html/index.html |
| shell: bash |
| - name: Check doxygen version in produced index.html (linux) |
| if: matrix.os == 'ubuntu-latest' |
| run: grep 'Doxygen 1.10.0' examples/bazel-bin/${{ matrix.subdir }}/html/index.html |
| shell: bash |
| |
| tests-local-executable: |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest, macos-latest] |
| bazel: [7.0.0, 8.0.0] |
| subdir: [base] |
| runs-on: ${{ matrix.os }} |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Create .bazelversion file |
| working-directory: examples |
| run: echo "${{ matrix.bazel }}" > .bazelversion |
| shell: bash |
| - name: Install doxygen |
| uses: ssciwr/doxygen-install@v1 |
| with: |
| version: "1.10.0" |
| |
| - name: Copy binary to examples folder (windows) |
| if: matrix.os == 'windows-latest' |
| run: cp $(Get-Command doxygen).Source examples/doxygen.exe |
| - name: Copy binary to examples folder (mac, linux) |
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' |
| run: cp $(which doxygen) examples/doxygen |
| |
| - name: Enable use of local doxygen by decommenting the module extension line (windows) |
| uses: richardrigutins/replace-in-files@v2 |
| if: matrix.os == 'windows-latest' |
| with: |
| search-text: '# doxygen_extension.configuration(executable = "@//:doxygen")' |
| replacement-text: doxygen_extension.configuration(executable = "@//:doxygen.exe") |
| files: examples/MODULE.bazel |
| - name: Export doxygen binary (windows) |
| uses: richardrigutins/replace-in-files@v2 |
| if: matrix.os == 'windows-latest' |
| with: |
| search-text: '# exports_files(["doxygen"])' |
| replacement-text: exports_files(["doxygen.exe"]) |
| files: examples/BUILD.bazel |
| |
| - name: Enable use of local doxygen by decommenting the module extension line (mac, linux) |
| uses: richardrigutins/replace-in-files@v2 |
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' |
| with: |
| search-text: '# doxygen_extension.configuration(executable = "@//:doxygen")' |
| replacement-text: doxygen_extension.configuration(executable = "@//:doxygen") |
| files: examples/MODULE.bazel |
| - name: Export doxygen binary (mac, linux) |
| uses: richardrigutins/replace-in-files@v2 |
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' |
| with: |
| search-text: '# exports_files(["doxygen"])' |
| replacement-text: exports_files(["doxygen"]) |
| files: examples/BUILD.bazel |
| |
| - name: Build ${{ matrix.subdir }} |
| run: bazel build //${{ matrix.subdir }}:doxygen |
| working-directory: examples |
| - name: Check output |
| uses: andstor/file-existence-action@v3 |
| with: |
| files: "examples/bazel-bin/${{ matrix.subdir }}/html/index.html" |
| fail: true |
| - name: Check doxygen version in produced index.html |
| run: grep 'Doxygen 1.10.0' examples/bazel-bin/${{ matrix.subdir }}/html/index.html |
| shell: bash |
| |
| submodules: |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest, macos-latest] |
| bazel: [7.0.0, 8.0.0] |
| subdir: [root, submodule1, submodule2] |
| runs-on: ${{ matrix.os }} |
| |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Create .bazelversion file |
| working-directory: examples |
| run: echo "${{ matrix.bazel }}" > .bazelversion |
| shell: bash |
| - name: Build submodules/${{ matrix.subdir }} |
| run: bazel build //:doxygen |
| working-directory: examples/submodules/${{ matrix.subdir }} |
| - name: Check output |
| uses: andstor/file-existence-action@v3 |
| with: |
| files: examples/submodules/${{ matrix.subdir }}/bazel-bin/html/index.html |
| fail: true |
| - name: Check doxygen version in produced index.html |
| run: grep "Doxygen $DEFAULT_DOXYGEN_VERSION" examples/submodules/${{ matrix.subdir }}/bazel-bin/html/index.html |
| shell: bash |