Mac OSX builds #282
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 is a basic workflow to help you get started with Actions | |
name: Mac OSX builds | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [master] | |
paths-ignore: | |
- '**/README.md' | |
# Stop checking osx build on pull request, one has to check is manually | |
pull_request: | |
branches-ignore: | |
- master | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "build" | |
osx_build: | |
# The type of runner that the job will run on, macos-13 is x86_64 | |
runs-on: ${{ matrix.distro }} | |
if: ${{ !contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') }} | |
strategy: | |
fail-fast: true | |
matrix: | |
distro: | |
- 'macos-13' | |
- 'macos-14' | |
include: | |
- distro: 'macos-13' | |
pre: 'x86_64' | |
- distro: 'macos-14' | |
pre: 'arm64' | |
env: | |
GEODA_VER: '1.22.0' | |
GEODA_ARCH: ${{ matrix.pre }} | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
- name: Install application certificate | |
uses: apple-actions/import-codesign-certs@v2 | |
with: | |
keychain: ${{ github.run_id }} | |
keychain-password: ${{ github.run_id }} | |
p12-file-base64: ${{ secrets.MACOS_CERTIFICATE }} | |
p12-password: ${{ secrets.MACOS_CERTIFICATE_PWD }} | |
- name: Install GDAL using Brew x86_64 | |
if: ${{ matrix.pre == 'x86_64' }} | |
run: | | |
rm /usr/local/bin/2to3 || true | |
rm /usr/local/bin/idle3 || true | |
rm /usr/local/bin/pydoc3 || true | |
rm /usr/local/bin/python3 || true | |
rm /usr/local/bin/python3-config || true | |
brew install --force --overwrite --quiet gdal || true | |
- name: Install GDAL using Brew Arm64 | |
if: ${{ matrix.pre == 'arm64' }} | |
run: | | |
arch | |
brew install gdal | |
sudo ln -s /opt/homebrew/opt/gdal /usr/local/opt/gdal | |
- uses: actions/cache@v3 | |
id: cache | |
with: | |
path: | | |
BuildTools/macosx/libraries | |
BuildTools/macosx/temp | |
key: ${{ runner.os }}-deps-cache-${{ hashFiles('BuildTools/macosx/install.sh') }} | |
- if: steps.cache.outputs.cache-hit != 'true' | |
name: Build Dependencies | |
run: | | |
cd BuildTools/macosx | |
export GEODA_HOME=$PWD | |
export GEODA_ARCH=${{ env.GEODA_ARCH }} | |
./install.sh | |
- name: Build GeoDa | |
run: | | |
mkdir -p o | |
cd BuildTools/macosx | |
export GEODA_HOME=$PWD | |
export GEODA_ARCH=${{ env.GEODA_ARCH }} | |
cp ../../GeoDamake.macosx.opt ../../GeoDamake.opt | |
echo "find identity" | |
security find-identity -v | |
VER_MAJOR=$(grep version_major $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g') | |
VER_MINOR=$(grep version_minor $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g') | |
VER_BUILD=$(grep version_build $GEODA_HOME/../../version.h | sed -e 's/^[[:space:]][[:alpha:]|[:space:]|_|=]*//g' | sed -e 's/;//g') | |
GEODA_VERSION=$VER_MAJOR.$VER_MINOR.$VER_BUILD | |
echo $GEODA_VERSION | |
make -j$(sysctl -n hw.ncpu) | |
make app | |
cd create-dmg | |
./geoda.sh $GEODA_VERSION | |
codesign --timestamp -s "Developer ID Application: Geodapress LLC (26M5NG43GP)" -i edu.uchicago.spatial GeoDa$GEODA_VERSION-Installer.dmg | |
# Upload artifact | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: GeoDa-${{ env.GEODA_VER }}-MacOS | |
path: ${{ github.workspace }}/BuildTools/macosx/create-dmg/GeoDa${{ env.GEODA_VER }}-${{ env.GEODA_ARCH }}-Installer.dmg |