name: Build PageEdit on macOS arm64

on:

  workflow_dispatch:
  
  push:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '.retired_appveyor.yml'
    - '**/**.md'
  pull_request:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '.retired_appveyor.yml'
    - '**/**.md'
env:
  HOMEBREW_NO_AUTO_UPDATE: 1
  HOMEBREW_NO_INSTALL_CLEANUP: 1
  MACOSX_DEPLOYMENT_TARGET: 13
  DOWNLOADQT: https://github.com/kevinhendricks/BuildSigilOnMac/releases/download/for_sigil_1.0.0/Qt6102_arm64.tar.xz
  QT: Qt6102

jobs:
  build:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v4

    - name: Cache Custom Qt
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/${{env.QT}}
        key: ${{ runner.os }}-qtdeps-${{hashFiles('**/reset-mac_arm64-caches.txt')}}

    - name: Install dependencies
      shell: bash
      working-directory: ${{runner.workspace}}
      run: |
        pwd
        if [[ ! -d ${{runner.workspace}}/${{env.QT}} ]]; \
        then curl -L -o qt6.tar.xz ${DOWNLOADQT} && tar xzf qt6.tar.xz; fi

        if [[ -d ${{runner.workspace}}/${{env.QT}}/bin ]]; \
        then cd ${{runner.workspace}}/${{env.QT}}/bin && \
        echo [Paths] > qt.conf && echo Prefix=.. >> qt.conf; fi

        export MYQTHOME=${{runner.workspace}}/${{env.QT}}
        echo ${MYQTHOME}/bin >> $GITHUB_PATH
        echo ${MYQTHOME}/libexec >> $GITHUB_PATH
        cd ${{runner.workspace}}


        echo "Qt6_DIR=${{runner.workspace}}/${{env.QT}}/lib/cmake/Qt6" >> $GITHUB_ENV
        echo "Qt6_Dir=${{runner.workspace}}/${{env.QT}}/lib/cmake/Qt6" >> $GITHUB_ENV
        echo "QT_PLUGIN_PATH=${{runner.workspace}}/${{env.QT}}/plugins" >> $GITHUB_ENV

    - name: Test environment
      shell: bash
      run: |
        qmake -v
        mkdir ${{runner.workspace}}/build
        pwd

    - name: Build PageEdit
      working-directory: ${{runner.workspace}}/build
      shell: bash
      run: |
        cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=11 \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
        -DCMAKE_PREFIX_PATH=${{runner.workspace}}/${{env.QT}}/lib/cmake \
        -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/ $GITHUB_WORKSPACE  
        make -j$(getconf _NPROCESSORS_ONLN)   

    - name: Build Installer
      working-directory: ${{runner.workspace}}/build
      shell: bash
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      run: |
        echo 'Deploying App'
        make addframeworks
        bash $GITHUB_WORKSPACE/ci_scripts/rpath_adjust.sh
        cd ./bin
        tar -cJf PageEdit_arm64.tar.xz PageEdit.app


    - uses: actions/upload-artifact@v4
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      with:
        name: pageedit-installer
        path: ${{runner.workspace}}/build/bin/PageEdit_arm64.tar.xz
        retention-days: 5
         
