-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #45 from ukaea/release/2.7.6
Release/2.7.6
- Loading branch information
Showing
37 changed files
with
1,061 additions
and
323 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
CMakeLists.txt export-subst |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,166 @@ | ||
name: test building and upload wheels to testpypi | ||
|
||
on: | ||
push: | ||
branches: | ||
- release/* | ||
- main | ||
|
||
jobs: | ||
build_wheels: | ||
# name: build wheels on ${{matrix.os}} ${{matrix.arch}} | ||
name: build wheels on ${{matrix.build-platform[0]}} ${{matrix.build-platform[1]}} | ||
# runs-on: ${{matrix.os}} | ||
runs-on: ${{matrix.build-platform[0]}} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
build-platform: | ||
# skip longer-running builds | ||
# - [ubuntu-latest, x86_64, manylinux2014_x86_64] | ||
- [ubuntu-latest, x86_64, manylinux_2_28_x86_64] | ||
# - [ubuntu-latest,aarch64,manylinux_2_28_aarch64] | ||
- [macos-13, x86_64, macosx_x86_64] | ||
- [macos-14, arm64, macosx_arm64] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
# need git tags available for setuptools_scm to grab tags? will lead to slower checkout | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up QEMU | ||
if: runner.os == 'Linux' | ||
uses: docker/setup-qemu-action@v3 | ||
with: | ||
platforms: all | ||
|
||
- name: Build manylinux2014 wheels | ||
if: startswith(matrix.build-platform[2], 'manylinux2014') | ||
uses: pypa/[email protected] | ||
with: | ||
package-dir: ./source/wrappers/python | ||
config-file: ./source/wrappers/python/pyproject.toml | ||
env: | ||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 | ||
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014 | ||
CIBW_ARCHS: ${{matrix.build-platform[1]}} | ||
CIBW_BUILD: cp*-manylinux* | ||
CIBW_SKIP: cp*-musllinux* *-musllinux* | ||
CIBW_BEFORE_ALL: > | ||
yum update -y && | ||
yum install -y wget openssl-devel libxml2-devel libtirpc-devel && | ||
cd /tmp && | ||
wget https://github.com/fmtlib/fmt/archive/refs/tags/10.0.0.tar.gz && | ||
tar xzf 10.0.0.tar.gz && | ||
cd fmt-10.0.0 && | ||
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON && | ||
cmake --build build -j --config Release --target install && | ||
cd /tmp && | ||
wget https://github.com/gabime/spdlog/archive/refs/tags/v1.11.0.tar.gz && | ||
tar xzf v1.11.0.tar.gz && | ||
cd spdlog-1.11.0 && | ||
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON && | ||
cmake --build build -j --config Release --target install && | ||
cd /tmp && | ||
wget https://github.com/capnproto/capnproto/archive/refs/tags/v0.10.4.tar.gz && | ||
tar xzf v0.10.4.tar.gz && | ||
cd capnproto-0.10.4 && | ||
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON && | ||
cmake --build build && | ||
cmake --install build && | ||
cd /tmp && | ||
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz && | ||
tar xzf boost_1_80_0.tar.gz && | ||
cd boost_1_80_0 && | ||
./bootstrap.sh --prefix=/usr/local && | ||
./b2 --without-python --prefix=/usr/local install && | ||
cd /project && | ||
cmake -B build -DNO_JAVA_WRAPPER=ON -DBUILD_SHARED_LIBS=ON -DSSLAUTHENTICATION=ON -DENABLE_CAPNP=ON -DCLIENT_ONLY=ON && | ||
cmake --build build -j --config Release --target install && | ||
cp -r /usr/local/python_installer/* /project/source/wrappers/python/ | ||
- name: Build manylinux_2_28 wheels | ||
if: startswith(matrix.build-platform[2], 'manylinux_2_28') | ||
uses: pypa/[email protected] | ||
with: | ||
package-dir: ./source/wrappers/python | ||
config-file: ./source/wrappers/python/pyproject.toml | ||
env: | ||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 | ||
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28 | ||
CIBW_ARCHS: ${{matrix.build-platform[1]}} | ||
CIBW_BUILD: cp*-manylinux* | ||
CIBW_SKIP: cp*-musllinux* *-musllinux* | ||
CIBW_BEFORE_ALL: > | ||
dnf update -y && | ||
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && | ||
dnf install -y boost-devel openssl-devel libxml2-devel libtirpc-devel | ||
fmt fmt-devel spdlog spdlog-devel capnproto capnproto-devel && | ||
cd /project && | ||
cmake -B build | ||
-DBUILD_SHARED_LIBS=ON | ||
-DCMAKE_BUILD_TYPE=Release | ||
-DSSLAUTHENTICATION=ON | ||
-DNO_JAVA_WRAPPER=ON | ||
-DENABLE_CAPNP=ON -DCLIENT_ONLY=ON && | ||
cmake --build build -j --config Release --target install && | ||
cp -r /usr/local/python_installer/* /project/source/wrappers/python/ | ||
- name: build uda on macos | ||
if: runner.os == 'macOS' | ||
run: > | ||
brew update-reset && brew install | ||
git | ||
boost | ||
openssl | ||
cmake | ||
libxml2 | ||
spdlog | ||
capnp && | ||
cd ${{github.workspace}} && | ||
cmake -B build | ||
-DBUILD_SHARED_LIBS=ON | ||
-DCMAKE_BUILD_TYPE=Release | ||
-DSSLAUTHENTICATION=ON | ||
-DENABLE_CAPNP=ON | ||
-DNO_JAVA_WRAPPER=ON | ||
-DCMAKE_INSTALL_PREFIX=$PWD/install | ||
-DCLIENT_ONLY=ON && | ||
cmake --build build -j --config Release --target install && | ||
cp -r $PWD/install/python_installer/* ${{github.workspace}}/source/wrappers/python/ | ||
- name: Build macos wheels | ||
if: runner.os == 'macOS' | ||
uses: pypa/[email protected] | ||
with: | ||
package-dir: ./source/wrappers/python | ||
config-file: ./source/wrappers/python/pyproject.toml | ||
env: | ||
CIBW_ARCHS: ${{matrix.build-platform[1]}} | ||
CIBW_PLATFORM: macos | ||
CIBW_BUILD: cp*-${{matrix.build-platform[2]}} | ||
|
||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} | ||
path: ./wheelhouse/*.whl | ||
|
||
upload_pypi: | ||
needs: build_wheels | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: testpypi | ||
permissions: | ||
id-token: write | ||
steps: | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
# unpacks all CIBW artifacts into dist/ | ||
pattern: cibw-* | ||
path: dist | ||
merge-multiple: true | ||
|
||
- uses: pypa/gh-action-pypi-publish@release/v1 | ||
with: | ||
repository-url: https://test.pypi.org/legacy/ |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
name: build and upload wheels | ||
|
||
on: | ||
push: | ||
tags: | ||
- '*' | ||
|
||
jobs: | ||
build_wheels: | ||
name: build wheels on ${{matrix.build-platform[0]}} ${{matrix.build-platform[1]}} | ||
runs-on: ${{matrix.build-platform[0]}} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
build-platform: | ||
- [ubuntu-latest, x86_64, manylinux2014_x86_64] | ||
- [ubuntu-latest, x86_64, manylinux_2_28_x86_64] | ||
- [ubuntu-latest,aarch64,manylinux_2_28_aarch64] | ||
- [macos-13, x86_64, macosx_x86_64] | ||
- [macos-14, arm64, macosx_arm64] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
# need git tags available for setuptools_scm to grab tags? will elad to slower checkout | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up QEMU | ||
if: runner.os == 'Linux' | ||
uses: docker/setup-qemu-action@v3 | ||
with: | ||
platforms: all | ||
|
||
- name: Build manylinux2014 wheels | ||
if: startswith(matrix.build-platform[2], 'manylinux2014') | ||
uses: pypa/[email protected] | ||
with: | ||
package-dir: ./source/wrappers/python | ||
config-file: ./source/wrappers/python/pyproject.toml | ||
env: | ||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 | ||
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014 | ||
CIBW_ARCHS: ${{matrix.build-platform[1]}} | ||
CIBW_BUILD: cp*-manylinux* | ||
CIBW_SKIP: cp*-musllinux* *-musllinux* | ||
CIBW_BEFORE_ALL: > | ||
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && | ||
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && | ||
yum update -y && | ||
yum install -y wget openssl-devel libxml2-devel libtirpc-devel && | ||
cd /tmp && | ||
wget https://github.com/fmtlib/fmt/archive/refs/tags/10.0.0.tar.gz && | ||
tar xzf 10.0.0.tar.gz && | ||
cd fmt-10.0.0 && | ||
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON && | ||
cmake --build build -j --config Release --target install && | ||
cd /tmp && | ||
wget https://github.com/gabime/spdlog/archive/refs/tags/v1.11.0.tar.gz && | ||
tar xzf v1.11.0.tar.gz && | ||
cd spdlog-1.11.0 && | ||
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON && | ||
cmake --build build -j --config Release --target install && | ||
cd /tmp && | ||
wget https://github.com/capnproto/capnproto/archive/refs/tags/v0.10.4.tar.gz && | ||
tar xzf v0.10.4.tar.gz && | ||
cd capnproto-0.10.4 && | ||
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON && | ||
cmake --build build && | ||
cmake --install build && | ||
cd /tmp && | ||
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz && | ||
tar xzf boost_1_80_0.tar.gz && | ||
cd boost_1_80_0 && | ||
./bootstrap.sh --prefix=/usr/local && | ||
./b2 --without-python --prefix=/usr/local install && | ||
cd /project && | ||
cmake -B build -DNO_JAVA_WRAPPER=ON -DBUILD_SHARED_LIBS=ON -DSSLAUTHENTICATION=ON -DENABLE_CAPNP=ON -DCLIENT_ONLY=ON && | ||
cmake --build build -j --config Release --target install && | ||
cp -r /usr/local/python_installer/* /project/source/wrappers/python/ | ||
- name: Build manylinux_2_28 wheels | ||
if: startswith(matrix.build-platform[2], 'manylinux_2_28') | ||
uses: pypa/[email protected] | ||
with: | ||
package-dir: ./source/wrappers/python | ||
config-file: ./source/wrappers/python/pyproject.toml | ||
env: | ||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 | ||
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28 | ||
CIBW_ARCHS: ${{matrix.build-platform[1]}} | ||
CIBW_BUILD: cp*-manylinux* | ||
CIBW_SKIP: cp*-musllinux* *-musllinux* | ||
CIBW_BEFORE_ALL: > | ||
dnf update -y && | ||
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && | ||
dnf install -y boost-devel openssl-devel libxml2-devel libtirpc-devel | ||
fmt fmt-devel spdlog spdlog-devel capnproto capnproto-devel && | ||
cd /project && | ||
cmake -B build | ||
-DBUILD_SHARED_LIBS=ON | ||
-DCMAKE_BUILD_TYPE=Release | ||
-DSSLAUTHENTICATION=ON | ||
-DNO_JAVA_WRAPPER=ON | ||
-DENABLE_CAPNP=ON -DCLIENT_ONLY=ON && | ||
cmake --build build -j --config Release --target install && | ||
cp -r /usr/local/python_installer/* /project/source/wrappers/python/ | ||
- name: build uda on macos | ||
if: runner.os == 'macOS' | ||
run: > | ||
brew update-reset && brew install | ||
git | ||
boost | ||
openssl | ||
cmake | ||
libxml2 | ||
spdlog | ||
capnp && | ||
cd ${{github.workspace}} && | ||
cmake -B build | ||
-DBUILD_SHARED_LIBS=ON | ||
-DCMAKE_BUILD_TYPE=Release | ||
-DSSLAUTHENTICATION=ON | ||
-DENABLE_CAPNP=ON | ||
-DNO_JAVA_WRAPPER=ON | ||
-DCMAKE_INSTALL_PREFIX=$PWD/install | ||
-DCLIENT_ONLY=ON && | ||
cmake --build build -j --config Release --target install && | ||
cp -r $PWD/install/python_installer/* ${{github.workspace}}/source/wrappers/python/ | ||
- name: Build macos wheels | ||
if: runner.os == 'macOS' | ||
uses: pypa/[email protected] | ||
with: | ||
package-dir: ./source/wrappers/python | ||
config-file: ./source/wrappers/python/pyproject.toml | ||
env: | ||
CIBW_ARCHS: ${{matrix.build-platform[1]}} | ||
CIBW_PLATFORM: macos | ||
CIBW_BUILD: cp*-${{matrix.build-platform[2]}} | ||
|
||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} | ||
path: ./wheelhouse/*.whl | ||
|
||
upload_pypi: | ||
needs: build_wheels | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: pypi | ||
url: https://pypi.org/p/uda | ||
permissions: | ||
id-token: write | ||
steps: | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
# unpacks all CIBW artifacts into dist/ | ||
pattern: cibw-* | ||
path: dist | ||
merge-multiple: true | ||
|
||
- uses: pypa/gh-action-pypi-publish@release/v1 |
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
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
Oops, something went wrong.