Skip to content

Commit 34110f5

Browse files
Merge pull request #15 from virtualcell/legacy_macos_compatability
Compatability upgrades
2 parents fd07035 + c5d1c2b commit 34110f5

5 files changed

Lines changed: 104 additions & 20 deletions

File tree

.github/workflows/docker.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
1-
# build and publish manylinux_2_28_x86_64 with GraalVM, Maven and Poetry
1+
# build and publish custom manylinux with GraalVM, Maven, and Poetry
22
name: Docker
33
on:
44
workflow_dispatch:
55
inputs:
66
tag:
7-
description: "Tag for the Docker image"
7+
description: "Tag for the Many-Linux Docker image"
88
required: true
9-
default: "latest"
109

1110
jobs:
1211
login:
13-
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
arch:
15+
- os: ubuntu-latest
16+
type: x86_64
17+
- os: ubuntu-24.04-arm
18+
type: aarch64
19+
runs-on: ${{ matrix.arch.os }}
1420
steps:
1521
- name: Check out
1622
uses: actions/checkout@v4
@@ -32,6 +38,8 @@ jobs:
3238
uses: docker/build-push-action@v6
3339
with:
3440
context: docker
35-
file: docker/Dockerfile_manylinux_2_28_x86_64
41+
file: docker/Dockerfile_manylinux_2_34_${{ matrix.arch.type }}
3642
push: true
37-
tags: ghcr.io/virtualcell/manylinux_2_28_x86_64:${{ github.event.inputs.tag }}
43+
tags: |
44+
ghcr.io/virtualcell/manylinux_2_34_${{ matrix.arch.type }}:${{ github.event.inputs.tag }}
45+
ghcr.io/virtualcell/manylinux_2_34_${{ matrix.arch.type }}:latest

.github/workflows/on-release-main.yml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@ jobs:
1010
build:
1111
strategy:
1212
matrix:
13-
os: [macos-15-intel, windows-latest, ubuntu-latest, macos-15]
13+
os:
14+
[
15+
macos-15-intel,
16+
windows-latest,
17+
ubuntu-latest,
18+
ubuntu-24.04-arm,
19+
macos-15,
20+
]
1421
fail-fast: false
1522
runs-on: ${{ matrix.os }}
1623
defaults:
@@ -45,15 +52,30 @@ jobs:
4552

