diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index c24c121b1..b372277a0 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -5,17 +5,16 @@ name: Java CI with Gradle on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: build: - runs-on: ubuntu-latest strategy: matrix: - java: [ '17' ] + java: ["17"] steps: - uses: actions/checkout@v4 @@ -23,9 +22,32 @@ jobs: uses: actions/setup-java@v4 with: java-version: ${{matrix.java}} - distribution: 'adopt' + distribution: "adopt" cache: maven - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Build with Gradle run: ./gradlew build + + # Below are added codes + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: "17" + distribution: "adopt" + - name: Run tests + run: ./gradlew test + + deploy: + runs-on: self-hosted # Use your own machine for deploying + + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Deploy to Vagrant VM + run: | + vagrant up --provision diff --git a/.vagrant/machines/default/virtualbox/action_provision b/.vagrant/machines/default/virtualbox/action_provision new file mode 100644 index 000000000..8a8b7a899 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/action_provision @@ -0,0 +1 @@ +1.5:558bbbdc-672d-4236-b18d-0747cd5fbeaf \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/action_set_name b/.vagrant/machines/default/virtualbox/action_set_name new file mode 100644 index 000000000..355d3ffd5 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/action_set_name @@ -0,0 +1 @@ +1745624815 \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/box_meta b/.vagrant/machines/default/virtualbox/box_meta new file mode 100644 index 000000000..f4297f0ef --- /dev/null +++ b/.vagrant/machines/default/virtualbox/box_meta @@ -0,0 +1 @@ +{"name":"ubuntu/bionic64","version":"20230607.0.5","provider":"virtualbox","directory":"boxes/ubuntu-VAGRANTSLASH-bionic64/20230607.0.5/virtualbox"} \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/creator_uid b/.vagrant/machines/default/virtualbox/creator_uid new file mode 100644 index 000000000..c22708346 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/creator_uid @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/id b/.vagrant/machines/default/virtualbox/id new file mode 100644 index 000000000..482b8e564 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/id @@ -0,0 +1 @@ +558bbbdc-672d-4236-b18d-0747cd5fbeaf \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/index_uuid b/.vagrant/machines/default/virtualbox/index_uuid new file mode 100644 index 000000000..e971e5dac --- /dev/null +++ b/.vagrant/machines/default/virtualbox/index_uuid @@ -0,0 +1 @@ +400cd81ad83347cf828ce0bd43022163 \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/private_key b/.vagrant/machines/default/virtualbox/private_key new file mode 100644 index 000000000..205453936 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/private_key @@ -0,0 +1,8 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAA +AAtzc2gtZWQyNTUxOQAAACBNkoyert5NF60C2rjOy+AILyPoPkGR2q4Fc/Om +nfAeXQAAAJCq/MI+qvzCPgAAAAtzc2gtZWQyNTUxOQAAACBNkoyert5NF60C +2rjOy+AILyPoPkGR2q4Fc/OmnfAeXQAAAED6zsQ7eTXA+yBDkw3/0A65h6q3 +y/LQartCCPYFBb+vC02SjJ6u3k0XrQLauM7L4AgvI+g+QZHargVz86ad8B5d +AAAAB3ZhZ3JhbnQBAgMEBQY= +-----END OPENSSH PRIVATE KEY----- diff --git a/.vagrant/machines/default/virtualbox/synced_folders b/.vagrant/machines/default/virtualbox/synced_folders new file mode 100644 index 000000000..37246f821 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/synced_folders @@ -0,0 +1 @@ +{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/HP/SCC Practical/spring-petclinic","disabled":false,"__vagrantfile":true}}} \ No newline at end of file diff --git a/.vagrant/machines/default/virtualbox/vagrant_cwd b/.vagrant/machines/default/virtualbox/vagrant_cwd new file mode 100644 index 000000000..fda7ec558 --- /dev/null +++ b/.vagrant/machines/default/virtualbox/vagrant_cwd @@ -0,0 +1 @@ +C:/Users/HP/SCC Practical/spring-petclinic \ No newline at end of file diff --git a/.vagrant/rgloader/loader.rb b/.vagrant/rgloader/loader.rb new file mode 100644 index 000000000..b6c81bf31 --- /dev/null +++ b/.vagrant/rgloader/loader.rb @@ -0,0 +1,12 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: BUSL-1.1 + +# This file loads the proper rgloader/loader.rb file that comes packaged +# with Vagrant so that encoded files can properly run with Vagrant. + +if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] + require File.expand_path( + "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) +else + raise "Encoded files can't be read outside of the Vagrant installer." +end diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 000000000..744737c3f --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,48 @@ +Vagrant.configure("2") do |config| + # Use the ubuntu/bionic64 box + config.vm.box = "ubuntu/bionic64" + config.vm.boot_timeout = 600000 + + # Configuring VirtualBox provider settings + config.vm.provider "virtualbox" do |vb| + vb.name = "MyVB" + vb.cpus = 2 + vb.memory = "2048" + end + + # Configuring VirtualBox network settings + config.vm.network "forwarded_port", guest: 8080, host: 8086 + + # Configuring VirtualBox folder settings + config.vm.synced_folder ".", "/home/vagrant/petclinic" + + # Provisioning with a shell script to run the JAR file + config.vm.provision "shell", inline: <<-SHELL + apt update + apt install -y openjdk-17-jdk git unzip + + APP_DIR="/home/vagrant/petclinic" + REPO_URL="https://github.com/yiting68/spring-petclinic.git" + JAR_NAME="spring-petclinic-3.4.0.jar" + SERVICE_NAME="petclinic" + + # Clone Spring PetClinic project if does not exist + if [ ! -d "$APP_DIR/.git" ]; then + git clone "$REPO_URL" "$APP_DIR" + # Pull latest changes if project already exists + else + cd "$APP_DIR" + git pull + fi + + # Navigate to the project directory + cd "$APP_DIR" + + # Build the JAR file + ./gradlew build + + # Run the JAR file + nohup java -jar build/libs/$JAR_NAME > $APP_DIR/app.log 2>&1 & + + SHELL +end \ No newline at end of file diff --git a/src/main/resources/messages/messages.properties b/src/main/resources/messages/messages.properties index 173417a10..8d73c1bed 100644 --- a/src/main/resources/messages/messages.properties +++ b/src/main/resources/messages/messages.properties @@ -1,8 +1,8 @@ -welcome=Welcome +welcome=Welcome to Spring Petclinic required=is required notFound=has not been found duplicate=is already in use nonNumeric=must be all numeric duplicateFormSubmission=Duplicate form submission is not allowed typeMismatch.date=invalid date -typeMismatch.birthDate=invalid date +typeMismatch.birthDate=invalid date \ No newline at end of file diff --git a/ubuntu-bionic-18.04-cloudimg-console.log b/ubuntu-bionic-18.04-cloudimg-console.log new file mode 100644 index 000000000..e69de29bb