From 9211766fc5f0d80e0e9b77b86d7e3fd63effee4f Mon Sep 17 00:00:00 2001 From: Morgan Pretty Date: Tue, 6 Feb 2024 18:07:53 +1100 Subject: [PATCH] Updated the 'drone-upload-exists' to be a standalone script --- Scripts/drone-static-upload.sh | 94 ++++++++++++++-------------------- Scripts/drone-upload-exists.sh | 36 +++++++++---- 2 files changed, 64 insertions(+), 66 deletions(-) diff --git a/Scripts/drone-static-upload.sh b/Scripts/drone-static-upload.sh index 040cde913..6a0120433 100755 --- a/Scripts/drone-static-upload.sh +++ b/Scripts/drone-static-upload.sh @@ -2,29 +2,20 @@ # Script used with Drone CI to upload build artifacts (because specifying all this in # .drone.jsonnet is too painful). -# -# Passing an argument of 'false' will result in just the upload location being output -# instead of attepting to actually upload set -o errexit -if [[ -z "$1" || "$0" == "true" ]]; then - if [ -z "$SSH_KEY" ]; then - echo -e "\n\n\n\e[31;1mUnable to upload artifact: SSH_KEY not set\e[0m" - # Just warn but don't fail, so that this doesn't trigger a build failure for untrusted builds - exit 0 - fi - - echo "$SSH_KEY" >ssh_key +if [ -z "$SSH_KEY" ]; then + echo -e "\n\n\n\e[31;1mUnable to upload artifact: SSH_KEY not set\e[0m" + # Just warn but don't fail, so that this doesn't trigger a build failure for untrusted builds + exit 0 +fi - set -o xtrace # Don't start tracing until *after* we write the ssh key +echo "$SSH_KEY" >ssh_key - chmod 600 ssh_key +set -o xtrace # Don't start tracing until *after* we write the ssh key - should_upload=true -else - should_upload=$1 -fi +chmod 600 ssh_key # Define the output paths prod_path="build/Session.xcarchive" @@ -32,9 +23,11 @@ sim_path="build/Session_sim.xcarchive/Products/Applications/Session.app" # Validate the paths exist if [ -d $prod_path ]; then + suffix="-store" suffix="store" target_path=$prod_path -elif [[ -d $sim_path || "$should_upload" == "false" ]]; then +elif [ -d $sim_path ]; then + suffix="-sim" suffix="sim" target_path=$sim_path else @@ -45,51 +38,42 @@ fi if [ -n "$DRONE_TAG" ]; then # For a tag build use something like `session-ios-v1.2.3` base="session-ios-$DRONE_TAG-$suffix" -elif [ "$should_upload" == "false" ]; then - # Instead of the datetime include a wildcard in the base name as it'll differ in the actual build: - # session-ios-.*-2fba13878 - base="session-ios-.*-${DRONE_COMMIT:0:9}-$suffix" else # Otherwise build a length name from the datetime and commit hash, such as: - # session-ios-20200522T212342Z-2fba13878 + # session-ios-20200522T212342Z-04d7dcc54 base="session-ios-$(date --date=@$DRONE_BUILD_CREATED +%Y%m%dT%H%M%SZ)-${DRONE_COMMIT:0:9}-$suffix" fi -archive="$base.tar.xz" +# Copy over the build products +mkdir -vp "$base" +mkdir -p build +cp -av $target_path "$base" -if [ "$should_upload" == "true" ]; then - upload_to="oxen.rocks/${DRONE_REPO// /_}/${DRONE_BRANCH// /_}" - - # Copy over the build products - mkdir -vp "$base" - mkdir -p build - cp -av $target_path "$base" - - # tar dat shiz up yo - tar cJvf "$archive" "$base" - - # sftp doesn't have any equivalent to mkdir -p, so we have to split the above up into a chain of - # -mkdir a/, -mkdir a/b/, -mkdir a/b/c/, ... commands. The leading `-` allows the command to fail - # without error. - upload_dirs=(${upload_to//\// }) - put_debug= - mkdirs= - dir_tmp="" - for p in "${upload_dirs[@]}"; do - dir_tmp="$dir_tmp$p/" - mkdirs="$mkdirs - -mkdir $dir_tmp" - done +# tar dat shiz up yo +archive="$base.tar.xz" +tar cJvf "$archive" "$base" + +upload_to="oxen.rocks/${DRONE_REPO// /_}/${DRONE_BRANCH// /_}" + +# sftp doesn't have any equivalent to mkdir -p, so we have to split the above up into a chain of +# -mkdir a/, -mkdir a/b/, -mkdir a/b/c/, ... commands. The leading `-` allows the command to fail +# without error. +upload_dirs=(${upload_to//\// }) +put_debug= +mkdirs= +dir_tmp="" +for p in "${upload_dirs[@]}"; do + dir_tmp="$dir_tmp$p/" + mkdirs="$mkdirs +-mkdir $dir_tmp" +done sftp -i ssh_key -b - -o StrictHostKeyChecking=off drone@oxen.rocks <