<pre style='margin:0'>
Zero King (l2dy) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/8a8c4c85d840e1245d0444021a2bba64164b654b">https://github.com/macports/macports-base/commit/8a8c4c85d840e1245d0444021a2bba64164b654b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 8a8c4c85d840e1245d0444021a2bba64164b654b
</span>Author: Zero King <l2dy@macports.org>
AuthorDate: Fri Feb 18 14:40:16 2022 +0000

<span style='display:block; white-space:pre;color:#404040;'>    ci: add coverage report workflow
</span>---
 .github/workflows/coverage.yml | 53 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000..2f177aed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/.github/workflows/coverage.yml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,53 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name: "Report Coverage"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - push
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - pull_request
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  build:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    name: ${{ matrix.os }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    runs-on: ${{ matrix.os }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    strategy:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      matrix:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        os: [macos-11]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    steps:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Checkout repository
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        uses: actions/checkout@v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        with:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          fetch-depth: 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Cleanup /usr/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo mkdir /opt/local.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo mv /usr/local/* /opt/local.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Configure MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          ./configure CFLAGS="-fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Build MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          make -j$(sysctl -n hw.activecpu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Install MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo make install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Test MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          LLVM_PROFILE_FILE="$PWD/cov-%p.profraw" make test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Report Coverage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          xcrun llvm-profdata merge --sparse --output=cov.profdata cov-*.profraw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          # tracelib cannot be profiled
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          OBJ_FILES="$(find src -type f "(" -name "*.dylib" -o -name "*.a" ")" | grep -Fv darwintracelib1.0 | sed 's/^/--arch=x86_64 --object=/')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          xcrun llvm-cov show --format=html --output-dir=covreport --ignore-filename-regex=vendor/ --instr-profile=cov.profdata $OBJ_FILES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          xcrun llvm-cov report --ignore-filename-regex=vendor/ --instr-profile=cov.profdata $OBJ_FILES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Archive code coverage results
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        uses: actions/upload-artifact@v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        with:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          name: code-coverage-report
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          path: covreport/
</span></pre><pre style='margin:0'>

</pre>