mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-01-21 14:28:19 +08:00
68 lines
1.6 KiB
Bash
Executable file
68 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# Usage:
|
|
#
|
|
# $ .github/scripts/app/build_macos.sh
|
|
# $ open rel/app/macos/.build/LivebookInstall.dmg
|
|
# $ open livebook://github.com/livebook-dev/livebook/blob/main/test/support/notebooks/basic.livemd
|
|
# $ open ./test/support/notebooks/basic.livemd
|
|
#
|
|
# Note: This script builds the Mac installer. If you just want to test the Mac app locally, run:
|
|
#
|
|
# $ cd rel/app/macos && ./run.sh
|
|
#
|
|
# See rel/app/macos/README.md for more information.
|
|
set -euo pipefail
|
|
|
|
main() {
|
|
. versions
|
|
OTP_VERSION="${OTP_VERSION:-$otp}"
|
|
ELIXIR_VERSION="${ELIXIR_VERSION:-$elixir}"
|
|
OPENSSL_VERSION="${OPENSSL_VERSION:-$openssl}"
|
|
|
|
bootstrap_otp
|
|
download_elixir
|
|
build_app
|
|
}
|
|
|
|
bootstrap_otp() {
|
|
dir=$PWD
|
|
cd elixirkit/otp_bootstrap
|
|
. ./build_macos_universal.sh "$OTP_VERSION" "$OPENSSL_VERSION"
|
|
cd $dir
|
|
}
|
|
|
|
download_elixir() {
|
|
dir=$PWD
|
|
elixir_dir=$PWD/_build/elixir-"$ELIXIR_VERSION"
|
|
|
|
if [ ! -d $elixir_dir ]; then
|
|
otp_release=`erl -noshell -eval 'io:format("~s", [erlang:system_info(otp_release)]), halt().'`
|
|
elixir_zip=v${ELIXIR_VERSION}-otp-${otp_release}.zip
|
|
url=https://builds.hex.pm/builds/elixir/$elixir_zip
|
|
echo downloading $url
|
|
curl --fail -LO $url
|
|
mkdir -p $elixir_dir
|
|
unzip -q $elixir_zip -d $elixir_dir
|
|
rm $elixir_zip
|
|
fi
|
|
|
|
export PATH="$elixir_dir/bin:$PATH"
|
|
cd $dir
|
|
}
|
|
|
|
build_app() {
|
|
mix local.hex --force --if-missing
|
|
mix local.rebar --force --if-missing
|
|
|
|
export MIX_ENV=prod
|
|
export MIX_TARGET=app
|
|
export ELIXIRKIT_BUILD_ARGS="--configuration release --arch x86_64 --arch arm64"
|
|
|
|
mix deps.get --only prod
|
|
|
|
cd rel/app/macos
|
|
./build_dmg.sh
|
|
}
|
|
|
|
main
|