Create Build and Run for first time.bat

This commit is contained in:
Joshua Hare 2025-04-17 18:08:55 +10:00
parent 448e35635f
commit afe9f22379

View File

@ -0,0 +1,128 @@
@echo off
setlocal enabledelayedexpansion
REM --- Configuration ---
set REPO_URL=https://github.com/hapifhir/hapi-fhir-jpaserver-starter.git
set CLONE_DIR=hapi-fhir-jpaserver
set SOURCE_CONFIG_DIR=hapi-fhir-setup
set CONFIG_FILE=application.yaml
REM --- Define Paths ---
REM Source path assumes 'hapi-fhir-setup' directory is in the same parent directory as this script
set SOURCE_CONFIG_PATH=..\%SOURCE_CONFIG_DIR%\target\classes\%CONFIG_FILE%
REM Destination path inside the cloned directory's build output
set DEST_CONFIG_PATH=%CLONE_DIR%\target\classes\%CONFIG_FILE%
echo Starting the build and run process...
echo.
REM --- Step 0: Clean up previous clone (optional, prevents clone error if dir exists) ---
echo Checking for existing directory: %CLONE_DIR%
if exist "%CLONE_DIR%" (
echo Found existing directory, removing it...
rmdir /s /q "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to remove existing directory: %CLONE_DIR%
goto :error
)
echo Existing directory removed.
) else (
echo Directory does not exist, proceeding with clone.
)
echo.
REM --- Step 1: Clone the HAPI FHIR server repository ---
echo Cloning repository: %REPO_URL% into %CLONE_DIR%...
git clone "%REPO_URL%" "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to clone repository. Check Git installation and network connection.
goto :error
)
echo Repository cloned successfully.
echo.
REM --- Step 2: Navigate into the cloned directory ---
echo Changing directory to %CLONE_DIR%...
cd "%CLONE_DIR%"
if errorlevel 1 (
echo ERROR: Failed to change directory to %CLONE_DIR%.
goto :error
)
echo Current directory: %CD%
echo.
REM --- Step 3: Build the HAPI server using Maven ---
echo Building HAPI server with Maven (this might take a while)...
REM Ensure mvn is in your system PATH
mvn clean package -DskipTests=true -Pboot
if errorlevel 1 (
echo ERROR: Maven build failed. Check Maven installation and project configuration.
cd ..
goto :error
)
echo Maven build completed successfully.
echo.
REM --- Step 4: Copy the configuration file ---
REM Assumes the source file exists at ..\hapi-fhir-setup\target\classes\application.yaml relative to the script's location
REM Copies it into the target\classes directory created by the Maven build.
echo Copying configuration file...
echo Source: %SOURCE_CONFIG_PATH%
echo Destination: target\classes\%CONFIG_FILE%
xcopy "%SOURCE_CONFIG_PATH%" "target\classes\" /Y /I
if errorlevel 1 (
echo WARNING: Failed to copy configuration file. Check if the source file exists at the expected location (%SOURCE_CONFIG_PATH%). The script will continue, but the server might use default configuration.
REM Decide if this should be a fatal error (goto :error) or just a warning
REM goto :error
) else (
echo Configuration file copied successfully.
)
echo.
REM --- Step 5: Navigate back to the parent directory ---
echo Changing directory back to the parent directory...
cd ..
if errorlevel 1 (
echo ERROR: Failed to change back to the parent directory.
goto :error
)
echo Current directory: %CD%
echo.
REM --- Step 6: Build Docker images ---
echo Building Docker images (using docker-compose)...
REM Ensure docker-compose is in your system PATH
docker-compose build --no-cache
if errorlevel 1 (
echo ERROR: Docker Compose build failed. Check Docker installation and docker-compose.yml file.
goto :error
)
echo Docker images built successfully.
echo.
REM --- Step 7: Start Docker containers ---
echo Starting Docker containers in detached mode (using docker-compose)...
docker-compose up -d
if errorlevel 1 (
echo ERROR: Docker Compose up failed. Check Docker installation and container configurations.
goto :error
)
echo Docker containers started successfully.
echo.
echo ====================================
echo Script finished successfully!
echo ====================================
goto :eof
:error
echo ------------------------------------
echo An error occurred. Script aborted.
echo ------------------------------------
pause
exit /b 1
:eof
echo Script execution finished.
pause