before-deploy-osx.sh 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. hr() {
  2. echo "───────────────────────────────────────────────────"
  3. echo $1
  4. echo "───────────────────────────────────────────────────"
  5. }
  6. # Exit if something fails
  7. set -e
  8. # Generate file name variables
  9. export GIT_HASH=$(git rev-parse --short HEAD)
  10. export FILE_DATE=$(date +%Y-%m-%d.%H-%M-%S)
  11. export FILENAME=$FILE_DATE-$GIT_HASH-$TRAVIS_BRANCH-osx.pkg
  12. cd ./build
  13. # Move obslua
  14. hr "Moving OBS LUA"
  15. mv ./rundir/RelWithDebInfo/data/obs-scripting/obslua.so ./rundir/RelWithDebInfo/bin/
  16. # Move obspython
  17. # hr "Moving OBS Python"
  18. # mv ./rundir/RelWithDebInfo/data/obs-scripting/_obspython.so ./rundir/RelWithDebInfo/bin/
  19. # mv ./rundir/RelWithDebInfo/data/obs-scripting/obspython.py ./rundir/RelWithDebInfo/bin/
  20. # Package everything into a nice .app
  21. hr "Packaging .app"
  22. STABLE=false
  23. if [ -n "${TRAVIS_TAG}" ]; then
  24. STABLE=true
  25. fi
  26. sudo python ../CI/install/osx/build_app.py --public-key ../CI/install/osx/OBSPublicDSAKey.pem --sparkle-framework ../../sparkle/Sparkle.framework --stable=$STABLE
  27. # Copy Chromium embedded framework to app Frameworks directory
  28. hr "Copying Chromium Embedded Framework.framework"
  29. sudo mkdir -p OBS.app/Contents/Frameworks
  30. sudo cp -r ../../cef_binary_${CEF_BUILD_VERSION}_macosx64/Release/Chromium\ Embedded\ Framework.framework OBS.app/Contents/Frameworks/
  31. sudo install_name_tool -change \
  32. @rpath/Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  33. ../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  34. OBS.app/Contents/Resources/obs-plugins/obs-browser.so
  35. sudo install_name_tool -change \
  36. @executable_path/../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  37. ../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  38. OBS.app/Contents/Resources/obs-plugins/obs-browser.so
  39. sudo install_name_tool -change \
  40. @rpath/Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  41. ../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  42. OBS.app/Contents/Resources/obs-plugins/obs-browser-page
  43. sudo install_name_tool -change \
  44. @executable_path/../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  45. ../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
  46. OBS.app/Contents/Resources/obs-plugins/obs-browser-page
  47. # Package app
  48. hr "Generating .pkg"
  49. packagesbuild ../CI/install/osx/CMakeLists.pkgproj
  50. if [ -v "$TRAVIS" ]; then
  51. # Signing stuff
  52. hr "Decrypting Cert"
  53. openssl aes-256-cbc -K $encrypted_dd3c7f5e9db9_key -iv $encrypted_dd3c7f5e9db9_iv -in ../CI/osxcert/Certificates.p12.enc -out Certificates.p12 -d
  54. hr "Creating Keychain"
  55. security create-keychain -p mysecretpassword build.keychain
  56. security default-keychain -s build.keychain
  57. security unlock-keychain -p mysecretpassword build.keychain
  58. security set-keychain-settings -t 3600 -u build.keychain
  59. hr "Importing certs into keychain"
  60. security import ./Certificates.p12 -k build.keychain -T /usr/bin/productsign -P ""
  61. # macOS 10.12+
  62. security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword build.keychain
  63. hr "Signing Package"
  64. productsign --sign 2MMRE5MTB8 ./OBS.pkg ./$FILENAME
  65. else
  66. cp ./OBS.pkg ./$FILENAME
  67. fi
  68. # Move to the folder that travis uses to upload artifacts from
  69. hr "Moving package to nightly folder for distribution"
  70. mkdir ../nightly
  71. sudo mv ./$FILENAME ../nightly