mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Script used with Drone CI to upload build artifacts (because specifying all this in
 | |
| # .drone.jsonnet is too painful).
 | |
| 
 | |
| set -o errexit
 | |
| 
 | |
| 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
 | |
| 
 | |
| set -o xtrace  # Don't start tracing until *after* we write the ssh key
 | |
| 
 | |
| chmod 600 ssh_key
 | |
| 
 | |
| # Define the output paths
 | |
| prod_path="build/Session.xcarchive"
 | |
| sim_path="build/Session_sim.xcarchive/Products/Applications/Session.app"
 | |
| 
 | |
| # Validate the paths exist
 | |
| if [ -d $prod_path ]; then
 | |
|     suffix="store"
 | |
|     target_path=$prod_path
 | |
| elif [ -d $sim_path ]; then
 | |
|     suffix="sim"
 | |
|     target_path=$sim_path
 | |
| else
 | |
|     echo -e "\n\n\n\e[31;1mExpected a file to upload, found none\e[0m" >&2
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ -n "$DRONE_TAG" ]; then
 | |
|     # For a tag build use something like `session-ios-v1.2.3`, stored directly in the repo directory
 | |
|     base="session-ios-$DRONE_TAG-$suffix"
 | |
|     upload_to="oxen.rocks/${DRONE_REPO// /_}"
 | |
| else
 | |
|     # Otherwise build a length name from the datetime and commit hash, such as:
 | |
|     # session-ios-20200522T212342Z-04d7dcc54
 | |
|     # stored in a branch directory for the repo
 | |
|     base="session-ios-$(date --date=@$DRONE_BUILD_CREATED +%Y%m%dT%H%M%SZ)-${DRONE_COMMIT:0:9}-$suffix"
 | |
|     upload_to="oxen.rocks/${DRONE_REPO// /_}/${DRONE_BRANCH// /_}"
 | |
| fi
 | |
| 
 | |
| # Copy over the build products
 | |
| mkdir -vp "$base"
 | |
| mkdir -p build
 | |
| cp -av $target_path "$base"
 | |
| 
 | |
| # tar dat shiz up yo
 | |
| archive="$base.tar.xz"
 | |
| 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
 | |
| 
 | |
| sftp -i ssh_key -b - -o StrictHostKeyChecking=off drone@oxen.rocks <<SFTP
 | |
| $mkdirs
 | |
| put $archive $upload_to
 | |
| $put_debug
 | |
| SFTP
 | |
| 
 | |
| set +o xtrace
 | |
| 
 | |
| echo -e "\n\n\n\n\e[32;1mUploaded to https://${upload_to}/${archive}\e[0m\n\n\n"
 |