24 lines
1022 B
Bash
Executable File
24 lines
1022 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
TARGET=${DEPLOY_TARGET:-daniel@10.0.0.33}
|
|
SSH_KEY=${DEPLOY_SSH_KEY:-$HOME/.ssh/harbor_deploy}
|
|
artifact=${1:-}
|
|
|
|
if [[ -z "$artifact" ]]; then
|
|
"$SCRIPT_DIR/build-release.sh"
|
|
artifact=$(find "$SCRIPT_DIR/artifacts" -maxdepth 1 -type f -name 'harbor-*.tar.gz' -printf '%T@ %p\n' | sort -nr | cut -d' ' -f2- | sed -n '1p')
|
|
fi
|
|
test -f "$artifact"
|
|
test -f "$artifact.sha256"
|
|
|
|
name=$(basename "$artifact")
|
|
checksum=$(cut -d' ' -f1 "$artifact.sha256")
|
|
ssh_opts=(-i "$SSH_KEY" -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes)
|
|
|
|
printf '%s\n' "uploading $name"
|
|
rsync -az --partial -e "ssh -i $SSH_KEY -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes" "$artifact" "$TARGET:/opt/harbor/incoming/$name"
|
|
ssh "${ssh_opts[@]}" "$TARGET" sudo /opt/harbor/deploy/remote/activate-release.sh "/opt/harbor/incoming/$name" "$checksum"
|
|
ssh "${ssh_opts[@]}" "$TARGET" sudo /opt/harbor/deploy/remote/status.sh
|