You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
4.2 KiB
215 lines
4.2 KiB
#!/bin/bash
|
|
|
|
set -e -u
|
|
|
|
set -o pipefail
|
|
|
|
export TMPDIR_ROOT=$(mktemp -d /tmp/artifactory-tests.XXXXXX)
|
|
trap "rm -rf $TMPDIR_ROOT" EXIT
|
|
|
|
if [ -d /opt/resource ]; then
|
|
resource_dir=/opt/resource
|
|
else
|
|
resource_dir=$(cd $(dirname $0)/../assets && pwd)
|
|
fi
|
|
|
|
run() {
|
|
export TMPDIR=$(mktemp -d ${TMPDIR_ROOT}/artifactory-tests.XXXXXX)
|
|
|
|
echo -e 'running \e[33m'"$@"$'\e[0m...'
|
|
eval "$@" 2>&1 | sed -e 's/^/ /g'
|
|
echo ""
|
|
}
|
|
|
|
find_primary_ip() {
|
|
ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
|
|
}
|
|
|
|
find_docker_host_ip() {
|
|
/sbin/ip route | awk '/default/ { print $3 }'
|
|
}
|
|
|
|
create_version_file() {
|
|
local version=$1
|
|
local src=$2
|
|
|
|
mkdir $src/version
|
|
echo "$version" > $src/version/number
|
|
|
|
echo version/number
|
|
}
|
|
|
|
create_file() {
|
|
local src=$1
|
|
local file=$2
|
|
|
|
# Mock the artifact
|
|
mkdir $src/build-output
|
|
echo "Dummy File" > $src/build-output/$file
|
|
touch $src/build-output/$file
|
|
|
|
echo "$src/build-output/$file"
|
|
}
|
|
|
|
# CHECK
|
|
check_without_credentials_and_version() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local folder=$3
|
|
local src=$4
|
|
|
|
jq -n "{
|
|
source: {
|
|
endpoint: $(echo $endpoint | jq -R .),
|
|
repository: $(echo $folder | jq -R .),
|
|
regex: $(echo $regex | jq -R .)
|
|
}
|
|
}" | $resource_dir/check "$src" | tee /dev/stderr
|
|
}
|
|
|
|
# CHECK
|
|
check_without_credentials_with_version() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local folder=$3
|
|
local version=$4
|
|
local src=$5
|
|
|
|
jq -n "{
|
|
source: {
|
|
endpoint: $(echo $endpoint | jq -R .),
|
|
repository: $(echo $folder | jq -R .),
|
|
regex: $(echo $regex | jq -R .)
|
|
},
|
|
version: { version: $(echo $version| jq -R .)
|
|
}
|
|
}" | $resource_dir/check "$src" | tee /dev/stderr
|
|
}
|
|
|
|
# CHECK
|
|
check_with_credentials_with_version() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local username=$3
|
|
local password=$4
|
|
local folder=$5
|
|
local version=$6
|
|
local src=$7
|
|
|
|
jq -n "{
|
|
source: {
|
|
endpoint: $(echo $endpoint | jq -R .),
|
|
repository: $(echo $folder | jq -R .),
|
|
regex: $(echo $regex | jq -R .),
|
|
username: $(echo $username | jq -R .),
|
|
password: $(echo $password | jq -R .)
|
|
},
|
|
version: { version: $(echo $version| jq -R .)
|
|
}
|
|
}" | $resource_dir/check "$src" | tee /dev/stderr
|
|
}
|
|
|
|
# IN
|
|
in_without_credentials_with_version() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local folder=$3
|
|
local version=$4
|
|
local src=$5
|
|
|
|
jq -n "{
|
|
source: {
|
|
endpoint: $(echo $endpoint | jq -R .),
|
|
repository: $(echo $folder | jq -R .),
|
|
regex: $(echo $regex | jq -R .)
|
|
},
|
|
version: { version: $(echo $version| jq -R .)
|
|
}
|
|
}" | $resource_dir/in "$src" | tee /dev/stderr
|
|
}
|
|
|
|
# IN
|
|
in_with_credentials_with_version() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local folder=$3
|
|
local version=$4
|
|
local src=$5
|
|
|
|
local username=$6
|
|
local password=$7
|
|
|
|
jq -n "{
|
|
source: {
|
|
endpoint: $(echo $endpoint | jq -R .),
|
|
username: $(echo $username | jq -R .),
|
|
password: $(echo $password | jq -R .),
|
|
repository: $(echo $folder | jq -R .),
|
|
regex: $(echo $regex | jq -R .)
|
|
},
|
|
version: { version: $(echo $version| jq -R .)
|
|
}
|
|
}" | $resource_dir/in "$src" | tee /dev/stderr
|
|
}
|
|
|
|
# OUT
|
|
deploy_without_credentials() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local repository=$3
|
|
local file=$(create_file "$6" "$4")
|
|
local version=$5
|
|
local src=$6
|
|
|
|
local version_file=$(create_version_file "$version" "$src")
|
|
|
|
jq -n "{
|
|
params: {
|
|
file: $(echo $file | jq -R .),
|
|
version_file: $(echo $version_file | jq -R .)
|
|
},
|
|
source: {
|
|
endpoint: $(echo $endpoint | jq -R .),
|
|
repository: $(echo $repository | jq -R .),
|
|
regex: $(echo $regex | jq -R .)
|
|
}
|
|
}" | $resource_dir/out "$src" | tee /dev/stderr
|
|
}
|
|
|
|
# OUT
|
|
deploy_with_credentials() {
|
|
|
|
local endpoint=$1
|
|
local regex=$2
|
|
local repository=$3
|
|
local file=$(create_file "$6" "$4")
|
|
local version=$5
|
|
local src=$6
|
|
|
|
local username=$7
|
|
local password=$8
|
|
|
|
local version_file=$(create_version_file "$version" "$src")
|
|
|
|
cat <<EOF | $resource_dir/out "$src" | tee /dev/stderr
|
|
{
|
|
"params": {
|
|
"file": "$file",
|
|
"version_file": "$version_file"
|
|
},
|
|
"source": {
|
|
"endpoint": "$endpoint",
|
|
"repository": "$repository",
|
|
"username": "$username",
|
|
"password": "$password"
|
|
}
|
|
}
|
|
EOF
|
|
}
|
|
|