aboutsummaryrefslogtreecommitdiff
path: root/integration-tests/aws_sync.sh
blob: bee584b6813d5fdd7a84d6347bc3d6e09241ecdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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"