Skip to content

Commit

Permalink
[ci] upgrading packaging (ubuntu-24.04, macos-14)
Browse files Browse the repository at this point in the history
  • Loading branch information
julien-tierny committed Sep 17, 2024
1 parent 7d773c0 commit 40fe819
Showing 1 changed file with 78 additions and 20 deletions.
98 changes: 78 additions & 20 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
- 'pack*'

env:
PV_TAG: v5.12.0
PV_TAG: v5.13.0
PV_REPO: topology-tool-kit/ttk-paraview

jobs:
Expand All @@ -24,7 +24,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
steps:
- uses: actions/checkout@v4
name: Checkout TTK source code
Expand Down Expand Up @@ -99,7 +99,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
steps:
- uses: actions/checkout@v4
name: Checkout TTK source code
Expand All @@ -126,6 +126,12 @@ jobs:
# pvpython does not embed the correct PYTHONPATH
echo "PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH" >> $GITHUB_ENV
- name: Set PYTHONPATH for Ubuntu 24.04 pvpython
if: matrix.os == 'ubuntu-24.04'
run: |
# pvpython does not embed the correct PYTHONPATH
echo "PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH" >> $GITHUB_ENV
- name: Run TTK tests
uses: ./.github/actions/test-ttk-unix

Expand All @@ -152,6 +158,11 @@ jobs:
cd ttk-data
# no X server
rm python/geometryApproximation.py
# remove buggy example
# related issue: https://github.com/topology-tool-kit/ttk/issues/1055
rm python/nestedTrackingFromOverlap.py
# remove examples which fill up the memory
rm python/topologicalOptimization_darkSky.py
python3 -u python/run.py
- name: Test ttk-data Python scripts results [NOT ENFORCED]
Expand All @@ -166,7 +177,13 @@ jobs:
# Build macOS #
# ------------#
build-macos:
runs-on: macos-12
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-12, macos-14]
env:
DYLD_LIBRARY_PATH: /usr/local/lib

steps:
- uses: actions/checkout@v4
name: Checkout TTK source code
Expand All @@ -183,17 +200,23 @@ jobs:
brew install --cask xquartz
brew install llvm mesa glew qt@5 ninja
# TTK dependencies
brew install boost eigen graphviz numpy websocketpp
brew install boost eigen graphviz spectra sqlite zlib numpy qhull
- name: Install optional dependencies
uses: ./.github/actions/install-deps-unix

- name: Fetch & install TTK-ParaView
run: |
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
tar xzf ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
if [[ "${{ matrix.os }}" == "macos-12" ]]; then
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
tar xzf ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
fi
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
tar xzf ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
fi
sudo cp -r ttk-paraview/* /usr/local
pvpython -m pip install scikit-learn
pvpython -m pip install --break-system-packages scikit-learn
- name: Set compilers as environment variables
run: |
Expand Down Expand Up @@ -232,15 +255,20 @@ jobs:
- name: Upload compressed binaries
uses: actions/upload-artifact@v4
with:
name: ttk.tar.gz
name: ttk-${{ matrix.os }}.tar.gz
path: build/ttk.tar.gz

# -----------#
# Test macOS #
# -----------#
test-macos:
needs: build-macos
runs-on: macos-12
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-12, macos-14]
env:
DYLD_LIBRARY_PATH: /usr/local/lib
steps:
- uses: actions/checkout@v4
name: Checkout TTK source code
Expand All @@ -257,11 +285,17 @@ jobs:
brew install --cask xquartz
brew install llvm mesa glew qt@5 ninja
# TTK dependencies
brew install boost eigen graphviz numpy websocketpp
brew install boost eigen graphviz spectra sqlite zlib numpy qhull
- name: Fetch TTK-ParaView
run: |
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
if [[ "${{ matrix.os }}" == "macos-12" ]]; then
wget -O ttk-paraview.tar.gz https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
fi
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
wget -O ttk-paraview.tar.gz https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
fi
- name: Fetch TTK .tar.gz artifact
uses: actions/[email protected]
Expand All @@ -270,7 +304,7 @@ jobs:

- name: Install binary archives packages
run: |
tar xzf ttk-paraview-${{ env.PV_TAG}}-macos-12.tar.gz
tar xzf ttk-paraview.tar.gz
sudo cp -r ttk-paraview/* /usr/local
tar xzf ttk.tar.gz
sudo cp -r ttk/* /usr/local
Expand All @@ -297,6 +331,11 @@ jobs:
- name: Run ttk-data Python scripts
run: |
cd ttk-data
# remove buggy example
# related issue: https://github.com/topology-tool-kit/ttk/issues/1055
rm python/nestedTrackingFromOverlap.py
# remove examples which fill up the memory
rm python/topologicalOptimization_darkSky.py
pvpython -u python/run.py
env:
PV_PLUGIN_PATH: /usr/local/bin/plugins/TopologyToolKit
Expand Down Expand Up @@ -325,8 +364,8 @@ jobs:
- name: Install dependencies with conda
shell: bash
run: |
conda install -c conda-forge "qt>=5.12" libboost-devel eigen spectralib zfp \
scikit-learn llvm-openmp graphviz clangxx
conda install -c conda-forge "qt>=5.12" libboost-devel glew eigen spectralib zfp \
sqlite scikit-learn zlib qhull llvm-openmp graphviz clangxx
- name: Remove hosted Python
shell: bash
Expand Down Expand Up @@ -411,8 +450,8 @@ jobs:
- name: Install dependencies with conda
shell: bash
run: |
conda install -c conda-forge "qt>=5.12" libboost-devel eigen spectralib zfp \
scikit-learn openmp graphviz
conda install -c conda-forge "qt>=5.12" libboost-devel glew eigen spectralib zfp \
sqlite scikit-learn qhull zlib llvm-openmp graphviz
- name: Remove hosted Python
shell: bash
Expand Down Expand Up @@ -505,6 +544,9 @@ jobs:
set PYTHONPATH=%PV_DIR%\bin\Lib\site-packages;%TTK_DIR%\bin\Lib\site-packages;%CONDA_ROOT%\Lib;%CONDA_ROOT%\DLLs
set PV_PLUGIN_PATH=%TTK_DIR%\bin\plugins
cd ttk-data
rm python/nestedTrackingFromOverlap.py
# remove examples which fill up the memory
rm python/topologicalOptimization_darkSky.py
pvpython.exe -u python\run.py
- name: Test ttk-data Python scripts results [NOT ENFORCED]
Expand Down Expand Up @@ -570,13 +612,29 @@ jobs:
file: ttk-ubuntu-22.04.deb/ttk.deb
asset_name: ttk-$tag-ubuntu-22.04.deb

- name: Upload macOS binary archives as Release Asset
- name: Upload Ubuntu Noble Numbat .deb as Release Asset
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
file: ttk-ubuntu-24.04.deb/ttk.deb
asset_name: ttk-$tag-ubuntu-24.04.deb

- name: Upload MacOS 12 binary archives as Release Asset
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
file: ttk-macos-12.tar.gz/ttk.tar.gz
asset_name: ttk-$tag-macos-12.tar.gz

- name: Upload MacOS 14 binary archives as Release Asset
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
file: ttk.tar.gz/ttk.tar.gz
asset_name: ttk-$tag.tar.gz
file: ttk-macos-14.tar.gz/ttk.tar.gz
asset_name: ttk-$tag-macos-14-arm64.tar.gz

- name: Upload Windows .exe as Release Asset
uses: svenstaro/upload-release-action@v2
Expand Down

0 comments on commit 40fe819

Please sign in to comment.