You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

126 lines
3.7 KiB

#!/usr/bin/env bash
set -e
# shellcheck disable=SC1091
source scripts/helpers/run-job.sh
# shellcheck disable=SC1091
source scripts/helpers/display-env.sh
if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then
echo "You are not on master. Exiting properly. (CI)"
exit 0
fi
GH_TAG=$(git describe --exact-match --tags 2>/dev/null || echo '')
if [[ $GH_TAG == "" ]]; then
echo "You are not on a tag. Exiting properly. (CI)"
exit 0
fi
if [ -z "$GH_TOKEN" ]; then
echo "GH_TOKEN is unset. can't release" >&2
exit 1
fi
if [ ! -d "static/fonts/museosans" ]; then
if ! command -v aws ; then
if ! command -v apt ; then
echo "Museo Sans is missing, and I can't fetch it (no aws, no apt)" >&2
exit 1
fi
runJob "sudo apt install awscli" "installing aws cli..." "installed aws cli" "failed to install aws cli"
fi
runJob \
"set -e ;\
rm -rf /tmp/museosans* ;\
aws s3 cp s3://ledger-ledgerlive-resources-dev/resources/museosans.zip /tmp/museosans.zip ;\
unzip /tmp/museosans.zip -d /tmp/museosans ;\
mv /tmp/museosans/museosans static/fonts ;\
rm static/fonts/museosans/.DS_Store # remove crappy macOS file ;\
rm -rf /tmp/museosans*" \
"no museosans font. fetching it from private bucket..." \
"successfully fetched museosans" \
"error fetching museosans"
fi
if ! git diff-index --quiet HEAD --; then
echo "you have uncommitted local changes!" >&2
exit 1
fi
# originRemote=$(git config --get remote.origin.url)
# if [ "$originRemote" != "https://github.com/LedgerHQ/ledger-live-desktop.git" ]; then
# echo "the origin remote is incorrect ($originRemote)"
# exit 1
# fi
if [[ $(uname) == 'Linux' ]]; then # only run it on one target, to prevent race conditions
runJob \
"node scripts/create-draft-release.js" \
"creating a draft release on GitHub (if needed)..." \
"draft release ready" \
"failed to create a draft release"
fi
runJob "yarn compile" "compiling..." "compiled" "failed to compile" "verbose"
if [[ $(uname) == 'Linux' ]]; then
# --------------------------------------------------------------------
# Linux: Internal process error (null)
#
# context: https://github.com/LedgerHQ/ledger-live-desktop/issues/1010
# Linux: Internal process error (null)
#
# The "fix" is not optimal, as it doesn't really solve the problem
# (electron loading system openssl before we can load our embedded one)
# Quick summary:
#
# - build without publishing
# - unpack the .AppImage
# - download reported working libs from ubuntu mirrors, put it inside
# - re-pack the .AppImage
# - checksum stuff
# - upload to gh
runJob \
"DEBUG=electron-builder electron-builder build --publish never" \
"building and packaging app..." \
"app built and packaged successfully" \
"failed to build app" \
"verbose"
runJob \
"scripts/patch-appimage.sh" \
"patching AppImage..." \
"AppImage patched successfully" \
"failed to patch AppImage"
LEDGER_LIVE_VERSION=$(grep version package.json | sed -E 's/.*: "(.*)",/\1/g')
scripts/upload-github-release-asset.sh \
github_api_token="$GH_TOKEN" \
owner=LedgerHQ \
repo=ledger-live-desktop \
tag="$GH_TAG" \
filename="dist/ledger-live-desktop-$LEDGER_LIVE_VERSION-linux-x86_64.AppImage"
scripts/upload-github-release-asset.sh \
github_api_token="$GH_TOKEN" \
owner=LedgerHQ \
repo=ledger-live-desktop \
tag="$GH_TAG" \
filename="dist/latest-linux.yml"
else
runJob \
"DEBUG=electron-builder electron-builder build --publish always" \
"building and packaging app..." \
"app built and packaged successfully" \
"failed to build app" \
"verbose"
fi