Skip to content

Commit

Permalink
[Finished #128730659] added support for supplying ca cert
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickcrocker committed Aug 22, 2016
1 parent 910d013 commit 26d48ad
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 31 deletions.
20 changes: 16 additions & 4 deletions assets/out
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,12 @@ groupId=$(jq -r '.params.groupId // ""' < $payload)
artifactId=$(jq -r '.params.artifactId // ""' < $payload)
version_file=$(jq -r '.params.version_file // ""' < $payload)
packaging=$(jq -r '.params.packaging // ""' < $payload)
#MAVEN_OPTS=$(jq -r '.params.maven_opts // ""' < $payload)
#MAVEN_CONFIG=$(jq -r '.params.maven_config // ""' < $payload)
MAVEN_CONFIG="-s $(dirname $0)/.m2/settings.xml"
repository_cert=$(jq -r '.params.repository_cert // ""' < $payload)
MAVEN_OPTS=$(jq -r '.params.maven_opts // ""' < $payload)
MAVEN_CONFIG=$(jq -r '.params.maven_config // ""' < $payload)

# Use ours if user didn't specify
[ -z "$MAVEN_CONFIG" ] && MAVEN_CONFIG="-s $(dirname $0)/.m2/settings.xml"

if [ -z "$url" ]; then
echo "invalid payload (missing url)"
Expand All @@ -52,6 +55,15 @@ elif [ -f "$pom" ]; then
version=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='version']/text()" $pom)
fi

if [ -n "$repository_cert" ]; then
mkdir $source/ssl
echo "$repository_cert" > $source/ssl/repository.crt
#cat $source/ssl/repository.crt >/dev/stderr
keytool -import -file $source/ssl/repository.crt -alias CAAlias -keystore $source/ssl/truststore.jks -storepass changeit -noprompt
MAVEN_OPTS="$MAVEN_OPTS -Djavax.net.ssl.trustStore=$source/ssl/truststore.jks \
-Djavax.net.ssl.trustStorePassword=changeit"
fi

args=
args="$args -Dfile=$file"
args="$args -Durl=$url"
Expand All @@ -68,7 +80,7 @@ fi
[ -n "$username" ] && args="$args -Drepository.username=$username";
[ -n "$password" ] && args="$args -Drepository.password=$password";

mvn $MAVEN_CONFIG deploy:deploy-file $args
mvn $MAVEN_CONFIG $MAVEN_OPTS deploy:deploy-file $args

