Skip to content

Commit e8a023c

Browse files
Migrate Travis CI to GitHub actions CI (#85)
* Migrate CI from Travis to GitHub Actions Replaces the Travis configuration with an equivalent GitHub Actions workflow at .github/workflows/ci.yml. Same matrix (ubuntu-latest + macos-latest), same build pipeline (autogen.sh, make, make check, make install), same on-failure log dump for utils/*.log. Two minor modernizations: - Switches the Ubuntu guile package from guile-2.0-dev to guile-3.0-dev. guile-2.0 was dropped from Ubuntu after 20.04; libctl already builds and runs against guile 3.0. - macOS dependency install adds autoconf/automake/libtool explicitly rather than relying on the runner image to provide them. Workflow triggers on push to master, pull_request to master, and manual workflow_dispatch. fail-fast disabled so a failure on one OS doesn't cancel the other. Also removes the Travis CI badge from README.md and replaces it with a GitHub Actions badge pointing at the new workflow. * CI: drop macOS, add OMP_NUM_THREADS matrix to exercise parallel tests Drops the macos-latest matrix entry per maintainer preference (less useful: project is primarily Linux-targeted, macOS runners cost more minutes, and the existing Travis macOS coverage didn't exercise anything Linux didn't). Adds --enable-openmp to the configure step and matrices the run on OMP_NUM_THREADS = 1 and 8. Both values share the same build; only the runtime thread count differs. This catches regressions in the parallel test paths (test-prism's #pragma omp parallel for loops in test_point_inclusion, test_normal_to_object, and test_line_segment_intersection) that a serial-only run wouldn't flag — same matrix philosophy used to validate the prism thread-safety work in PR #75 / #81.
1 parent 52555f6 commit e8a023c

3 files changed

Lines changed: 42 additions & 30 deletions

File tree

.github/workflows/ci.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
workflow_dispatch:
9+
10+
jobs:
11+
build:
12+
name: linux (OMP_NUM_THREADS=${{ matrix.omp_threads }})
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
omp_threads: [1, 8]
18+
env:
19+
OMP_NUM_THREADS: ${{ matrix.omp_threads }}
20+
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
- name: Install dependencies
25+
run: |
26+
sudo apt-get update
27+
sudo apt-get install -y autoconf automake libtool guile-3.0-dev
28+
29+
- name: Build and test
30+
run: |
31+
sh autogen.sh --prefix=$PWD/.local --enable-openmp
32+
make
33+
make check
34+
make install
35+
36+
- name: Print test logs on failure
37+
if: failure()
38+
run: |
39+
for log in utils/*.log; do
40+
[ -f "$log" ] && { echo "=== $log ==="; cat "$log"; }
41+
done

.travis.yml

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

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[![Latest Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](http://libctl.readthedocs.io/en/latest/)
2-
[![Build Status](https://travis-ci.org/NanoComp/libctl.svg?branch=master)](https://travis-ci.org/NanoComp/libctl)
2+
[![CI](https://github.com/NanoComp/libctl/actions/workflows/ci.yml/badge.svg)](https://github.com/NanoComp/libctl/actions/workflows/ci.yml)
33

44
This is libctl, a [Guile](http://www.gnu.org/software/guile/)-based library for supporting flexible control
55
files in scientific simulations.

0 commit comments

Comments
 (0)