add find existant vs non-existant keys #131
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macos-build | |
on: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
check-diff: | |
runs-on: ubuntu-latest | |
outputs: | |
handle: ${{ steps.check.outputs.run }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: 2 | |
# The goal is to force this to pass if it does not need to run. | |
- name: Check the diff | |
id: check | |
run: | | |
echo "Here are the changed build/C files:" | |
echo "$(git --no-pager diff --name-only HEAD HEAD~1 | grep -E '\.(c|h)$|\.cmake|CMakeLists|Config\.cmake\.in')" | |
if git diff --name-only HEAD HEAD~1 | grep -qE '\.(c|h)$|\.cmake|CMakeLists|Config\.cmake\.in'; then | |
echo "run=true" >> $GITHUB_OUTPUT | |
echo "Implementation and/or build files have changed, rebuilding..." | |
else | |
echo "run=false" >> $GITHUB_OUTPUT | |
echo "Implementation and/or build files have NOT changed, skipping build..." | |
fi | |
build: | |
runs-on: ubuntu-latest | |
needs: check-diff | |
if: ${{ needs.check-diff.outputs.handle == 'true' }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- uses: lukka/get-cmake@latest | |
- name: Build Debug Clang and Ninja | |
run: | | |
cmake --preset=clang-deb -G "Ninja" && cmake --build build --target ccc tests samples | |
cmake --build build --target install | |
- name: Test Debug | |
run: | | |
make dtest | |
- name: Build Release Clang and Ninja | |
run: | | |
make clean | |
cmake --preset=clang-rel -G "Ninja" && cmake --build build --target ccc tests samples | |
cmake --build build --target install | |
- name: Test Release | |
run: | | |
make rtest |