summaryrefslogtreecommitdiffstats
path: root/.github/workflows/intel_macos_build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/intel_macos_build.yml')
-rw-r--r--.github/workflows/intel_macos_build.yml200
1 files changed, 0 insertions, 200 deletions
diff --git a/.github/workflows/intel_macos_build.yml b/.github/workflows/intel_macos_build.yml
deleted file mode 100644
index fc1def70762..00000000000
--- a/.github/workflows/intel_macos_build.yml
+++ /dev/null
@@ -1,200 +0,0 @@
-name: Intel MacOS Build
-
-env:
- OPENBB_ENABLE_QUICK_EXIT: true
- OPENBB_LOG_COLLECT: false
- OPENBB_USE_ION: false
- OPENBB_USE_PROMPT_TOOLKIT: false
- OPENBB_FILE_OVERWRITE: true
- PIP_DEFAULT_TIMEOUT: 100
- PYTHONNOUSERSITE: 1
-
-on: workflow_dispatch
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-jobs:
- Build:
- name: Intel MacOS Build
- runs-on: [self-hosted, macos, x64]
- steps:
- # Checkout repository main branch. this allows for the commit hashes to line up
- - name: Checkout
- uses: actions/checkout@v3
- - name: Git Log
- run: git log
- # Install create-dmg
- - name: Install create-dmg
- run: brew install create-dmg
- # The following commands to clear previous PATHS and restore to defaults since we have to maintain the instance ourselves
- - name: Clean Previous Path
- run: |
- export PATH=""
- export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
- echo $PATH
- # Set up caching for conda env so that the workflow runs quickly after the first time
- - name: Setup Conda Caching
- uses: actions/cache@v3
- with:
- path: ~/conda_pkgs_dir
- key: conda-macos-3-9-${{ hashFiles('build/conda/conda-3-9-env-full.yaml') }}
- # Set up miniconda using the environment yaml file within the repo
- - name: Setup Miniconda
- uses: conda-incubator/setup-miniconda@v2.2.0
- with:
- miniconda-version: "latest"
- auto-update-conda: true
- channels: conda-forge,defaults
- show-channel-urls: true
- channel-priority: flexible
- environment-file: build/conda/conda-3-9-env-full.yaml
- activate-environment: build_env
- use-only-tar-bz2: true # Needed for caching some reason
- - name: Install requirements
- run: |
- pip list
- python -m pip install -r requirements-full.txt
- - name: Install Specific Papermill
- run: |
- pip list
- pip uninstall papermill -y
- pip install git+https://github.com/nteract/papermill.git@main
- # This is basically the same as build4mac.sh
- - name: Build Bundle
- run: |
- pip list
- python -m PyInstaller build/pyinstaller/terminal.spec --clean
- osascript build/pyinstaller/setup_icons.applescript
- mkdir DMG
- cp -r build/pyinstaller/macOS_package_assets/* DMG/
- mv dist/OpenBBTerminal DMG/OpenBB\ Terminal/.OpenBB
- - name: Creating Keychain
- env:
- MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
- MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
- MACOS_KEYCHAIN_PWD: ${{ secrets.MACOS_KEYCHAIN_PWD }}
- MACOS_CODESIGN_IDENTITY: ${{ secrets.MACOS_CODESIGN_IDENTITY }}
- run: | # when pushing to main, make to generate new cert, and utilize secrets to store new password, and identity
- echo "Decoding"
- echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
- echo "Creating Keychain"
- security create-keychain -p $MACOS_KEYCHAIN_PWD build.keychain
- echo "Setting Default Keychain"
- security default-keychain -s build.keychain
- echo "Unlocking Keychain"
- security unlock-keychain -p $MACOS_KEYCHAIN_PWD build.keychain
- echo "Importing Keychain"
- security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
- echo "Setting Partition List"
- security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_KEYCHAIN_PWD build.keychain
- - name: Codesign Specific Binaries
- env:
- MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
- MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
- MACOS_KEYCHAIN_PWD: ${{ secrets.MACOS_KEYCHAIN_PWD }}
- MACOS_CODESIGN_IDENTITY: ${{ secrets.MACOS_CODESIGN_IDENTITY }}
- run: |
- echo "Code Signing SO Files"
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*.so
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*.so
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*/*.so
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*/*/*.so
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*/*/*/*.so
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*/*/*/*/*.so
- echo "Code Signing DYLIB Files"
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/*/*/*/*/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/.dylibs/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/stan_model/cmdstan-2.26.1/stan/lib/stan_math/lib/tbb/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/torch/.dylibs/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/sklearn/.dylibs/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/scipy/.dylibs/*.dylib
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/xgboost/.dylibs/*.dylib
-
- echo "Code Signing Other Files"
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/stan_model/prophet_model.bin
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/stan_model/cmdstan-2.26.1/bin/diagnose
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/stan_model/cmdstan-2.26.1/bin/print
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/stan_model/cmdstan-2.26.1/bin/stanc
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/prophet/stan_model/cmdstan-2.26.1/bin/stansummary
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/pyarrow/plasma-store-server
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/torch/bin/protoc
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/torch/bin/protoc-3.13.0.0
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/torch/bin/torch_shm_manager
- echo "Code Sign OpenBB Executable File"
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/OpenBBTerminal
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY DMG/OpenBB\ Terminal/.OpenBB/OpenBBPlotsBackend
- - name: Create DMG
- run: create-dmg --volname "OpenBB Terminal" --volicon "images/dmg_volume.icns" --background "images/openbb_dmg_background.png" --icon "OpenBB Terminal" 190 250 --window-pos 190 120 --window-size 800 400 --icon-size 100 --text-size 14 --app-drop-link 600 250 --eula LICENSE --format UDZO --no-internet-enable "OpenBB Terminal".dmg DMG
- - name: Code Sign DMG Installer
- env:
- MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
- MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
- MACOS_KEYCHAIN_PWD: ${{ secrets.MACOS_KEYCHAIN_PWD }}
- MACOS_CODESIGN_IDENTITY: ${{ secrets.MACOS_CODESIGN_IDENTITY }}
- run: |
- echo "Code Signing DMG Installer"
- /usr/bin/codesign --deep --force --verify --verbose --options runtime --entitlements "build/pyinstaller/entitlements.plist" -s $MACOS_CODESIGN_IDENTITY OpenBB\ Terminal.dmg
- echo "Verify Signing"
- codesign --verify --deep --strict --verbose=2 OpenBB\ Terminal.dmg
- - name: Deleting Previous Keychain
- run: |
- echo "Deleting Previous Keychain to Clean Instance"
- rm -rf /Users/openbb/Library/Keychains/build.keychain-db
- - name: Clean up Build Artifacts
- run: |
- rm -rf build/terminal
- rm -rf dist
- rm -rf DMG
- - name: Notarize DMG
- env:
- NOTARIZE_APPLE_ID: ${{ secrets.NOTARIZE_APPLE_ID }}
- NOTARIZE_APPLE_PWD: ${{ secrets.NOTARIZE_APPLE_PWD }}
- NOTARIZE_APPLE_TEAM_ID: ${{ secrets.NOTARIZE_APPLE_TEAM_ID }}
- run: |
- xcrun notarytool submit OpenBB\ Terminal.dmg --apple-id "$NOTARIZE_APPLE_ID" --password "$NOTARIZE_APPLE_PWD" --team-id "$NOTARIZE_APPLE_TEAM_ID" --wait
- - name: Staple
- run: |
- xcrun stapler staple "OpenBB Terminal.dmg"
- - name: Save Build Artifact DMG
- uses: actions/upload-artifact@v3
- with:
- name: Intel MacOS DMG Artifact
- path: OpenBB\ Terminal.dmg
- - name: Convert & Mount DMG
- run: | # Remove the converting disc image at the end
- hdiutil convert OpenBB\ Terminal.dmg -format UDTO -o openbbterminal.cdr
- hdiutil attach openbbterminal.cdr
- rm -rf openbbterminal.cdr
- - name: Directory Change
- run: |
- cd
- cd /Volumes/OpenBB\ Terminal
- ls
- cp -R OpenBB\ Terminal ~/Desktop
- - name: Unmount DMG
- run: hdiutil detach /dev/disk2
-
- - name: Run Integration Tests
- run: |
- /Users/openbb/Desktop/OpenBB\ Terminal/.OpenBB/OpenBBTerminal -t -s forecast cryptocurrency reports alternative economy futures econometrics dashboards portfolio stocks/test_stocks_options_screen.openbb stocks/test_stocks_options.openbb forex etf stocks/test_stocks_fa.openbb > result.txt
- cat result.txt
- grep "================================ integration test summary ================================" result.txt -A100 | tail --bytes=2000 > failed_tests.txt
-
- - name: Upload summary to Slack
- uses: adrey/slack-file-upload-action@master
- with:
- token: ${{ secrets.SLACK_API_TOKEN }}
- initial_comment: "Intel MacOs Build Integration test summary"
- title: "Intel MacOs Build Integration test summary"
- path: failed_tests.txt
- channel: ${{ secrets.SLACK_CHANNEL_ID }}
-
- - name: Remove OpenBB Folder
- run: rm -rf /Users/openbb/Desktop/OpenBB\ Terminal
- - name: Remove OpenBB Exports Folder
- run: rm -rf ~/Desktop/OPENBB-exports