github: switch snapshots to GitHub

This commit is contained in:
Harsh Shandilya 2022-03-09 01:16:56 +05:30
parent 78771c86bf
commit 178f824155
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 50 additions and 16 deletions

View file

@ -1,13 +1,51 @@
#!/usr/bin/env bash
set -euo pipefail
export SSHDIR="$HOME/.ssh"
export SERVER_DEPLOY_STRING="$SSH_USERNAME@$SERVER_ADDRESS:$SERVER_DESTINATION"
mkdir -p "$SSHDIR"
echo "$ACTIONS_DEPLOY_KEY" > "$SSHDIR/key"
chmod 600 "$SSHDIR/key"
mkdir -p "$GITHUB_WORKSPACE/Claw"
cp -v ./android/build/outputs/apk/release/android-release.apk "$GITHUB_WORKSPACE/Claw/Claw.apk"
cd "$GITHUB_WORKSPACE/Claw"
rsync -ahvcr --omit-dir-times --progress --delete --no-o --no-g -e "ssh -i $SSHDIR/key -o StrictHostKeyChecking=no -p $SSH_PORT" . "$SERVER_DEPLOY_STRING"
set -ex
LATEST_TAG="latest"
CURRENT_REV="$(git rev-parse --short HEAD)"
ASSET_DIRECTORY="${GITHUB_WORKSPACE:?}/android/outputs"
function overwrite_local_tag() {
git tag -f "${LATEST_TAG}"
}
function overwrite_remote_tag() {
git push -f origin "${LATEST_TAG}"
}
function has_release() {
gh release view "${LATEST_TAG}" &>/dev/null
echo "$?"
}
function delete_release() {
gh release delete --yes "${LATEST_TAG}"
}
function create_rev_file() {
pushd "${ASSET_DIRECTORY}" || return
echo "${CURRENT_REV}" | tee rev-hash.txt
popd || return
}
function create_release() {
local CHANGELOG_FILE
CHANGELOG_FILE="$(mktemp)"
echo "Latest release for Claw from revision ${CURRENT_REV}" | tee "${CHANGELOG_FILE}"
pushd "${ASSET_DIRECTORY}" || return
gh release create --prerelease --title "Latest snapshot build" --notes-file "${CHANGELOG_FILE}" "${LATEST_TAG}" ./*
popd || return
}
overwrite_local_tag
if [[ "$(has_release)" -eq 0 ]]; then
delete_release
fi
create_rev_file
overwrite_remote_tag
create_release