Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 32 additions & 4 deletions .github/workflows/aarch64-apple-darwin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,43 @@ name: aarch64-apple-darwin
on: [push, pull_request]

jobs:
build-and-test:
setup-aarch64-apple-darwin:
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install cmake
- name: Build and Test

build-aarch64-apple-darwin:
runs-on: macos-15
needs: setup-aarch64-apple-darwin
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install cmake
- name: Configure
run: |
mkdir -p build && cd build
cmake -G "Unix Makefiles" -DTARGET=aarch64-apple-darwin ..
make -j$(sysctl -n hw.ncpu)
ctest --output-on-failure
- name: Build
run: cd build && make -j$(sysctl -n hw.ncpu)
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-aarch64-apple-darwin
path: build/

test-aarch64-apple-darwin:
runs-on: macos-15
needs: build-aarch64-apple-darwin
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-aarch64-apple-darwin
path: build/
- name: Restore execute permissions
run: chmod +x build/bin/*
- name: Run Tests
run: cd build && ctest --output-on-failure
38 changes: 34 additions & 4 deletions .github/workflows/aarch64-pc-linux-gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,47 @@ name: aarch64-pc-linux-gnu
on: [push, pull_request]

jobs:
build-and-test:
setup-aarch64-pc-linux-gnu:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake build-essential
- name: Build and Test

build-aarch64-pc-linux-gnu:
runs-on: ubuntu-24.04-arm
needs: setup-aarch64-pc-linux-gnu
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake build-essential
- name: Configure
run: |
mkdir -p build && cd build
cmake -G "Unix Makefiles" -DTARGET=aarch64-pc-linux-gnu ..
make -j$(nproc)
ctest --output-on-failure
- name: Build
run: cd build && make -j$(nproc)
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-aarch64-pc-linux-gnu
path: build/

test-aarch64-pc-linux-gnu:
runs-on: ubuntu-24.04-arm
needs: build-aarch64-pc-linux-gnu
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-aarch64-pc-linux-gnu
path: build/
- name: Restore execute permissions
run: chmod +x build/bin/*
- name: Run Tests
run: cd build && ctest --output-on-failure
13 changes: 13 additions & 0 deletions .github/workflows/aarch64-pc-windows-gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,21 @@ name: aarch64-pc-windows-gnu
on: [push, pull_request]

jobs:
setup-aarch64-pc-windows-gnu:
runs-on: windows-11-arm
steps:
- uses: actions/checkout@v4
- name: Setup MinGW
uses: msys2/setup-msys2@v2
with:
msystem: CLANGARM64
update: true
cache: true
install: mingw-w64-clang-aarch64-toolchain mingw-w64-clang-aarch64-cmake

build-aarch64-pc-windows-gnu:
runs-on: windows-11-arm
needs: setup-aarch64-pc-windows-gnu
steps:
- uses: actions/checkout@v4
- name: Setup MinGW
Expand Down
37 changes: 32 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@ on:
- riscv64-musl-linux
types:
- completed
branches:
- release

permissions:
contents: write
Expand All @@ -44,6 +42,13 @@ jobs:
# Only run if the triggering workflow succeeded AND it ran on the release branch
if: ${{ github.event.workflow_run.head_branch == 'release' && github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Log trigger information
run: |
echo "Triggered by workflow: ${{ github.event.workflow_run.name }}"
echo "Workflow status: ${{ github.event.workflow_run.conclusion }}"
echo "Branch: ${{ github.event.workflow_run.head_branch }}"
echo "Commit SHA: ${{ github.event.workflow_run.head_sha }}"

- name: Check all workflow statuses
id: check-all
uses: actions/github-script@v7
Expand Down Expand Up @@ -104,27 +109,42 @@ jobs:

const failed = [];
const pending = [];
const succeeded = [];

for (const name of target_workflows) {
const run = latest_runs[name];
if (!run || run.status !== 'completed') {
if (!run) {
console.log(` ${name}: NO RUN FOUND`);
pending.push(name);
} else if (run.status !== 'completed') {
console.log(` ${name}: ${run.status}`);
pending.push(name);
} else if (run.conclusion !== 'success') {
console.log(` ${name}: completed with ${run.conclusion}`);
failed.push(name);
} else {
console.log(` ${name}: success`);
succeeded.push(name);
}
}

console.log(`\nSummary: ${succeeded.length} succeeded, ${pending.length} pending, ${failed.length} failed`);

if (pending.length > 0) {
console.log(`Waiting for other workflows to complete: ${pending.join(', ')}`);
console.log(`Waiting for ${pending.length} workflows to complete: ${pending.join(', ')}`);
core.setOutput("ready", "false");
core.notice(`Release skipped: waiting for ${pending.length} workflows to complete`);
return; // Exit successfully but do nothing; wait for next trigger
}

if (failed.length > 0) {
core.setFailed(`One or more workflows failed: ${failed.join(', ')}`);
core.setOutput("ready", "false");
return;
}

console.log("All target workflows passed successfully!");
core.notice("All required workflows passed - creating release");
core.setOutput("ready", "true");

- name: Perform Release
Expand All @@ -136,7 +156,14 @@ jobs:

- name: Get Version
if: steps.check-all.outputs.ready == 'true'
run: echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV
run: |
if [ ! -f VERSION ]; then
echo "ERROR: VERSION file not found"
exit 1
fi
VERSION=$(cat VERSION)
echo "Creating release for version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV

- name: Get Release Details
if: steps.check-all.outputs.ready == 'true'
Expand Down
36 changes: 32 additions & 4 deletions .github/workflows/x86_64-apple-darwin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,43 @@ name: x86_64-apple-darwin
on: [push, pull_request]

jobs:
build-and-test:
setup-x86_64-apple-darwin:
runs-on: macos-15-intel
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install cmake
- name: Build and Test

build-x86_64-apple-darwin:
runs-on: macos-15-intel
needs: setup-x86_64-apple-darwin
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install cmake
- name: Configure
run: |
mkdir -p build && cd build
cmake -G "Unix Makefiles" -DTARGET=x86_64-apple-darwin ..
make -j$(sysctl -n hw.ncpu)
ctest --output-on-failure
- name: Build
run: cd build && make -j$(sysctl -n hw.ncpu)
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-x86_64-apple-darwin
path: build/

test-x86_64-apple-darwin:
runs-on: macos-15-intel
needs: build-x86_64-apple-darwin
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-x86_64-apple-darwin
path: build/
- name: Restore execute permissions
run: chmod +x build/bin/*
- name: Run Tests
run: cd build && ctest --output-on-failure
38 changes: 34 additions & 4 deletions .github/workflows/x86_64-pc-linux-gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,50 @@ name: x86_64-pc-linux-gnu
on: [push, pull_request]

jobs:
build-and-test:
setup-x86_64-pc-linux-gnu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake build-essential
- name: Build and Test

build-x86_64-pc-linux-gnu:
runs-on: ubuntu-latest
needs: setup-x86_64-pc-linux-gnu
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake build-essential
- name: Configure
run: |
mkdir -p build && cd build
cmake -G "Unix Makefiles" -DTARGET=x86_64-pc-linux-gnu -DENABLE_COVERAGE=ON ..
make -j$(nproc)
ctest --output-on-failure
- name: Build
run: cd build && make -j$(nproc)
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-x86_64-pc-linux-gnu
path: build/

test-x86_64-pc-linux-gnu:
runs-on: ubuntu-latest
needs: build-x86_64-pc-linux-gnu
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-x86_64-pc-linux-gnu
path: build/
- name: Restore execute permissions
run: chmod +x build/bin/*
- name: Run Tests
run: cd build && ctest --output-on-failure
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/x86_64-pc-windows-gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,21 @@ name: x86_64-pc-windows-gnu
on: [push, pull_request]

jobs:
setup-x86_64-pc-windows-gnu:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup MinGW
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
cache: true
install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake

build-x86_64-pc-windows-gnu:
runs-on: windows-latest
needs: setup-x86_64-pc-windows-gnu
steps:
- uses: actions/checkout@v4
- name: Setup MinGW
Expand Down
30 changes: 28 additions & 2 deletions .github/workflows/x86_64-pc-windows-msvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,18 @@ name: x86_64-pc-windows-msvc
on: [push, pull_request]

jobs:
build-and-test:
setup-x86_64-pc-windows-msvc:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64

build-x86_64-pc-windows-msvc:
runs-on: windows-latest
needs: setup-x86_64-pc-windows-msvc
steps:
- uses: actions/checkout@v4
- name: Setup MSVC
Expand All @@ -17,5 +27,21 @@ jobs:
cmake -G "Ninja" -DTARGET=x86_64-pc-windows-msvc -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl ..
- name: Build
run: cmake --build build --config Release --parallel 4
- name: Test
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-x86_64-pc-windows-msvc
path: build/

test-x86_64-pc-windows-msvc:
runs-on: windows-latest
needs: build-x86_64-pc-windows-msvc
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-x86_64-pc-windows-msvc
path: build/
- name: Run Tests
run: cd build && ctest --output-on-failure
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.1
0.1.2
Loading