Skip to content

Merge pull request #18 from DavidStirling/compat-4-2-ai-morebuilds #99

Merge pull request #18 from DavidStirling/compat-4-2-ai-morebuilds

Merge pull request #18 from DavidStirling/compat-4-2-ai-morebuilds #99

Workflow file for this run

jobs:
build:
name: build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ macos-12, windows-2019 ]
python-version: [ "3.8" ]
fail-fast: false
steps:
- uses: actions/checkout@v4
name: Checkout Repo
- uses: actions/setup-python@v4
name: Install Python
with:
architecture: x64
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: setup.py
- uses: actions/setup-java@v3
name: Install Java
with:
distribution: "temurin"
java-version: "11" # The JDK version to make available on the path.
java-package: jdk
architecture: x64
- name: Install build-time dependencies
run: |
pip install --upgrade wheel pip
pip install setuptools==49
pip install numpy==1.23.1
pip install pyinstaller-hooks-contrib==2024.2
pip install pyinstaller==5.13.2
pip install imageio==2.34.0
pip install cython
pip install lxml
- env:
LDFLAGS: -L/usr/local/opt/openssl/lib
CERTIFICATE_OSX_APPLICATION: ${{ secrets.CERTIFICATE_OSX_APPLICATION }}
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
if: startsWith(matrix.os, 'macos')
name: MacOS dependency install
run: |
brew install graphicsmagick imagemagick
npm install --global create-dmg
brew install mysql@8.0
brew link mysql@8.0
pip install mysqlclient==2.0.3
pip install centrosome==1.2.2 --no-cache-dir --no-build-isolation
git clone https://github.com/glencoesoftware/core.git
cd core
git checkout compat-4-2
pip install --editable . --upgrade --no-use-pep517
cd ..
pip install --editable . --no-use-pep517
- env:
JDK_HOME: ${{ env.JAVA_HOME }}
if: startsWith(matrix.os, 'windows')
name: Windows dependency install
run: |
python -m pip install --upgrade pip setuptools wheel
pip install mysqlclient==2.0.3
pip install centrosome==1.2.2 --no-cache-dir --no-build-isolation
git clone https://github.com/glencoesoftware/core.git
cd core
git checkout compat-4-2
pip install --editable . --upgrade --no-use-pep517
cd ..
pip install --editable . --no-use-pep517
pip install wxpython==4.1.1
- name: Install plugins
run: |
pip install torch==2.2.1
pip install cellpose==3.0.5
pip install csbdeep==0.7.4
pip install stardist==0.8.1
pip install tensorflow==2.12.1
pip install markupsafe==2.0.1
pip install h5py==3.6.0
- name: Display installed packages
run: pip list
- if: startsWith(matrix.os, 'windows')
name: Windows pyinstaller build and package
run: |
pyinstaller distribution/windows/cellprofiler.spec
rm ./dist/CellProfiler/jvm.dll
iscc /dMyAppVersion="4.2.60001-ai" "distribution/windows/cellprofiler.iss"
- if: startsWith(matrix.os, 'macos')
name: MacOS pyinstaller build and package
run: |
pyinstaller -y ./distribution/macos/CellProfiler.spec
- if: startsWith(matrix.os, 'macos')
name: MacOS dmg package
continue-on-error: true
run: |
cd dist
echo Creating DMG
create-dmg 'CellProfiler+AI.app' --dmg-title "CellProfiler+AI.dmg"
- if: startsWith(matrix.os, 'macos')
uses: actions/upload-artifact@v4
name: MacOS dmg upload
with:
name: CellProfiler-macOS-4.2.60001-ai.dmg
path: ./dist/*.dmg
- if: startsWith(matrix.os, 'windows')
uses: actions/upload-artifact@v4
name: Windows artifact upload
with:
name: CellProfiler-Windows-4.2.60001-ai.exe
path: ./distribution/windows/Output/*.exe
upload:
name: upload
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: ./
merge-multiple: true
- name: Create release
uses: softprops/action-gh-release@v2
with:
draft: true
files: |
./*.exe
./*.dmg
name: create-release
on:
push:
branches:
- compat-4-2-ai
tags:
- "v*"
pull_request:
branches:
- compat-4-2-ai