Try pinned SWIG from PyPI #490
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: TREXIO CI | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
# After vMajor.Minor.Patch _anything_ is allowed (without "/") ! | |
- v[0-9]+.[0-9]+.[0-9]+* | |
pull_request: | |
branches: [ master ] | |
jobs: | |
get_commit_message: | |
name: Get commit message | |
runs-on: ubuntu-22.04 | |
outputs: | |
message: ${{ steps.commit_message.outputs.message }} | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 | |
# Gets the correct commit message for pull request | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Get commit message | |
id: commit_message | |
run: | | |
set -xe | |
COMMIT_MSG=$(git log --no-merges -1 --oneline) | |
echo "message=$COMMIT_MSG" >> $GITHUB_OUTPUT | |
echo github.ref ${{ github.ref }} | |
trexio_ubuntu: | |
name: x86 Ubuntu | |
runs-on: ubuntu-22.04 | |
needs: get_commit_message | |
steps: | |
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 | |
- name: check versions | |
run: | | |
grep AC_INIT configure.ac | tr -d '[]' | awk -F, '{ print $2 }' > configure_v | |
grep -w VERSION CMakeLists.txt | grep -v 'cmake_minimum_required' | awk '{ print $2 }' > cmake_v | |
grep version python/pytrexio/_version.py | tr -d '"' | awk '{ print $3 }' > python_v | |
grep version rust/trexio/Cargo.toml | grep -v features | tr -d '"' | awk '{ print $3 }' > rust_v | |
grep version ocaml/trexio/dune-project | tr -d '()' | awk '{ print $2 }' > ocaml_v | |
diff configure_v cmake_v | |
diff configure_v python_v | |
diff configure_v rust_v | |
diff configure_v ocaml_v | |
- name: setup fixed Python version for testing | |
uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f | |
with: | |
python-version: '3.10' | |
- name: install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libhdf5-dev emacs | |
- name: configure with autotools | |
run: | | |
./autogen.sh | |
./configure --enable-silent-rules | |
- name: compile TREXIO | |
run: make -j2 | |
- name: check TREXIO | |
run: make -j2 check | |
- name: Archive test log file | |
if: failure() | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 | |
with: | |
name: test-report-ubuntu | |
path: test-suite.log | |
- name: create venv | |
run: | | |
python3 -m venv trexio-venv | |
source trexio-venv/bin/activate | |
- name: install Python API | |
run: | | |
source trexio-venv/bin/activate | |
make python-install | |
- name: check Python API | |
run: | | |
source trexio-venv/bin/activate | |
make python-test | |
- name: build and move Python API distribution | |
run: | | |
source trexio-venv/bin/activate | |
make python-sdist | |
cp python/dist/trexio-*.tar.gz . | |
- name: publish Python API distribution as an artifact | |
if: >- | |
contains(needs.get_commit_message.outputs.message, '[wheel build]') || | |
github.event_name == 'release' | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 | |
with: | |
name: pytrexio-source | |
path: ./trexio-*.tar.gz | |
- name: maintainer clean | |
run: make maintainer-clean | |
- name: reconfigure with clang and AddressSanitizer | |
run: | | |
./autogen.sh | |
./configure CC=clang-15 CFLAGS="-O2 -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address" --enable-silent-rules | |
- name: recompile TREXIO | |
run: make -j2 | |
- name: recheck TREXIO for memory leaks | |
run: make -j2 check | |
- name: Archive test log file | |
if: failure() | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 | |
with: | |
name: test-report-ubuntu-memory | |
path: test-suite.log | |
- name: maintainer clean | |
run: make maintainer-clean | |
trexio_macos: | |
name: x86 and arm64 MacOS | |
strategy: | |
# macos-13 = x86_64 ; macos-14 = aarch64 | |
matrix: | |
os: [macos-13, macos-14] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 | |
- name: setup fixed Python version for testing | |
uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f | |
with: | |
python-version: '3.12' | |
- name: install dependencies | |
run: | | |
brew install emacs | |
brew install [email protected] | |
brew install automake | |
brew install libtool | |
# SWIG 4.3.0 from homebrew with clang failed CI for macos@aarch64 - lol what? | |
pip install swig==4.2.1.post0 | |
swig -version | |
- name: configure with autotools | |
run: | | |
brew --prefix hdf5 | |
./autogen.sh | |
./configure CC=gcc-12 FC=gfortran-12 --enable-silent-rules | |
- name: compile TREXIO | |
run: make -j3 | |
- name: check TREXIO | |
run: make -j3 check | |
- name: create venv | |
run: | | |
python3 -m venv trexio-venv | |
source trexio-venv/bin/activate | |
- name: compile Python API | |
run: | | |
export H5_CFLAGS="-I$(brew --prefix hdf5)/include" | |
export H5_LDFLAGS="-L$(brew --prefix hdf5)/lib" | |
source trexio-venv/bin/activate | |
make python-install | |
- name: test Python API | |
run: | | |
source trexio-venv/bin/activate | |
make python-test | |
- name: Archive test log file | |
if: failure() | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 | |
with: | |
name: test-report-${{ matrix.os }} | |
path: test-suite.log | |
- name: clean | |
run: make clean |