diff options
Diffstat (limited to 'dokka-integration-tests/aws_sync.sh')
-rwxr-xr-x | dokka-integration-tests/aws_sync.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dokka-integration-tests/aws_sync.sh b/dokka-integration-tests/aws_sync.sh new file mode 100755 index 00000000..bee584b6 --- /dev/null +++ b/dokka-integration-tests/aws_sync.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# +# Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +# + +commits_to_store=3 + +if [ $# -lt 3 ]; then + echo "Too little arguments. Usage: ./aws_generate <s3_address> <project_name> <path_to_project_output_dir>" + exit 1 +fi + +aws_s3_address=${1%/} # Remove trailing slash if given +project_name=$2 +project_path=$3 + +current_branch=$(git branch --show-current) +s3_project_address="${aws_s3_address}/${current_branch}/${project_name}/" +last_commits=$(git log --pretty=format:%h -n $commits_to_store) + +# List all project versions +dir=$(aws s3 ls "$s3_project_address" | awk '{print $2}') + +# Remove old versions +for d in $dir; do + for commit in "${last_commits[@]}"; do + [[ $d == "$commit/" ]] && continue + aws s3 rm --recursive "$s3_project_address$d" + done +done + +# Sync the new one +commit_hash=$(git log -1 --format="%h") + +aws s3 sync "$project_path" "$s3_project_address$commit_hash/" + +echo "$commit_hash" |