Skip to content

Commit

Permalink
Merge pull request #16 from rhennigan/bugfix/add-missing-mac-arm64-jo…
Browse files Browse the repository at this point in the history
…bs-to-release-wf

Bugfix: Add missing MacOSX-ARM64 jobs to release workflow
  • Loading branch information
rhennigan authored Jun 26, 2024
2 parents 6f00463 + 1c6a07d commit b75ed66
Showing 1 changed file with 128 additions and 3 deletions.
131 changes: 128 additions & 3 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,68 @@ jobs:
retention-days: 1
if-no-files-found: error

Compile-MacOSX-ARM64:
name: Compile-MacOSX-ARM64
runs-on: macos-14
env:
WOLFRAM_LIBRARY_BUILD_OUTPUT: LibraryResources/
WOLFRAM_LIBRARY_BUILD_SCRIPT: ./Scripts/Compile.wls
WOLFRAM_SYSTEM_ID: MacOSX-ARM64
WOLFRAMENGINE_CACHE_KEY: WolframEngine-A-13-1-0-0
WOLFRAMENGINE_DOWNLOAD_PATH: /tmp/downloads
WOLFRAMENGINE_INSTALL_DMG_DOWNLOAD_URL: https://files.wolframcdn.com/packages/Homebrew/13.1.0.0/WolframEngine_13.1.0_MAC.dmg
WOLFRAMENGINE_INSTALLATION_DIRECTORY: "/Applications/Wolfram Engine.app"
steps:
- name: Checkout
id: checkout-code-step
uses: actions/checkout@v3
- name: RestoreCachedWolframEngine
id: cache-restore-step
uses: actions/cache@v3
with:
path: ${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}
key: wolframengine-${{ env.WOLFRAM_SYSTEM_ID }}-${{ env.WOLFRAMENGINE_CACHE_KEY }}
- name: InstallWolframEngine
if: steps.cache-restore-step.outputs.cache-hit != 'true'
run: |
echo 'Installing Wolfram Engine...'
DOWNLOAD_FILE="${{ env.WOLFRAMENGINE_DOWNLOAD_PATH }}/WolframEngine.dmg"
mkdir -p "${{ env.WOLFRAMENGINE_DOWNLOAD_PATH }}"
curl ${{ env.WOLFRAMENGINE_INSTALL_DMG_DOWNLOAD_URL }} -o $DOWNLOAD_FILE -s
hdiutil attach $DOWNLOAD_FILE -nobrowse
DMG_MOUNT_POINT="$(hdiutil info | grep "Wolfram Engine" | awk '{ print $1 }')"
DMG_VOLUME="$(hdiutil info | grep "Wolfram Engine" | awk '{$1=$2=""; print $0}' | xargs)"
APP_PATH="$DMG_VOLUME/$(ls "$DMG_VOLUME" | grep .app)"
cp -R "$APP_PATH" "${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}"
hdiutil detach $DMG_MOUNT_POINT
echo 'Installed Wolfram Engine.'
- name: Compile libraries
env:
WOLFRAMENGINE_EXECUTABLES_DIRECTORY: "${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}/Contents/Resources/Wolfram Player.app/Contents/MacOS"
WOLFRAMSCRIPT_KERNELPATH: "${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}/Contents/MacOS/WolframKernel"
run: |
export PATH="${{ env.WOLFRAMENGINE_EXECUTABLES_DIRECTORY }}:$PATH"
if test "${{ env.WLPR_PACLET_SITE }}" != ""; then
echo 'Updating paclet sites...';
wolframscript -code 'PacletInstall["PacletManager"];PacletSiteRegister["${{ env.WLPR_PACLET_SITE }}"];PacletSiteUpdate[PacletSites[]];Quit[]' > /dev/null;
fi
wolframscript -runfirst 'CompoundExpression[Unprotect[\$EvaluationEnvironment],Set[\$EvaluationEnvironment,SymbolName[Script]],Protect[\$EvaluationEnvironment]]' -script ${{ env.WOLFRAM_LIBRARY_BUILD_SCRIPT }}
- name: Archive compiled libraries
uses: actions/upload-artifact@v3
with:
name: ${{ env.WOLFRAM_SYSTEM_ID }}
path: ${{ env.WOLFRAM_LIBRARY_BUILD_OUTPUT }}/${{ env.WOLFRAM_SYSTEM_ID }}
retention-days: 1

- name: Upload stack data
if: always() && env.PACLET_STACK_HISTORY
uses: actions/upload-artifact@v3
with:
name: check-paclet-stacks
path: ${{ env.PACLET_STACK_HISTORY }}
retention-days: 1
if-no-files-found: error

Compile-Linux-x86-64:
name: Compile-Linux-x86-64
runs-on: ubuntu-latest
Expand Down Expand Up @@ -195,7 +257,7 @@ jobs:

BuildPaclet:
name: BuildPaclet
needs: [Compile-Windows-x86-64, Compile-MacOSX-x86-64, Compile-Linux-x86-64]
needs: [Compile-Windows-x86-64, Compile-MacOSX-x86-64, Compile-MacOSX-ARM64, Compile-Linux-x86-64]
runs-on: ubuntu-latest

