Skip to content

Commit

Permalink
chore: add dev env deployment tools
Browse files Browse the repository at this point in the history
  • Loading branch information
ricardas-buc committed Mar 22, 2024
1 parent 8f3091c commit df02e22
Show file tree
Hide file tree
Showing 5 changed files with 185 additions and 2 deletions.
17 changes: 16 additions & 1 deletion Docker/xrd-dev-stack/local-dev-exec-e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,23 @@ if [ -z "$XROAD_HOME" ]; then
exit 1
fi

ADDITIONAL_GRADLE_ARGS=""
for i in "$@"; do
case "$i" in
"--use-custom-env")
ADDITIONAL_GRADLE_ARGS="-Pe2eTestUseCustomEnv=true"
;;
esac
done

if [[ $# -eq 0 ]]; then
echo "Available args:"
echo "--use-custom-env: Use custom environment (usually already running dev) for e2e tests"
fi

cd "$XROAD_HOME"/src && ./gradlew :security-server:e2e-test:e2eTest --rerun-tasks \
-Pe2eTestCSImage=xrd-centralserver-dev \
-Pe2eTestSSImage=xrd-securityserver-dev \
-Pe2eTestTestCAImage=xrd-testca \
-Pe2eTestISSOAPImage=xrd-is-soap
-Pe2eTestISSOAPImage=xrd-is-soap \
$ADDITIONAL_GRADLE_ARGS
36 changes: 36 additions & 0 deletions Docker/xrd-dev-stack/tools/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash -e
set -e

origin="$(pwd)"

gradleModule=""
gradleArgs="clean build -xtest -xcheckstyleMain -xcheckstyleTest "
case $1 in
"proxy")
gradleModule="proxy"
gradleArgs+="-xintTest -xintegrationTest"
;;
"configuration-client")
gradleModule="configuration-client"
;;
"signer")
gradleModule="signer"
;;
"proxy-ui-api")
gradleModule="security-server/admin-service"
;;
"cs-admin-service")
gradleModule="central-server/admin-service"
gradleArgs+="-xintTest"
;;
"cs-management-service")
gradleModule="central-server/management-service"
gradleArgs+="-xintTest"
;;
esac

cd "$XROAD_HOME"/src/
set -o xtrace
./gradlew $gradleArgs -p $gradleModule
set +o xtrace
cd "$origin"
78 changes: 78 additions & 0 deletions Docker/xrd-dev-stack/tools/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#!/bin/bash

deploy_module() {
local module_name=$1
shift
local -a containers=("$@")
local jar_path
local service_name

case $module_name in
"proxy")
jar_path="$XROAD_HOME/src/proxy/build/libs/proxy-1.0.jar"
service_name="xroad-proxy"
;;
"messagelog-addon")
jar_path="$XROAD_HOME/src/addons/messagelog/messagelog-addon/build/libs/messagelog-addon.jar"
service_name="xroad-proxy"
;;
"metaservice-addon")
jar_path="$XROAD_HOME/src/addons/metaservice/build/libs/metaservice-1.0.jar"
service_name="xroad-proxy"
;;
"proxy-ui-api")
jar_path="$XROAD_HOME/src/security-server/admin-service/application/build/libs/proxy-ui-api-1.0.jar"
service_name="xroad-proxy-ui-api"
;;
"signer")
jar_path="$XROAD_HOME/src/signer/build/libs/signer-1.0.jar"
service_name="all"
;;
"configuration-client")
jar_path="$XROAD_HOME/src/configuration-client/build/libs/configuration-client-1.0.jar"
service_name="xroad-confclient"
;;
"op-monitor-daemon")
jar_path="$XROAD_HOME/src/op-monitor-daemon/build/libs/op-monitor-daemon-1.0.jar"
service_name="all"
;;
"cs-admin-service")
jar_path="$XROAD_HOME/src/central-server/admin-service/application/build/libs/centralserver-admin-service-1.0.jar"
service_name="xroad-center"
;;
"cs-management-service")
jar_path="$XROAD_HOME/src/central-server/management-service/application/build/libs/centralserver-management-service-1.0.jar"
service_name="xroad-center-management-service"
;;
"cs-registration-service")
jar_path="$XROAD_HOME/src/central-server/registration-service/build/libs/centralserver-registration-service-1.0.jar"
service_name="xroad-center-registration-service"
;;
*)
echo "Unknown module: $module_name"
return 1
;;
esac

for container in "${containers[@]}"; do
docker cp "$jar_path" "$container:/usr/share/xroad/jlib/"
docker exec -it "$container" supervisorctl restart "$service_name"
done
}

set -o xtrace

case $1 in
"proxy" | "messagelog-addon" | "metaservice-addon" | "proxy-ui-api" | "signer" | "configuration-client" | "op-monitor-daemon" | "edc")
deploy_module "$1" "xrd-dev-stack-ss0-1" "xrd-dev-stack-ss1-1"
;;
"cs-admin-service" | "cs-management-service" | "cs-registration-service")
deploy_module "$1" "xrd-dev-stack-cs-1"
;;
*)
echo "Usage: $0 [modulename] [host]"
exit 1
;;
esac

set +o xtrace
52 changes: 52 additions & 0 deletions Docker/xrd-dev-stack/tools/dev.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/bash

usage="
./dev.sh [-m <string>] [-b] [-d] [-h]
This script builds and/or deploys given module to docker container. By default all tests are disabled.
Options:
-m => Module. proxy | proxy-ui-api
-b => Build
-d => Deploy
-h => Help
Examples:
./dev.sh -bdm proxy => Builds proxy.jar and deploys (moves) it to container and restart processes
"

# Set working directory
cd "$XROAD_HOME"/Docker/xrd-dev-stack/tools

BUILD=false
DEPLOY=false

# If s -option is provided find source packages from s3 bucket with given argument
while getopts ":m:bdh" opt; do
case $opt in
b) BUILD=true ;;
d) DEPLOY=true ;;
m) MODULE=${OPTARG} ;;
h)
printf "$usage"
exit 0
;;
*)
printf "$usage"
exit
;;
esac
done
shift $((OPTIND -1))

if [ "$BUILD" = true ] ; then
echo "Building module $MODULE"
source build.sh $MODULE
fi

if [ "$DEPLOY" = true ] ; then
echo "Deploying module $MODULE"
source deploy.sh $MODULE
fi
4 changes: 3 additions & 1 deletion src/security-server/e2e-test/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ tasks.register('e2eTest', Test) {
if (project.hasProperty('e2eTestISSOAPImage')) {
systemTestArgs += "-Dtest-automation.custom.issoap-image=" + project.getProperty('e2eTestISSOAPImage')
}

if (project.hasProperty('e2eTestUseCustomEnv')) {
systemTestArgs += "-Dtest-automation.custom.use-custom-env=" + project.getProperty('e2eTestUseCustomEnv')
}
jvmArgs systemTestArgs

maxHeapSize("256m")
Expand Down

0 comments on commit df02e22

Please sign in to comment.