Skip to content

Commit db1b58c

Browse files
build: improve CI coverage.
* More extensive GitHub CI actions. Changes the github CI steps to do more extensive testing against different platforms and architectures. * Linux: Tests against x86-64 and aarch64 against both gcc and clang * macOS: Tests against x86-64 and aarch64 but only clang. * FreeBSD: Uses a GitHub action to set up a VM and tests against FreeBSD 13, 14, and 15. * See if we can add gcc and clang for freebsd * Remove cirrus CI I think this branch incorporates everything that was being done in cirrus, namely tests in FreeBSD.
1 parent 77ee21e commit db1b58c

File tree

3 files changed

+67
-40
lines changed

3 files changed

+67
-40
lines changed

.cirrus.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 65 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,80 @@
11
name: CI
22
on:
33
push:
4-
branches: [master]
4+
branches: ["*"]
55
tags: ["*"]
66
pull_request:
77
workflow_dispatch:
8+
89
jobs:
9-
test:
10-
name: ${{ matrix.os }} - ${{ matrix.compiler }} - ${{ github.event_name }}
11-
runs-on: ${{ matrix.os }}
10+
linux:
11+
name: Linux ${{ matrix.arch }} / ${{ matrix.cc }}
12+
runs-on: ${{ matrix.runner }}
1213
strategy:
1314
fail-fast: false
1415
matrix:
15-
os:
16-
- ubuntu-latest
17-
- macos-latest
18-
compiler:
19-
- gcc
20-
- clang
21-
exclude:
22-
- os: macos-latest
23-
compiler: gcc
16+
arch: [x86_64, arm64]
17+
cc: [gcc, clang]
18+
include:
19+
- arch: x86_64
20+
runner: ubuntu-latest
21+
- arch: arm64
22+
runner: ubuntu-22.04-arm
2423
steps:
2524
- uses: actions/checkout@v4
26-
- run: ${{ matrix.compiler }} --version
25+
26+
- name: Install compilers
27+
run: sudo apt-get update && sudo apt-get install -y gcc clang
28+
29+
- name: Compiler version
30+
run: ${{ matrix.cc }} --version
31+
2732
- name: Build
28-
run: ./tools/ci-build.sh CC=${{ matrix.compiler }}
33+
run: ./tools/ci-build.sh CC=${{ matrix.cc }} --cores=2
34+
2935
- name: Test
3036
run: make check
37+
38+
macos:
39+
name: macOS ${{ matrix.variant }}
40+
runs-on: ${{ matrix.runner }}
41+
strategy:
42+
fail-fast: false
43+
matrix:
44+
include:
45+
- variant: arm64
46+
runner: macos-latest # Arm64
47+
- variant: x86_64
48+
runner: macos-13 # x86-64
49+
steps:
50+
- uses: actions/checkout@v4
51+
- run: ./tools/ci-build.sh --cores=2
52+
- run: make check
53+
54+
freebsd:
55+
name: "FreeBSD ${{ matrix.version }} / ${{ matrix.arch }} / ${{ matrix.cc }}"
56+
runs-on: ubuntu-latest
57+
strategy:
58+
fail-fast: false
59+
matrix:
60+
version: ['13.3', '14.2', '15.0']
61+
arch: ['x86_64', 'aarch64']
62+
cc: ['clang', 'gcc']
63+
steps:
64+
- uses: actions/checkout@v4
65+
66+
- name: Build & Test inside FreeBSD
67+
uses: vmactions/[email protected]
68+
with:
69+
release: ${{ matrix.version }}
70+
arch: ${{ matrix.arch }}
71+
mem: 6144
72+
cpu: 2
73+
usesh: true
74+
sync: rsync
75+
prepare: |
76+
pkg install -y gcc gmake
77+
run: |
78+
${{ matrix.cc }} --version
79+
./tools/ci-build.sh CC=${{ matrix.cc }} --cores=2
80+
make check

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ Modern concurrency primitives and building blocks for high performance applicati
44

55
### Continuous Integration
66

7-
| GitHub Actions | Cirrus |
8-
| -------- | ------- |
9-
| [![Build Status](https://github.com/concurrencykit/ck/workflows/CI/badge.svg)](https://github.com/concurrencykit/ck/actions?query=workflow%3ACI+branch%3Amaster) | [![Build Status](https://api.cirrus-ci.com/github/concurrencykit/ck.svg?branch=master)](https://cirrus-ci.com/github/concurrencykit/ck) |
7+
[![Build Status](https://github.com/concurrencykit/ck/workflows/CI/badge.svg)](https://github.com/concurrencykit/ck/actions?query=workflow%3ACI+branch%3Amaster)
108

119
Compilers tested in the past include gcc, clang, cygwin, icc, mingw32, mingw64
1210
and suncc across all supported architectures. All new architectures are
@@ -50,7 +48,7 @@ Concurrency Kit has specialized assembly for the following architectures:
5048
* `sparcv9+`
5149
* `x86`
5250
* `x86_64`
53-
51+
5452
### Features
5553

5654
#### Concurrency Primitives

0 commit comments

Comments
 (0)