container:
Expand Down Expand Up @@ -370,6 +432,69 @@ jobs:
retention-days: 1
if-no-files-found: error

Test-MacOSX-ARM64:
name: Test-MacOSX-ARM64
needs: [BuildPaclet]
runs-on: macos-14
env:
WOLFRAM_SYSTEM_ID: MacOSX-ARM64
WOLFRAMENGINE_CACHE_KEY: WolframEngine-A-13-1-0-0
WOLFRAMENGINE_DOWNLOAD_PATH: /tmp/downloads
WOLFRAMENGINE_INSTALL_DMG_DOWNLOAD_URL: https://files.wolframcdn.com/packages/Homebrew/13.1.0.0/WolframEngine_13.1.0_MAC.dmg
WOLFRAMENGINE_INSTALLATION_DIRECTORY: "/Applications/Wolfram Engine.app"
steps:
- name: Checkout
id: checkout-code-step
uses: actions/checkout@v3
- name: RestoreCachedWolframEngine
id: cache-restore-step
uses: actions/cache@v3
with:
path: ${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}
key: wolframengine-${{ env.WOLFRAM_SYSTEM_ID }}-${{ env.WOLFRAMENGINE_CACHE_KEY }}
- name: InstallWolframEngine
if: steps.cache-restore-step.outputs.cache-hit != 'true'
run: |
echo 'Installing Wolfram Engine...'
DOWNLOAD_FILE="${{ env.WOLFRAMENGINE_DOWNLOAD_PATH }}/WolframEngine.dmg"
mkdir -p "${{ env.WOLFRAMENGINE_DOWNLOAD_PATH }}"
curl ${{ env.WOLFRAMENGINE_INSTALL_DMG_DOWNLOAD_URL }} -o $DOWNLOAD_FILE -s
hdiutil attach $DOWNLOAD_FILE -nobrowse
DMG_MOUNT_POINT="$(hdiutil info | grep "Wolfram Engine" | awk '{ print $1 }')"
DMG_VOLUME="$(hdiutil info | grep "Wolfram Engine" | awk '{$1=$2=""; print $0}' | xargs)"
APP_PATH="$DMG_VOLUME/$(ls "$DMG_VOLUME" | grep .app)"
cp -R "$APP_PATH" "${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}"
hdiutil detach $DMG_MOUNT_POINT
echo 'Installed Wolfram Engine.'
- name: Download MX build
id: download-mx-artifacts-step
uses: actions/download-artifact@v3
with:
name: PacletBuildArtifact
path: build

- name: Test paclet
env:
WOLFRAMENGINE_EXECUTABLES_DIRECTORY: "${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}/Contents/Resources/Wolfram Player.app/Contents/MacOS"
WOLFRAMSCRIPT_KERNELPATH: "${{ env.WOLFRAMENGINE_INSTALLATION_DIRECTORY }}/Contents/MacOS/WolframKernel"
run: |
export PATH="${{ env.WOLFRAMENGINE_EXECUTABLES_DIRECTORY }}:$PATH"
if test "${{ env.WLPR_PACLET_SITE }}" != ""; then
echo 'Updating paclet sites...';
wolframscript -code 'PacletInstall["PacletManager"];PacletSiteRegister["${{ env.WLPR_PACLET_SITE }}"];PacletSiteUpdate[PacletSites[]];Quit[]' > /dev/null;
fi
wolframscript -runfirst 'CompoundExpression[Unprotect[\$EvaluationEnvironment],Set[\$EvaluationEnvironment,SymbolName[Script]],Protect[\$EvaluationEnvironment]]' -script Scripts/TestPaclet.wls
- name: Upload stack data
if: always() && env.PACLET_STACK_HISTORY
uses: actions/upload-artifact@v3
with:
name: test-paclet-stacks-${{ env.WOLFRAM_SYSTEM_ID }}
path: ${{ env.PACLET_STACK_HISTORY }}
retention-days: 1
if-no-files-found: error

Test-Linux-x86-64:
name: Test-Linux-x86-64
needs: [BuildPaclet]
Expand Down Expand Up @@ -405,7 +530,7 @@ jobs:

Release:
name: Release
needs: [BuildPaclet, Test-Windows-x86-64, Test-MacOSX-x86-64, Test-Linux-x86-64]
needs: [BuildPaclet, Test-Windows-x86-64, Test-MacOSX-x86-64, Test-MacOSX-ARM64, Test-Linux-x86-64]
runs-on: ubuntu-latest
timeout-minutes: 30

Expand Down Expand Up @@ -458,7 +583,7 @@ jobs:
Submit:
name: Submit
needs: [BuildPaclet, Test-Windows-x86-64, Test-MacOSX-x86-64, Test-Linux-x86-64]
needs: [BuildPaclet, Test-Windows-x86-64, Test-MacOSX-x86-64, Test-MacOSX-ARM64, Test-Linux-x86-64]
runs-on: ubuntu-latest
timeout-minutes: 30

Expand Down

0 comments on commit b75ed66

Please sign in to comment.