Skip to content

Fix missing CLI executables in quippy-ase wheel (#703) #674

Fix missing CLI executables in quippy-ase wheel (#703)

Fix missing CLI executables in quippy-ase wheel (#703) #674

Workflow file for this run

name: Build
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the public branch
push:
branches: [ public, mesonify ]
pull_request:
branches: [ public, mesonify ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Build and test QUIP with meson
build:
name: Build QUIP (${{ matrix.os }}, Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14] # macos-14 is native ARM64
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update -y
sudo apt-get install -y gfortran meson ninja-build \
libopenblas-dev liblapack-dev \
libnetcdf-dev libhdf5-serial-dev
- name: Install system dependencies (macOS)
if: runner.os == 'macOS'
run: |
brew install gcc meson ninja openblas
# Create gfortran symlink since homebrew installs versioned binaries
for gfortran_bin in /opt/homebrew/bin/gfortran-* /usr/local/bin/gfortran-*; do
if [ -f "$gfortran_bin" ]; then
sudo ln -sf "$gfortran_bin" /usr/local/bin/gfortran
break
fi
done
gfortran --version
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install numpy ase meson-python build
pip install 'f90wrap>=0.3.0'
env:
FC: gfortran
CC: gcc
- name: Build QUIP libraries
run: |
meson setup builddir
meson compile -C builddir
env:
PKG_CONFIG_PATH: ${{ runner.os == 'macOS' && '/opt/homebrew/opt/openblas/lib/pkgconfig:/usr/local/opt/openblas/lib/pkgconfig' || '' }}
- name: Build and install quippy
run: |
cd quippy
pip install .
env:
PKG_CONFIG_PATH: ${{ runner.os == 'macOS' && '/opt/homebrew/opt/openblas/lib/pkgconfig:/usr/local/opt/openblas/lib/pkgconfig' || '' }}
- name: Run quippy tests
run: |
cd tests
python run_all.py
# Uncomment to get SSH access for testing
# - name: Setup tmate session
# if: failure()
# uses: mxschmitt/action-tmate@v3
# timeout-minutes: 15
# Builds the QUIP docs webpage image. This only happens ON the public
# branch, after tests pass and pull requests are completed
# TEMPORARILY DISABLED - needs investigation
docs:
runs-on: ubuntu-latest
needs: build
if: false # github.ref == 'refs/heads/public'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install system dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y gfortran meson ninja-build \
libopenblas-dev pandoc
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install sphinx sphinx-rtd-theme nbsphinx numpydoc \
pygments nbconvert ipython numpy ase meson-python
- name: Build QUIP and quippy
run: |
meson setup builddir
meson compile -C builddir
cd quippy
pip install --no-build-isolation .
- name: Build documentation
run: |
cd doc
python -m sphinx . _build/html
- name: Deploy documentation
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/_build/html
# Builds the QUIP docker image. This takes about 1h 20min
# this only happens ON the public branch, after pull requests
# are completed
# TEMPORARILY DISABLED - needs investigation
docker:
runs-on: ubuntu-latest
needs: build # depends on the previous matrix jobs to succeed
if: false # github.ref == 'refs/heads/public'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push QUIP Docker image
run: |
docker build --tag libatomsquip/quip:public docker
docker push libatomsquip/quip:public