Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/LLNL/UEDGE
Browse files Browse the repository at this point in the history
  • Loading branch information
holm10 committed Jul 13, 2024
2 parents ba4d9f3 + 9982158 commit 3050ab3
Show file tree
Hide file tree
Showing 25 changed files with 500 additions and 335 deletions.
210 changes: 210 additions & 0 deletions .github/workflows/build-test-wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
name: Build and test UEDGE - write wheel files if tests pass


on: [push, pull_request]

jobs:
run-all-tests:
name: Runs test ${{ matrix.tests }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.9]
tests: [fulltests, unittests/D+C, unittests/D_mols, unittests/D_only, unittests/slab_D_only]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install pip dependencies
run: |
python -m pip install --upgrade pip
python -m pip install "forthon>=0.10.7" numpy h5py
python -m pip install flake8
python -m pip install pytest-isolate pytest-xdist
- name: Build UEDGE
run: |
python -m pip install .
- name: Return to pytests branch
uses: actions/checkout@v4
with:
ref: pytests
repository: LLNL/UEDGE
- name: Test with pytest
run: |
# Create a clean UEDGE instance for every test
pytest --isolate --tb=native pytests/${{ matrix.tests }}
build_wheels:
name: Build wheels on ${{ matrix.os }} for Python ${{ matrix.pyver }}
# if: github.event_name == 'pull_request'
needs: run-all-tests
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13, macos-14]
pyver: [cp38, cp39, cp310, cp311, cp312]

steps:
- name: Checks out repo
uses: actions/checkout@v4

- name: Symlink gfortran for x86 macOS
if: matrix.os == 'macos-13'
run: |
# make sure gfortran is available
ln -s /usr/local/bin/gfortran-13 /usr/local/bin/gfortran
gfortran --version
- name: Symlink gfortran for ARM macOS
if: matrix.os == 'macos-14'
run: |
# make sure gfortran is available
ln -s /opt/homebrew/bin/gfortran-13 /opt/homebrew/bin/gfortran
gfortran --version
- name: Build wheels
if: ${{ !(matrix.os == 'macos-14' && matrix.pyver == 'cp37') }}
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_ARCHS_LINUX: auto
CIBW_SKIP: "pp37-* cp37-* *-win32 *-manylinux_i686"
CIBW_BEFORE_BUILD: pip install numpy 'forthon>=0.10.7' 'build<0.10.0'

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ matrix.pyver }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl

build_wheels_pypy:
name: Build PyPy wheels on ${{ matrix.os }}
# if: github.event_name == 'pull_request'
needs: run-all-tests
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13, macos-14]

steps:
- name: Checks out repo
uses: actions/checkout@v4

- name: Symlink gfortran for x86 macOS
if: matrix.os == 'macos-13'
run: |
# make sure gfortran is available
ln -s /usr/local/bin/gfortran-13 /usr/local/bin/gfortran
gfortran --version
- name: Symlink gfortran for ARM macOS
if: matrix.os == 'macos-14'
run: |
# make sure gfortran is available
ln -s /opt/homebrew/bin/gfortran-13 /opt/homebrew/bin/gfortran
gfortran --version
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: pp*
CIBW_SKIP: "pp37-* cp37-* *-win32 *-manylinux_i686"
CIBW_BEFORE_BUILD: pip install numpy 'forthon>=0.10.7' 'build<0.10.0'

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-wheels-pyp-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl


build_wheels_cross:
name: Build Linux cross-wheels
if: false
# needs: run-all-tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
fail-fast: false
matrix:
pyver: [cp38, cp39, cp310, cp311, cp312]
arch: [aarch64, ppc64le]

steps:
- name: Checks out repo
uses: actions/checkout@v4

- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v2

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_ARCHS: ${{matrix.arch}}
CIBW_SKIP: "pp37-* cp37-* *-win32 *-manylinux_i686"
CIBW_BEFORE_BUILD: pip install numpy 'forthon>=0.10.7' 'build<0.10.0'

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-cross-wheels-${{ matrix.arch }}-${{ matrix.pyver }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl

build_wheels_cross_pypy:
name: Build Linux PyPy cross-wheels
if: false
# needs: run-all-tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
fail-fast: false

steps:
- name: Checks out repo
uses: actions/checkout@v4

- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v2

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: pp*
CIBW_SKIP: "pp37-* cp37-* *-win32 *-manylinux_i686"
CIBW_BEFORE_BUILD: pip install numpy 'forthon>=0.10.7' 'build<0.10.0'

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-cross-wheels-pypy-${{ strategy.job-index }}
path: ./wheelhouse/*.whl


gather_wheels:
name: Gather built wheels
needs: [build_wheels, build_wheels_pypy]
# if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Download all Artifacts and merges them
uses: actions/download-artifact@v4
with:
path: wheels
merge-multiple: true

- name: Upload all Artifacts in a single Archive
uses: actions/upload-artifact@v4
with:
name: all_wheels
path: wheels
163 changes: 0 additions & 163 deletions .github/workflows/run_testsuite.yml

This file was deleted.

2 changes: 1 addition & 1 deletion Makefile.Forthon
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ all: mppl2f90 $(BUILDDIR)/compydep $(BUILDDIR)/grdpydep $(BUILDDIR)/flxpydep $(B
rm -f uedgeC.so

mppl2f90:
(export PYTHONPATH=.:./pyscripts; $(MYPYTHON) convertor)
(export PYTHONPATH=.:./buildscripts; $(MYPYTHON) convertor)

$(BUILDDIR)/compydep: com/blasext.F com/brent.F com/comutil.F com/misc.F com/mnbrak.F com/dsum.f com/dummy_py.f com/error.f com/getmsg.f com/ssum.f com/$(PETSC-COM) com/com.v
$(FORTHON) -a $(INSTALLARGS) -a $(FCOMP) $(DEBUG) --interfacefile com/com.v -f com/blasext.F com com/brent.F com/comutil.F com/misc.F com/mnbrak.F com/dsum.f com/dummy_py.f com/error.f com/getmsg.f com/ssum.f $(PETSC-COM)
Expand Down
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit 3050ab3

Please sign in to comment.