4653
- name: Set MACOSX_DEPLOYMENT_TARGET used by cibuildwheel
4754
if: ${{ startsWith(matrix.os, 'macos') }}
48-
run: echo "MACOSX_DEPLOYMENT_TARGET=15.0" >> $GITHUB_ENV
55+
run: |
56+
echo "MACOSX_DEPLOYMENT_TARGET=13.0" >> $GITHUB_ENV
57+
echo "NATIVE_IMAGE_OPTIONS=--native-compiler-options=-mmacosx-version-min=13.0 -H:NativeLinkerOption=-mmacosx-version-min=13.0" >> $GITHUB_ENV
58+
59+
- name: Set cibuildwheel archs
60+
if: ${{ startsWith(matrix.os, 'ubuntu') }}
61+
run: |
62+
ARCH=$(uname -m)
63+
echo "ARCH_DEF=$ARCH" >> $GITHUB_ENV
4964
5065
- name: Run cibuildwheel
66+
uses: pypa/cibuildwheel@v3.4.0
67+
if: ${{ startsWith(matrix.os, 'ubuntu') }}
68+
env:
69+
CIBW_BUILD: "cp311-*${{ env.ARCH_DEF }} cp312-*${{ env.ARCH_DEF }} cp313-*${{ env.ARCH_DEF }} cp314-*${{ env.ARCH_DEF }}"
70+
# CIBW_BUILD_VERBOSITY_LINUX: 2
71+
72+
- name: Run cibuildwheel
73+
if: ${{ !startsWith(matrix.os, 'ubuntu') }}
5174
run: |
5275
pip install cibuildwheel
5376
cibuildwheel --debug-traceback --output-dir wheelhouse
5477
env:
55-
CIBW_BUILD_VERBOSITY_LINUX: 2
56-
78+
CIBW_BUILD: "cp311-* cp312-* cp313-* cp314-*"
5779
- name: Copy wheels to dist directory
5880
run: |
5981
mkdir -p dist
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
FROM quay.io/pypa/manylinux_2_34_aarch64
2+
3+
ARG GRAALVM_VERSION=23.0.2
4+
ARG GRAALVM_BUILD=7.1
5+
ARG GRAALVM_ARCH=aarch64
6+
ARG MAVEN_VERSION=3.9.15
7+
8+
# install graalvm community edition
9+
RUN cd /opt && \
10+
curl -L -o graalvm.tar.gz https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${GRAALVM_VERSION}/graalvm-community-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz && \
11+
tar -xzf graalvm.tar.gz
12+
ENV GRAALVM_HOME=/opt/graalvm-community-openjdk-${GRAALVM_VERSION}+${GRAALVM_BUILD}
13+
ENV JAVA_HOME=${GRAALVM_HOME}
14+
ENV PATH=${GRAALVM_HOME}/bin:$PATH
15+
16+
# install Poetry
17+
RUN dnf install python3.13 -y
18+
RUN ln -s /usr/local/bin/python3.13 /usr/local/bin/python3
19+
RUN (curl -sSL https://install.python-poetry.org | python3 -) || ( echo "" && echo "" && echo "" && echo 'LogContents:' && cat /poetry-installer-error-*.log && exit 1)
20+
ENV PATH=~/.local/bin:$PATH
21+
22+
# Install Maven
23+
24+
RUN cd /opt && curl -L -o apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz && ls && tar -xzvf apache-maven.tar.gz
25+
ENV MAVEN_HOME=/opt/apache-maven-${MAVEN_VERSION}
26+
ENV PATH=${MAVEN_HOME}/bin:$PATH
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
FROM quay.io/pypa/manylinux_2_34_x86_64
2+
3+
ARG GRAALVM_VERSION=23.0.2
4+
ARG GRAALVM_BUILD=7.1
5+
ARG GRAALVM_ARCH=x64
6+
ARG MAVEN_VERSION=3.9.15
7+
8+
# install graalvm community edition
9+
RUN cd /opt && \
10+
curl -L -o graalvm.tar.gz https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${GRAALVM_VERSION}/graalvm-community-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz && \
11+
tar -xzf graalvm.tar.gz
12+
ENV GRAALVM_HOME=/opt/graalvm-community-openjdk-${GRAALVM_VERSION}+${GRAALVM_BUILD}
13+
ENV JAVA_HOME=${GRAALVM_HOME}
14+
ENV PATH=${GRAALVM_HOME}/bin:$PATH
15+
16+
# install Poetry
17+
RUN dnf install python3.13 -y
18+
RUN ln -s /usr/local/bin/python3.13 /usr/local/bin/python3
19+
RUN (curl -sSL https://install.python-poetry.org | python3 -) || ( echo "" && echo "" && echo "" && echo 'LogContents:' && cat /poetry-installer-error-*.log && exit 1)
20+
ENV PATH=~/.local/bin:$PATH
21+
22+
# Install Maven
23+
24+
RUN cd /opt && curl -L -o apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz && ls && tar -xzvf apache-maven.tar.gz
25+
ENV MAVEN_HOME=/opt/apache-maven-${MAVEN_VERSION}
26+
ENV PATH=${MAVEN_HOME}/bin:$PATH

pyproject.toml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
44

55
[tool.poetry]
66
name = "libvcell"
7-
version = "0.0.15"
7+
version = "0.0.15.2"
88
description = "This is a python package which wraps a subset of VCell Java code as a native python package."
99
authors = ["Jim Schaff <schaff@uchc.edu>", "Ezequiel Valencia <evalencia@uchc.edu>"]
1010
repository = "https://github.com/virtualcell/libvcell"
@@ -40,15 +40,17 @@ mkdocstrings = {extras = ["python"], version = "^0.27.0"}
4040

4141
[tool.cibuildwheel]
4242
build-frontend = "pip"
43-
build = "cp311-* cp312-* cp313-*"
44-
manylinux-x86_64-image = "ghcr.io/virtualcell/manylinux_2_28_x86_64:0.0.1"
45-
skip = "cp311-musllinux_x86_64 cp312-musllinux_x86_64 cp313-musllinux_x86_64"
46-
47-
[tool.cibuildwheel.linux]
48-
archs = ["x86_64"]
49-
50-
[tool.cibuildwheel.windows]
51-
archs = ["AMD64"]
43+
manylinux-x86_64-image = "ghcr.io/virtualcell/manylinux_2_34_x86_64:latest"
44+
manylinux-pypy_x86_64-image = "ghcr.io/virtualcell/manylinux_2_34_x86_64:latest"
45+
manylinux-aarch64-image = "ghcr.io/virtualcell/manylinux_2_34_aarch64:latest"
46+
manylinux-pypy_aarch64-image = "ghcr.io/virtualcell/manylinux_2_34_aarch64:latest"
47+
skip = "*-musllinux* *i686 *ppc64le *s390x *armv7l *riscv64"
48+
49+
#[tool.cibuildwheel.linux]
50+
#archs = ["x86_64"]
51+
#
52+
#[tool.cibuildwheel.windows]
53+
#archs = ["AMD64"]
5254

5355
[tool.setuptools.package-data]
5456
libvcell = ["lib/*"]

0 commit comments

Comments
 (0)