Skip to content

Commit

Permalink
build: add builds for various targets (starship#2137)
Browse files Browse the repository at this point in the history
* build: add builds for various targets

* fix typo

Co-authored-by: Matan Kushner <[email protected]>

Co-authored-by: Matan Kushner <[email protected]>
  • Loading branch information
davidkna and matchai authored Jan 21, 2021
1 parent 00afc82 commit 132be11
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 5 deletions.
20 changes: 19 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,30 @@ jobs:
os: ubuntu-latest
name: starship-i686-unknown-linux-musl.tar.gz

- target: aarch64-unknown-linux-musl
os: ubuntu-latest
name: starship-aarch64-unknown-linux-musl.tar.gz

- target: arm-unknown-linux-musleabihf
os: ubuntu-latest
name: starship-arm-unknown-linux-musleabihf.tar.gz

- target: x86_64-apple-darwin
os: macOS-latest
name: starship-x86_64-apple-darwin.tar.gz

# TODO: switch to macOS-latest once it reaches 11.0
- target: aarch64-apple-darwin
os: macos-11.0
name: starship-aarch64-apple-darwin.tar.gz

- target: x86_64-pc-windows-msvc
os: windows-latest
name: starship-x86_64-pc-windows-msvc.zip

- target: i686-pc-windows-msvc
os: windows-latest
name: starship-i686-pc-windows-msvc.zip

runs-on: ${{ matrix.os }}
steps:
Expand Down Expand Up @@ -101,7 +118,8 @@ jobs:
if: matrix.os != 'windows-latest'
run: |
cd target/${{ matrix.target }}/release
strip starship
# TODO: investigate better cross platform stripping
strip starship || true
tar czvf ../../../${{ matrix.name }} starship
cd -
Expand Down
34 changes: 30 additions & 4 deletions install/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@ BLUE="$(tput setaf 4 2>/dev/null || echo '')"
MAGENTA="$(tput setaf 5 2>/dev/null || echo '')"
NO_COLOR="$(tput sgr0 2>/dev/null || echo '')"

SUPPORTED_TARGETS="x86_64-unknown-linux-gnu x86_64-unknown-linux-musl i686-unknown-linux-musl x86_64-apple-darwin x86_64-pc-windows-msvc"
SUPPORTED_TARGETS="x86_64-unknown-linux-gnu x86_64-unknown-linux-musl \
i686-unknown-linux-musl aarch64-unknown-linux-musl \
arm-unknown-linux-musleabihf x86_64-apple-darwin \
aarch64-apple-darwin x86_64-pc-windows-msvc \
i686-pc-windows-msvc"

info() {
printf "%s\n" "${BOLD}${GREY}>${NO_COLOR} $*"
Expand Down Expand Up @@ -192,14 +196,34 @@ detect_arch() {
local arch
arch="$(uname -m | tr '[:upper:]' '[:lower:]')"

case "${arch}" in
armv*) arch="arm" ;;
arm64) arch="aarch64" ;;
esac

# `uname -m` in some cases mis-reports 32-bit OS as 64-bit, so double check
if [ "${arch}" = "x64" ] && [ "$(getconf LONG_BIT)" -eq 32 ]; then
arch=i686
elif [ "${arch}" = "aarch64" ] && [ "$(getconf LONG_BIT)" -eq 32 ]; then
arch=arm
fi

echo "${arch}"
}

detect_target() {
local arch="$1"
local platform="$2"
local target="$arch-$platform"

if [ "${target}" = "arm-unknown-linux-musl" ]; then
target="${target}eabihf"
fi

echo "${target}"
}


confirm() {
if [ -z "${FORCE-}" ]; then
printf "%s " "${MAGENTA}?${NO_COLOR} $* ${BOLD}[y/N]${NO_COLOR}"
Expand Down Expand Up @@ -247,8 +271,8 @@ check_bin_dir() {
is_build_available() {
local arch="$1"
local platform="$2"
local target="$3"

local target="${arch}-${platform}"
local good

good=$(
Expand Down Expand Up @@ -350,7 +374,9 @@ while [ "$#" -gt 0 ]; do
esac
done

is_build_available "${ARCH}" "${PLATFORM}"
TARGET="$(detect_target "${ARCH}" "${PLATFORM}")"

is_build_available "${ARCH}" "${PLATFORM}" "${TARGET}"

printf " %s\n" "${UNDERLINE}Configuration${NO_COLOR}"
info "${BOLD}Bin directory${NO_COLOR}: ${GREEN}${BIN_DIR}${NO_COLOR}"
Expand All @@ -372,7 +398,7 @@ if [ "${PLATFORM}" = "pc-windows-msvc" ]; then
EXT=zip
fi

URL="${BASE_URL}/latest/download/starship-${ARCH}-${PLATFORM}.${EXT}"
URL="${BASE_URL}/latest/download/starship-${TARGET}.${EXT}"
info "Tarball URL: ${UNDERLINE}${BLUE}${URL}${NO_COLOR}"
confirm "Install Starship ${GREEN}latest${NO_COLOR} to ${BOLD}${GREEN}${BIN_DIR}${NO_COLOR}?"
check_bin_dir "${BIN_DIR}"
Expand Down

0 comments on commit 132be11

Please sign in to comment.