jq -n "{
version: {version: $(echo $version | jq -R .)}
Expand Down
54 changes: 31 additions & 23 deletions test/helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ deploy_without_pom_with_credentials() {
local version=$2
local username=$3
local password=$4
local src=$5
local repository_cert=$(echo "$5" | awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')
local src=$6

local version_file=$(create_version_file "$version" "$src")

Expand All @@ -81,20 +82,23 @@ deploy_without_pom_with_credentials() {
mkdir $src/build-output
touch $src/build-output/$artifactId-$version.$packaging

jq -n "{
params: {
file: $(echo $file | jq -R .),
groupId: $(echo $groupId | jq -R .),
artifactId: $(echo $artifactId | jq -R .),
version_file: $(echo $version_file | jq -R .),
packaging: $(echo $packaging | jq -R .)
cat <<EOF | $resource_dir/out "$src" | tee /dev/stderr
{
"params": {
"file": "$file",
"groupId": "$groupId",
"artifactId": "$artifactId",
"version_file": "$version_file",
"packaging": "$packaging",
"repository_cert": "$repository_cert"
},
source: {
url: $(echo $url | jq -R .),
username: $(echo $username | jq -R .),
password: $(echo $password | jq -R .)
"source": {
"url": "$url",
"username": "$username",
"password": "$password"
}
}" | $resource_dir/out "$src" | tee /dev/stderr
}
EOF
}

deploy_with_pom_without_credentials() {
Expand Down Expand Up @@ -130,7 +134,8 @@ deploy_with_pom_with_credentials() {
local pom=$2
local username=$3
local password=$4
local src=$5
local repository_cert=$(echo "$5" | awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')
local src=$6

local artifactId=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='artifactId']/text()" $pom)
local packaging=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='packaging']/text()" $pom)
Expand All @@ -142,15 +147,18 @@ deploy_with_pom_with_credentials() {
mkdir $src/build-output
touch $src/build-output/$artifactId-$version.$packaging

jq -n "{
params: {
file: $(echo $file | jq -R .),
pom: $(echo $pom | jq -R .)
cat <<EOF | $resource_dir/out "$src" | tee /dev/stderr
{
"params": {
"file": "$file",
"pom": "$pom",
"repository_cert": "$repository_cert"
},
source: {
url: $(echo $url | jq -R .),
username: $(echo $username | jq -R .),
password: $(echo $password | jq -R .)
"source": {
"url": "$url",
"username": "$username",
"password": "$password"
}
}" | $resource_dir/out "$src" | tee /dev/stderr
}
EOF
}
13 changes: 9 additions & 4 deletions test/itest-out.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ source $(dirname $0)/helpers.sh
#export MAVEN_SNAPSHOTS_URL=http://myrepo.com/repository/snapshots/
#export MAVEN_REPO_USERNAME=username
#export MAVEN_REPO_PASSWORD=password
#export MAVEN_REPOSITORY_CERT=$(cat /path/to/cert)

if [ -z "$MAVEN_RELEASES_URL" ]; then
echo "Maven Releases Repo URL: "
Expand All @@ -34,8 +35,9 @@ it_can_deploy_release_to_manager_without_pom() {
local version=1.0.0-rc.0
local username=$MAVEN_REPO_USERNAME
local password=$MAVEN_REPO_PASSWORD
local repository_cert=$MAVEN_REPOSITORY_CERT

deploy_without_pom_with_credentials $url $version $username $password $src | jq -e "
deploy_without_pom_with_credentials $url $version $username $password "$repository_cert" $src | jq -e "
.version == {version: $(echo $version | jq -R .)}
"
}
Expand All @@ -47,8 +49,9 @@ it_can_deploy_snapshot_to_manager_without_pom() {
local version=1.0.0-rc.0-SNAPSHOT
local username=$MAVEN_REPO_USERNAME
local password=$MAVEN_REPO_PASSWORD
local repository_cert=$MAVEN_REPOSITORY_CERT

deploy_without_pom_with_credentials $url $version $username $password $src | jq -e "
deploy_without_pom_with_credentials $url $version $username $password "$repository_cert" $src | jq -e "
.version == {version: $(echo $version | jq -R .)}
"
}
Expand All @@ -65,8 +68,9 @@ it_can_deploy_release_to_manager_with_pom() {
local version=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='version']/text()" $pom)
local username=$MAVEN_REPO_USERNAME
local password=$MAVEN_REPO_PASSWORD
local repository_cert=$MAVEN_REPOSITORY_CERT

deploy_with_pom_with_credentials $url $pom $username $password $src | jq -e "
deploy_with_pom_with_credentials $url $pom $username $password "$repository_cert" $src | jq -e "
.version == {version: $(echo $version | jq -R .)}
"
}
Expand All @@ -83,8 +87,9 @@ it_can_deploy_snapshot_to_manager_with_pom() {
local version=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='version']/text()" $pom)
local username=$MAVEN_REPO_USERNAME
local password=$MAVEN_REPO_PASSWORD
local repository_cert=$MAVEN_REPOSITORY_CERT

deploy_with_pom_with_credentials $url $pom $username $password $src | jq -e "
deploy_with_pom_with_credentials $url $pom $username $password "$repository_cert" $src | jq -e "
.version == {version: $(echo $version | jq -R .)}
"
}
Expand Down

0 comments on commit 26d48ad

Please sign in to comment.