From 3ec2a9331052176cceb6c7813ba4432ee3ab0c17 Mon Sep 17 00:00:00 2001 From: Amit Kumar Nandi <11887616+aamitn@users.noreply.github.com> Date: Sat, 17 Feb 2024 19:27:14 +0530 Subject: [PATCH] github actions support --- installers/install.bat | 137 ++++++++++++------ pom.xml | 14 +- src/main/resources/log4j2.xml | 16 ++ .../WEB-INF/jboss-deployment-structure.xml | 10 ++ src/main/webapp/WEB-INF/jboss-web.xml | 5 + 5 files changed, 136 insertions(+), 46 deletions(-) create mode 100644 src/main/resources/log4j2.xml create mode 100644 src/main/webapp/WEB-INF/jboss-deployment-structure.xml create mode 100644 src/main/webapp/WEB-INF/jboss-web.xml diff --git a/installers/install.bat b/installers/install.bat index c704e38..2bb8e77 100644 --- a/installers/install.bat +++ b/installers/install.bat @@ -1,12 +1,38 @@ @echo off -setlocal enabledelayedexpansion REM Set Tomcat and URL variables set "TOMCAT_VERSION=10.1.9" set "TOMCAT_URL=https://archive.apache.org/dist/tomcat/tomcat-10/v%TOMCAT_VERSION%/bin/apache-tomcat-%TOMCAT_VERSION%-windows-x64.zip" -set "WAR_URL=https://github.com/aamitn/URLShortener/releases/download/WAR/shortener.war" +set "WAR_URL=https://github.com/aamitn/URLShortener/releases/download/final/shortener.war" set "SQL_FILE_URL=https://github.com/aamitn/URLShortener/raw/master/create.sql" set "SERVER_XML_URL=https://raw.githubusercontent.com/aamitn/URLShortener/master/server.xml" +REM Set WildFly and URL variables +set "WILDFLY_VERSION=31.0.0.Final" +set "WILDFLY_URL=https://github.com/wildfly/wildfly/releases/download/%WILDFLY_VERSION%/wildfly-%WILDFLY_VERSION%.zip" +set "WAR_URL=https://github.com/aamitn/URLShortener/releases/download/final/shortener.war" + + +setlocal enabledelayedexpansion + +REM Ask the user for deployment target +echo Choose the deployment target: +echo 1. Tomcat +echo 2. WildFly +set /p DEPLOYMENT_TARGET=Enter the number (default is Tomcat): + +REM Set default deployment target to Tomcat if user input is empty +if not defined DEPLOYMENT_TARGET set "DEPLOYMENT_TARGET=1" + +REM Function to download the WAR file +:download_war_file +echo Downloading shortener.war... +curl -LJO "%WAR_URL%" + +REM Function to deploy the WAR file +:deploy_war +echo Deploying shortener.war to %DEPLOYMENT_TARGET%... +if "%DEPLOYMENT_TARGET%"=="1" ( +setlocal enabledelayedexpansion REM Function to download and extract Tomcat :download_and_extract_tomcat @@ -15,10 +41,6 @@ curl -O "%TOMCAT_URL%" PowerShell Expand-Archive "apache-tomcat-%TOMCAT_VERSION%-windows-x64.zip" -DestinationPath . del "apache-tomcat-%TOMCAT_VERSION%-windows-x64.zip" -REM Function to download the WAR file -:download_war_file -echo Downloading shortener.war... -curl -LJO "%WAR_URL%" REM Function to configure Tomcat and deploy the WAR file :configure_and_deploy @@ -39,64 +61,95 @@ echo Running Tomcat server... cd "apache-tomcat-%TOMCAT_VERSION%\bin" call startup.bat REM Wait for Tomcat to start (adjust sleep time as needed) -timeout /t 20 /nobreak +timeout /t 30 /nobreak call shutdown.bat timeout /t 2 /nobreak call startup.bat cd .. cd .. -REM Main Script Execution -if "%OS%"=="Windows_NT" ( - call :download_and_install_mariadb +) else if "%DEPLOYMENT_TARGET%"=="2" ( +@echo off +setlocal enabledelayedexpansion + + +REM Function to download and extract WildFly +:download_and_extract_wildfly +echo Downloading WildFly... +curl -LJO "%WILDFLY_URL%" +PowerShell Expand-Archive "wildfly-%WILDFLY_VERSION%.zip" -DestinationPath . +del "wildfly-%WILDFLY_VERSION%.zip" + + + +REM Function to deploy the WAR file +:deploy_war +echo Deploying shortener.war to WildFly... +copy shortener.war "wildfly-%WILDFLY_VERSION%\standalone\deployments\" + +REM Run WildFly server +:run_wildfly +echo Running WildFly... +cd "wildfly-%WILDFLY_VERSION%\bin" +dir +start standalone.bat -c standalone-full.xml + + +echo WildFly deployment completed successfully! +cd.. +cd.. +timeout /t 3 /nobreak + ) else ( - echo Unsupported operating system. + echo Invalid deployment target selected. exit /b 1 ) -echo Local deployment completed successfully! -exit /b 0 + +echo Deployment Stage 1 Done + REM Function to download and install MariaDB -:download_and_install_mariadb -echo Downloading MariaDB installer... -curl -O "https://mirror.docker.ru/mariadb//mariadb-11.4.0/winx64-packages/mariadb-11.4.0-winx64.zip" +REM Check if MariaDB is already installed +if not exist mariadb-11.4.0-winx64 ( + echo Downloading MariaDB installer... + curl -O "https://mirrors.aliyun.com/mariadb//mariadb-11.4.0/winx64-packages/mariadb-11.4.0-winx64.zip" -echo Installing MariaDB... -PowerShell Expand-Archive "mariadb-11.4.0-winx64.zip" -DestinationPath . -del "mariadb-11.4.0-winx64.zip" + echo Installing MariaDB... + PowerShell Expand-Archive "mariadb-11.4.0-winx64.zip" -DestinationPath . + del "mariadb-11.4.0-winx64.zip" +) cd mariadb-11.4.0-winx64/bin -cd.. -cd.. - @echo SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234qwer');> dbinit.txt +cd.. +cd.. -REM Get the current directory -set "CURRENT_DIR=%CD%" - -REM Create db.bat script for database initialization -echo timeout /t 1 /nobreak > db.bat -echo cd mariadb-11.4.0-winx64/bin >> db.bat -echo mysql -u root -p1234qwer -e "CREATE DATABASE IF NOT EXISTS shortener;" >> db.bat -echo curl -LJO "https://github.com/aamitn/URLShortener/raw/master/create.sql" >> db.bat -echo mysql -u root -p1234qwer ^< create.sql >> db.bat -echo mysql -u root -p1234qwer -e "SHOW DATABASES;" >> db.bat -echo mysql -u root -p1234qwer -e "USE shortener" >> db.bat -echo mysql -u root -p1234qwer -e "SELECT * FROM shortener;" >> db.bat -echo del create.sql >> db.bat -echo echo Deployed Successfully... >> db.bat -echo start "" http://localhost:8080 >> db.bat -echo exit /b 0 >> db.bat - -REM Start the db.bat script -start db.bat REM Navigate to mariadb-11.4.0-winx64/bin cd mariadb-11.4.0-winx64/bin +REM Get the current directory +set "CURRENT_DIR=%CD%" + REM Initialize DB call mariadb-install-db.exe REM Run MariaDB server with the init file -call mysqld.exe --console --init-file="%CURRENT_DIR%\\dbinit.txt" +start mysqld.exe --console --init-file="%CURRENT_DIR%\\dbinit.txt" + +REM Create DB +timeout /t 1 /nobreak +mysql -u root -p1234qwer -e "CREATE DATABASE IF NOT EXISTS shortener;" +curl -LJO "https://github.com/aamitn/URLShortener/raw/master/create.sql" +mysql -u root -p1234qwer < create.sql +mysql -u root -p1234qwer -e "SHOW ENGINE PERFORMANCE_SCHEMA STATUS;SHOW ENGINE INNODB STATUS;" +mysql -u root -p1234qwer -e "SHOW DATABASES;" +mysql -u root -p1234qwer -e "USE shortener; SHOW TABLES; SHOW TABLE STATUS\G;" +del create.sql + +REM start browser +echo Application Deployed Successfully... +start "" http://localhost:8080 +timeout /t 20 /nobreak +exit /b diff --git a/pom.xml b/pom.xml index f37b485..d7bff59 100644 --- a/pom.xml +++ b/pom.xml @@ -59,15 +59,21 @@ org.springframework.boot spring-boot-starter-security - + org.springframework.boot - spring-boot-starter-logging + spring-boot-starter-log4j2 - + org.springframework.boot spring-boot-starter + + + org.springframework.boot + spring-boot-starter-logging + + @@ -86,7 +92,7 @@ org.jetbrains annotations - RELEASE + 24.1.0 compile diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..d3120cd --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jboss-deployment-structure.xml b/src/main/webapp/WEB-INF/jboss-deployment-structure.xml new file mode 100644 index 0000000..493cc8e --- /dev/null +++ b/src/main/webapp/WEB-INF/jboss-deployment-structure.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jboss-web.xml b/src/main/webapp/WEB-INF/jboss-web.xml new file mode 100644 index 0000000..d5ed921 --- /dev/null +++ b/src/main/webapp/WEB-INF/jboss-web.xml @@ -0,0 +1,5 @@ + + + / + default-host + \ No newline at end of file