From d80bdf5cfa0550153a525e94076c4be46c0fd0c7 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Wed, 9 Sep 2026 18:43:11 -0700 Subject: [PATCH 1/3] CI: migrate macOS job to Github Actions Cirrus CI is dead. --- .cirrus.yml | 10 ---------- .github/workflows/ci.yml | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 175ba140..bc99f191 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,16 +4,6 @@ task: only_if: $CIRRUS_BRANCH == "main" || $CIRRUS_PR != "" matrix: - - name: macOS - macos_instance: - image: ghcr.io/cirruslabs/macos-runner:sequoia - environment: - CFLAGS: -Werror -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=undefined - PATH: /opt/homebrew/opt/llvm/bin:${PATH} - UBSAN_OPTIONS: print_stacktrace=1 - install_script: brew update && brew install coreutils cscope llvm && env PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip install pytest - test_script: ./misc/ci.sh - - name: C formatting container: image: silkeh/clang:19 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 670d5358..00494acd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,25 @@ jobs: ./build/test/find-me/find-me cmake --install build + macos26: + name: macOS + runs-on: macos-26-intel + env: + CFLAGS: -Werror -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=address,undefined + UBSAN_OPTIONS: print_stacktrace=1 + steps: + - run: python3 --version + - run: brew update + - run: brew install coreutils cscope + - run: env PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip install pytest + - run: echo "cloning ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" + - run: git clone --no-checkout --recurse-submodules -- ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} wd + - run: > + cd wd && + git fetch -- origin ${{ github.event.pull_request.head.sha }} && + git checkout FETCH_HEAD && + env PATH=$(brew --prefix llvm@20)/bin:${PATH} ./misc/ci.sh + ubuntu2604: name: Linux runs-on: ubuntu-26.04 From dcbf0c8c97aadc7a7cbdd73eead4c0ef62c33fc5 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Thu, 10 Sep 2026 17:14:20 -0700 Subject: [PATCH 2/3] CI: migrate C formatting job to Github Actions Cirrus CI is dead. --- .cirrus.yml | 6 ------ .github/workflows/ci.yml | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index bc99f191..1c41fb62 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,12 +4,6 @@ task: only_if: $CIRRUS_BRANCH == "main" || $CIRRUS_PR != "" matrix: - - name: C formatting - container: - image: silkeh/clang:19 - install_script: apt-get update -y && apt-get install --no-install-recommends -y git - test_script: clang-format --version && git ls-files -z -- ':!:test/cases' '**/*.c' '**/*.h' | xargs -0 -- clang-format --dry-run --style=file --Werror - - name: Python formatting container: image: cytopia/black diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00494acd..8af0aad9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -93,3 +93,20 @@ jobs: git fetch -- origin ${{ github.event.pull_request.head.sha }} && git checkout FETCH_HEAD && ./misc/ci.sh + + c_analysis: + name: C analysis + runs-on: ubuntu-26.04 + steps: + - run: uname -rms + - run: python3 --version + - run: clang --version + - run: echo "cloning ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" + - run: git clone --no-checkout -- ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} wd + - run: > + cd wd && + git fetch -- origin ${{ github.event.pull_request.head.sha }} && + git checkout FETCH_HEAD + - run: > + cd wd && git ls-files -z -- ':!:test/cases' '**/*.c' '**/*.h' | + xargs -0 -- clang-format-22 --dry-run --style=file --Werror -- From 2ad1437c56f11846c47b71f87a82dafa92b8eb01 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Thu, 10 Sep 2026 17:14:20 -0700 Subject: [PATCH 3/3] CI: migrate Python formatting job to Github Actions Cirrus CI is dead. --- .cirrus.yml | 11 ----------- .github/workflows/ci.yml | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 11 deletions(-) delete mode 100644 .cirrus.yml diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index 1c41fb62..00000000 --- a/.cirrus.yml +++ /dev/null @@ -1,11 +0,0 @@ -task: - - # only test the main branch and pull requests - only_if: $CIRRUS_BRANCH == "main" || $CIRRUS_PR != "" - - matrix: - - name: Python formatting - container: - image: cytopia/black - install_script: apk add git - test_script: git ls-files -z -- ':!:test/cases' '**/*.py' | xargs -0 -- python3 -m black && git diff --exit-code diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8af0aad9..ef7193af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,3 +110,22 @@ jobs: - run: > cd wd && git ls-files -z -- ':!:test/cases' '**/*.c' '**/*.h' | xargs -0 -- clang-format-22 --dry-run --style=file --Werror -- + + python_analysis: + name: Python analysis + runs-on: ubuntu-26.04 + steps: + - run: uname -rms + - run: python3 --version + - run: python3 -m pip install --user black + - run: echo "cloning ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" + - run: git clone --no-checkout -- ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} wd + - run: > + cd wd && + git fetch -- origin ${{ github.event.pull_request.head.sha }} && + git checkout FETCH_HEAD + - run: > + cd wd && + git ls-files -z -- ':!:test/cases' '**/*.py' | + xargs -0 -- python3 -m black -- && + git diff --exit-code