Rust interface #381
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-20.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-20.04 | |
needs: get_commit_message | |
steps: | |
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 | |
- name: install dependencies | |
run: | | |
sudo add-apt-repository ppa:kelleyk/emacs | |
sudo apt-get install libhdf5-dev emacs26 | |
- 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 virtual environment | |
run: | | |
python3 -m venv --clear pytrexio-venv | |
source pytrexio-venv/bin/activate | |
- name: install Python API | |
run: make python-install | |
- name: check Python API | |
run: make python-test | |
- name: build and move Python API distribution | |
run: | | |
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-11 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: x86 MacOS 12 | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 | |
- name: install dependencies | |
run: | | |
brew install emacs | |
brew install hdf5 | |
brew install automake | |
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: compile Python API | |
run: | | |
export H5_CFLAGS="-I$(brew --prefix hdf5)/include" | |
export H5_LDFLAGS="-L$(brew --prefix hdf5)/lib" | |
make python-install | |
- name: test Python API | |
run: 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 |