Skip to content

bundlers/mac: Ensure libc++* are present in dmg bundles #723

bundlers/mac: Ensure libc++* are present in dmg bundles

bundlers/mac: Ensure libc++* are present in dmg bundles #723

name: macos-macports-build
on: [push, pull_request]
jobs:
macos:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
env:
CLANG_VERSION: 17
PYTHON_VERSION: "3.12"
strategy:
fail-fast: false
matrix:
config:
- name: Talipot build on macOS 11
os: macos-11
- name: Talipot build on macOS 12
os: macos-12
- name: Talipot build on macOS 13
os: macos-13
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Checkout Talipot code
uses: actions/checkout@v3
- name: Compute environment variable
run: |
PYTHON_VERSION_NO_DOT=$(echo $PYTHON_VERSION | sed 's/\.//')
echo "PYTHON_VERSION_NO_DOT=$PYTHON_VERSION_NO_DOT" >> $GITHUB_ENV
- name: Prepare ccache timestamp
id: get-current-date
run: |
echo "date=$(date -u "+%Y-%m-%d-%H-%m-%S")" >> $GITHUB_OUTPUT
shell: bash
- name: Cache files
uses: actions/cache@v3
with:
path: |
/Users/runner/Library/Caches/ccache
/Users/runner/.macports-ci-ccache
key: ${{ matrix.config.os }}-ccache-${{ steps.get-current-date.outputs.date }}
restore-keys: |
${{ matrix.config.os }}-ccache-
- name: Install MacPorts
run: |
curl -LO https://raw.githubusercontent.com/GiovanniBussi/macports-ci/master/macports-ci
source ./macports-ci install
source ./macports-ci ccache
- name: Install Talipot build dependencies
run: sudo port -N install
cmake
clang-${{ env.CLANG_VERSION }}
ccache
zlib
qhull
yajl
zstd
graphviz
libgit2
python${{ env.PYTHON_VERSION_NO_DOT }}
py${{ env.PYTHON_VERSION_NO_DOT }}-sip
pkgconfig
cppunit
freetype
fontconfig
fribidi
glew
qt5-qtbase
qt5-qttools
qt5-qtwebkit
quazip
py${{ env.PYTHON_VERSION_NO_DOT }}-pip
- name: Install Sphinx
run: pip-${{ env.PYTHON_VERSION }} install sphinx
- name: Save MacPorts ccache
run: source ./macports-ci ccache --save
- name: Create build directory
run: mkdir build
- name: Configure Talipot core build with CMake
working-directory: ./build
run: cmake .. -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=$PWD/install
-DCMAKE_C_COMPILER=/opt/local/bin/clang-mp-${{ env.CLANG_VERSION }}
-DCMAKE_CXX_COMPILER=/opt/local/bin/clang++-mp-${{ env.CLANG_VERSION }}
-DPython3_EXECUTABLE=/opt/local/bin/python${{ env.PYTHON_VERSION }}
-DTALIPOT_BUILD_TESTS=ON
-DTALIPOT_USE_CCACHE=ON
-DTALIPOT_BUILD_DOC=OFF
-DTALIPOT_BUILD_CORE_ONLY=ON
- name: Talipot core build
working-directory: ./build
run: make -j4
- name: Install Talipot core build
working-directory: ./build
run: make -j4 install
- name: Run Talipot core build unit tests
working-directory: ./build
run: make tests
- name: Configure Talipot complete build with CMake
working-directory: ./build
run: cmake .
-DTALIPOT_BUILD_CORE_ONLY=OFF
-DTALIPOT_BUILD_DOC=ON
- name: Talipot complete build
working-directory: ./build
run: make -j4
- name: Install Talipot complete build
working-directory: ./build
run: make -j4 install
- name: Run Talipot complete build unit tests
working-directory: ./build
run: make tests
- name: Check Talipot application can be executed
working-directory: ./build/install/bin
run: ./talipot --check-application-starts --debug-plugins-load
- name: Generate Talipot dmg bundle
if: matrix.config.os == 'macos-11'
working-directory: ./build
run: make bundle
- name: Upload Talipot bundle to GitHub Actions artifacts
if: matrix.config.os == 'macos-11'
uses: actions/upload-artifact@v3
with:
name: Talipot macOS bundles
path: ./build/Talipot*.dmg
- name: Upload Talipot bundle to dev-latest prerelease
if: |
github.ref == 'refs/tags/dev-latest' &&
matrix.config.os == 'macos-11'
uses: ncipollo/release-action@v1
with:
allowUpdates: true
name: Talipot development build
prerelease: true
artifacts: ./build/Talipot*.dmg
token: ${{ secrets.GITHUB_TOKEN }}