Build and test new wheels (Python 3.10+ and manylinux tag 2.28 instead of 2.24) #455
Workflow file for this run
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 "::set-output name=message::$COMMIT_MSG" | |
trexio_ubuntu: | |
name: x86 Ubuntu 20.04 | |
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: 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@82c141cc518b40d92cc801eee768e7aafc9c2fa2 | |
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@82c141cc518b40d92cc801eee768e7aafc9c2fa2 | |
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@82c141cc518b40d92cc801eee768e7aafc9c2fa2 | |
with: | |
name: test-report-ubuntu-2 | |
path: test-suite.log | |
- name: maintainer clean | |
run: make maintainer-clean | |
trexio_macos: | |
name: arm64 MacOS | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 | |
- name: install dependencies | |
run: | | |
brew install emacs | |
brew install hdf5 | |
brew install automake | |
brew install libtool | |
brew install swig | |
brew --prefix hdf5 | |
- name: configure with autotools | |
run: | | |
./autogen.sh | |
./configure 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@82c141cc518b40d92cc801eee768e7aafc9c2fa2 | |
with: | |
name: test-report-macos | |
path: test-suite.log | |
- name: clean | |
run: make clean |