Get rid of libAtoms/lbfgs.f, now that it's supposed to be lbfgs.F (#708) #686
This file contains hidden or 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: 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 | |
| env: | |
| BUILDDIR: ${{ github.workspace }}/builddir/src/Programs | |
| # 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 |