#!/bin/bash set -exu DOWNLOAD_SERVER="${download_server}" CONFIG=$(cat ${config_path}) JSON="$1" ARGS="$2" REPO_NAME=$(jq -r .repository.name <<< $JSON) CLONE_URL=$(jq -r .repository.clone_url <<< $JSON) BUILD_FILE=$(jq -r .file <<< $ARGS) DATE=$(date --utc +%s) SSH_OPTIONS='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' cd ~ rm -rf "$REPO_NAME" git clone "$CLONE_URL" cd "$REPO_NAME" shards install for ARCH in $(jq -r '.architectures | keys[]' <<< $CONFIG) do TARGET=$(jq -r .architectures.$ARCH.target <<< $CONFIG) BINARY="$REPO_NAME-$ARCH-$DATE" # static, so the binary does not depend on the libraries of a debian release crystal build "$BUILD_FILE" --static --release --target="$TARGET" -o "$BINARY" ssh $SSH_OPTIONS "downloads@$DOWNLOAD_SERVER" mkdir -p "~/$REPO_NAME" scp $SSH_OPTIONS "$BINARY" "downloads@$DOWNLOAD_SERVER:~/$REPO_NAME/$BINARY" ssh $SSH_OPTIONS "downloads@$DOWNLOAD_SERVER" ln -sf "$BINARY" "~/$REPO_NAME/$REPO_NAME-$ARCH-latest" done