From c3ab6f3fe4e2dbf062cbea43f1c238f6a97355ea Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev <33765600+VladoKat@users.noreply.github.com> Date: Thu, 27 Jul 2023 16:42:28 +0300 Subject: [PATCH 01/59] feature-ci-cd/ introduce maven.yml file for ci-cd --- .github/workflows/maven.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/maven.yml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 00000000..50efebcf --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,35 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java CI with Maven + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ "*" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Build with Maven + run: mvn -B package --file pom.xml + + # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive + - name: Update dependency graph + uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 From bb47a5a9788c8480f7ebdc9c8450604d025f9cb3 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 27 Jul 2023 16:52:44 +0300 Subject: [PATCH 02/59] feature-ci-cd/ remove update dependency graph from action --- .github/workflows/maven.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 50efebcf..08849ab0 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -28,8 +28,4 @@ jobs: distribution: 'temurin' cache: maven - name: Build with Maven - run: mvn -B package --file pom.xml - - # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive - - name: Update dependency graph - uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 + run: mvn -B package --file pom.xml \ No newline at end of file From ec15baea69d6db24793a2e3a210668dde2c687c4 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 27 Jul 2023 17:01:26 +0300 Subject: [PATCH 03/59] feature-ci-cd/ change name and maven command --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 08849ab0..92ef617c 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -6,7 +6,7 @@ # separate terms of service, privacy policy, and support # documentation. -name: Java CI with Maven +name: Build and test on: push: @@ -28,4 +28,4 @@ jobs: distribution: 'temurin' cache: maven - name: Build with Maven - run: mvn -B package --file pom.xml \ No newline at end of file + run: mvn clean install pom.xml \ No newline at end of file From 080d0dc30cb43db52fd963f2dd90c2dbc7d53f1c Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 27 Jul 2023 17:05:11 +0300 Subject: [PATCH 04/59] feature-ci-cd/ fix mvn command --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 92ef617c..6c74d0a5 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -28,4 +28,4 @@ jobs: distribution: 'temurin' cache: maven - name: Build with Maven - run: mvn clean install pom.xml \ No newline at end of file + run: mvn clean install --file pom.xml \ No newline at end of file From adc3512b3a456729779b4ef15187ba90cdef12d6 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Fri, 28 Jul 2023 16:10:15 +0300 Subject: [PATCH 05/59] feature-ci-cd/ dockerize spring-boot app --- .gitignore | 2 +- docker-compose.yml | 21 ------------ Dockerfile => docker/Dockerfile_DB | 0 docker/Dockerfile_app | 3 ++ docker/docker-compose.yml | 39 +++++++++++++++++++++++ src/main/resources/application.properties | 2 +- 6 files changed, 44 insertions(+), 23 deletions(-) delete mode 100644 docker-compose.yml rename Dockerfile => docker/Dockerfile_DB (100%) create mode 100644 docker/Dockerfile_app create mode 100644 docker/docker-compose.yml diff --git a/.gitignore b/.gitignore index 64fdbd83..99d57fb1 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,7 @@ build/ build/ # Spring Boot properties -.env +docker/.env pom.xml.tag pom.xml.releaseBackup diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 579293b0..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3.8' -services: - db: - container_name: postgres - image: jms-db - build: - context: . - dockerfile: Dockerfile - restart: always - environment: - POSTGRES_DB: ${JMS_DATABASE_NAME} - POSTGRES_USER: ${JMS_DATABASE_USER} - POSTGRES_PASSWORD: ${JMS_DATABASE_PASSWORD} - volumes: - - postgres_data:/var/lib/postgresql/data - ports: - - "5432:5432" - -volumes: - postgres_data: - diff --git a/Dockerfile b/docker/Dockerfile_DB similarity index 100% rename from Dockerfile rename to docker/Dockerfile_DB diff --git a/docker/Dockerfile_app b/docker/Dockerfile_app new file mode 100644 index 00000000..9604150d --- /dev/null +++ b/docker/Dockerfile_app @@ -0,0 +1,3 @@ +FROM amazoncorretto:17-alpine-jdk + +ENTRYPOINT ["java", "-jar", "/jar/app.jar"] \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..344058e5 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3.8' +name: jms-db-and-app +services: + app: + image: jms-app + build: + context: . + dockerfile: Dockerfile_app + container_name: app + depends_on: + - db + environment: + SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 + JMS_DATABASE_NAME: ${JMS_DATABASE_NAME} + JMS_DATABASE_USER: ${JMS_DATABASE_USER} + JMS_DATABASE_PASSWORD: ${JMS_DATABASE_PASSWORD} + ports: + - "8080:8080" + volumes: + - ../target/jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar + db: + container_name: postgres + image: jms-db + build: + context: . + dockerfile: Dockerfile_DB + restart: always + environment: + POSTGRES_DB: ${JMS_DATABASE_NAME} + POSTGRES_USER: ${JMS_DATABASE_USER} + POSTGRES_PASSWORD: ${JMS_DATABASE_PASSWORD} + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5432:5432" + +volumes: + postgres_data: + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e9b9728b..b78aad66 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 +spring.datasource.url=jdbc:postgresql://db:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 spring.datasource.username=${JMS_DATABASE_USER} spring.datasource.password=${JMS_DATABASE_PASSWORD} From 68a0e8cc2c3a828681ea8453bc93154797c7ea28 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 31 Jul 2023 16:16:46 +0300 Subject: [PATCH 06/59] feature-ci-cd/ action to push to aws implementation --- .../{maven.yml => build-and-deploy.yml} | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) rename .github/workflows/{maven.yml => build-and-deploy.yml} (61%) diff --git a/.github/workflows/maven.yml b/.github/workflows/build-and-deploy.yml similarity index 61% rename from .github/workflows/maven.yml rename to .github/workflows/build-and-deploy.yml index 6c74d0a5..cc70cc18 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/build-and-deploy.yml @@ -14,6 +14,9 @@ on: pull_request: branches: [ "*" ] +env: + AWS_REGION: eu-central-1 + jobs: build: @@ -21,6 +24,14 @@ jobs: steps: - uses: actions/checkout@v3 + name: Checkout repository + + - uses: aws-actions/configure-aws-credentials@v2 + with: + role-to-assume: ${{ secrets.IAMROLE_GITHUB }} + role-session-name: GithubAction + aws-region: $AWS_REGION + - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -28,4 +39,9 @@ jobs: distribution: 'temurin' cache: maven - name: Build with Maven - run: mvn clean install --file pom.xml \ No newline at end of file + run: mvn clean install --file pom.xml + + - name: Push jar and docker files to AWS S3 + run: | + cp ${{ env.applicationfolder }}/target/*.jar ${{ env.applicationfolder }}/docker + aws s3 cp --recursive docker s3://${{ env.S3BUCKET }}/ \ No newline at end of file From 70ecc3ae1eb38985f95ea54171681c7ad266818c Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 31 Jul 2023 16:18:42 +0300 Subject: [PATCH 07/59] feature-ci-cd/ remove aws-region env variable --- .github/workflows/build-and-deploy.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index cc70cc18..b8dab966 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -14,9 +14,6 @@ on: pull_request: branches: [ "*" ] -env: - AWS_REGION: eu-central-1 - jobs: build: @@ -30,7 +27,7 @@ jobs: with: role-to-assume: ${{ secrets.IAMROLE_GITHUB }} role-session-name: GithubAction - aws-region: $AWS_REGION + aws-region: eu-central-1 - name: Set up JDK 17 uses: actions/setup-java@v3 From 6b679a4f2d274a1456e145c29a1c8485181a9969 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 31 Jul 2023 16:25:31 +0300 Subject: [PATCH 08/59] feature-ci-cd/hardcode aws role --- .github/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index b8dab966..6f51ea6c 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -25,7 +25,7 @@ jobs: - uses: aws-actions/configure-aws-credentials@v2 with: - role-to-assume: ${{ secrets.IAMROLE_GITHUB }} + role-to-assume: arn:aws:iam::364149455845:role/GithubAction role-session-name: GithubAction aws-region: eu-central-1 From ed82a9796392c3f3351263380ea5caa0e7999d50 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 31 Jul 2023 16:37:54 +0300 Subject: [PATCH 09/59] feature-ci-cd/ add permissions --- .github/workflows/build-and-deploy.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 6f51ea6c..2f1b7a0a 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -14,6 +14,13 @@ on: pull_request: branches: [ "*" ] +env: + AWS_REGION : eu-central-1 + +permissions: + id-token: write + contents: read + jobs: build: @@ -27,7 +34,7 @@ jobs: with: role-to-assume: arn:aws:iam::364149455845:role/GithubAction role-session-name: GithubAction - aws-region: eu-central-1 + aws-region: ${{ env.AWS_REGION }} - name: Set up JDK 17 uses: actions/setup-java@v3 From a750c599dae661950a681de25ffae1501e0c3a64 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 31 Jul 2023 16:41:48 +0300 Subject: [PATCH 10/59] feature-ci-cd/ change to write permissions --- .github/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 2f1b7a0a..877bcc80 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -19,7 +19,7 @@ env: permissions: id-token: write - contents: read + contents: write jobs: build: From d0ef73ed48c87a9111c801e925656576322b54b3 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 31 Jul 2023 16:51:05 +0300 Subject: [PATCH 11/59] feature-ci-cd/ use secrets for bucket and role-to-assume --- .github/workflows/build-and-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 877bcc80..09a6bfbc 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -32,7 +32,7 @@ jobs: - uses: aws-actions/configure-aws-credentials@v2 with: - role-to-assume: arn:aws:iam::364149455845:role/GithubAction + role-to-assume: ${{ secrets.IAMROLE_GITHUB }} role-session-name: GithubAction aws-region: ${{ env.AWS_REGION }} @@ -47,5 +47,5 @@ jobs: - name: Push jar and docker files to AWS S3 run: | - cp ${{ env.applicationfolder }}/target/*.jar ${{ env.applicationfolder }}/docker - aws s3 cp --recursive docker s3://${{ env.S3BUCKET }}/ \ No newline at end of file + cp ./target/*.jar ./docker + aws s3 cp --recursive docker s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file From 091e647768f7b7ee3b53d54aadb955d7d30fa518 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 1 Aug 2023 15:48:52 +0300 Subject: [PATCH 12/59] feature-ci-cd/ create docker zip folder --- .github/workflows/build-and-deploy.yml | 3 ++- docker/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 09a6bfbc..c577d72d 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -48,4 +48,5 @@ jobs: - name: Push jar and docker files to AWS S3 run: | cp ./target/*.jar ./docker - aws s3 cp --recursive docker s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file + zip -r docker.zip docker + aws s3 cp docker.zip s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 344058e5..a91a7530 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,7 +17,7 @@ services: ports: - "8080:8080" volumes: - - ../target/jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar + - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar db: container_name: postgres image: jms-db From cd14e590f2103efcc9c3f3aaff8f5f7b7b904b83 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 2 Aug 2023 15:30:15 +0300 Subject: [PATCH 13/59] feature-ci-cd/ add appspec.yml file for aws codedeploy --- .github/workflows/build-and-deploy.yml | 4 +- .gitignore | 2 +- aws/appspec.yml | 67 +++++++++++++++++++++++ {docker => aws/docker}/Dockerfile_DB | 0 {docker => aws/docker}/Dockerfile_app | 0 {docker => aws/docker}/docker-compose.yml | 0 aws/scripts/install_docker.sh | 1 + aws/scripts/start_docker.sh | 1 + aws/scripts/stop_docker_containers.sh | 2 + 9 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 aws/appspec.yml rename {docker => aws/docker}/Dockerfile_DB (100%) rename {docker => aws/docker}/Dockerfile_app (100%) rename {docker => aws/docker}/docker-compose.yml (100%) create mode 100755 aws/scripts/install_docker.sh create mode 100755 aws/scripts/start_docker.sh create mode 100755 aws/scripts/stop_docker_containers.sh diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index c577d72d..455a8520 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -47,6 +47,6 @@ jobs: - name: Push jar and docker files to AWS S3 run: | - cp ./target/*.jar ./docker - zip -r docker.zip docker + cp ./target/*.jar ./aws/docker + zip -r docker.zip aws aws s3 cp docker.zip s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 99d57fb1..5182e715 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,7 @@ build/ build/ # Spring Boot properties -docker/.env +aws/docker/.env pom.xml.tag pom.xml.releaseBackup diff --git a/aws/appspec.yml b/aws/appspec.yml new file mode 100644 index 00000000..b2b2fad5 --- /dev/null +++ b/aws/appspec.yml @@ -0,0 +1,67 @@ +# This is an appspec.yml template file for use with an EC2/On-Premises deployment in CodeDeploy. +# The lines in this template starting with the hashtag symbol are +# instructional comments and can be safely left in the file or +# ignored. +# For help completing this file, see the "AppSpec File Reference" in the +# "CodeDeploy User Guide" at +# https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html +version: 0.0 +# Specify "os: linux" if this revision targets Amazon Linux, +# Red Hat Enterprise Linux (RHEL), or Ubuntu Server +# instances. +# Specify "os: windows" if this revision targets Windows Server instances. +# (You cannot specify both "os: linux" and "os: windows".) +os: linux +# os: windows +# During the Install deployment lifecycle event (which occurs between the +# BeforeInstall and AfterInstall events), copy the specified files +# in "source" starting from the root of the revision's file bundle +# to "destination" on the Amazon EC2 instance. +# Specify multiple "source" and "destination" pairs if you want to copy +# from multiple sources or to multiple destinations. +# If you are not copying any files to the Amazon EC2 instance, then remove the +# "files" section altogether. A blank or incomplete "files" section +# may cause associated deployments to fail. + # If you are not running any commands on the Amazon EC2 instance, then remove + # the "hooks" section altogether. A blank or incomplete "hooks" section + # may cause associated deployments to fail. +hooks: + # For each deployment lifecycle event, specify multiple "location" entries + # if you want to run multiple scripts during that event. + # You can specify "timeout" as the number of seconds to wait until failing the deployment + # if the specified scripts do not run within the specified time limit for the + # specified event. For example, 900 seconds is 15 minutes. If not specified, + # the default is 1800 seconds (30 minutes). + # Note that the maximum amount of time that all scripts must finish executing + # for each individual deployment lifecycle event is 3600 seconds (1 hour). + # Otherwise, the deployment will stop and CodeDeploy will consider the deployment + # to have failed to the Amazon EC2 instance. Make sure that the total number of seconds + # that are specified in "timeout" for all scripts in each individual deployment + # lifecycle event does not exceed a combined 3600 seconds (1 hour). + # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, + # you can specify "runas" in an event to + # run as the specified user. For more information, see the documentation. + # If you are deploying to Windows Server instances, + # remove "runas" altogether. + # If you do not want to run any commands during a particular deployment + # lifecycle event, remove that event declaration altogether. Blank or + # incomplete event declarations may cause associated deployments to fail. + # During the ApplicationStop deployment lifecycle event, run the commands + # in the script specified in "location" starting from the root of the + # revision's file bundle. + ApplicationStop: + - location: scripts/stop_docker_containers.sh + timeout: 300 + runas: root + # During the BeforeInstall deployment lifecycle event, run the commands + # in the script specified in "location". + BeforeInstall: + - location: scripts/install_docker.sh + timeout: 300 + runas: root + # During the ApplicationStart deployment lifecycle event, run the commands + # in the script specified in "location". + ApplicationStart: + - location: scripts/start_docker.sh + timeout: 300 + runas: root \ No newline at end of file diff --git a/docker/Dockerfile_DB b/aws/docker/Dockerfile_DB similarity index 100% rename from docker/Dockerfile_DB rename to aws/docker/Dockerfile_DB diff --git a/docker/Dockerfile_app b/aws/docker/Dockerfile_app similarity index 100% rename from docker/Dockerfile_app rename to aws/docker/Dockerfile_app diff --git a/docker/docker-compose.yml b/aws/docker/docker-compose.yml similarity index 100% rename from docker/docker-compose.yml rename to aws/docker/docker-compose.yml diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh new file mode 100755 index 00000000..87444369 --- /dev/null +++ b/aws/scripts/install_docker.sh @@ -0,0 +1 @@ +yum install docker > ~/logs/install.log \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh new file mode 100755 index 00000000..0df60cfd --- /dev/null +++ b/aws/scripts/start_docker.sh @@ -0,0 +1 @@ +docker compose -f ../docker/docker-compose.yml up --build > ~/logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh new file mode 100755 index 00000000..f704e4d2 --- /dev/null +++ b/aws/scripts/stop_docker_containers.sh @@ -0,0 +1,2 @@ +docker compose -f ../docker/docker-compose.yml down > ~/logs/stop.log +docker compose -f ../docker/docker-compose.yml rm -f $(docker ps -a -q) >> ~/logs/stop.log From fdf93715db3d5a99cb04fa12eb185ed233c629f8 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 2 Aug 2023 15:49:44 +0300 Subject: [PATCH 14/59] feature-ci-cd/ change appspec to add files to ec2 --- aws/appspec.yml | 9 ++++++--- aws/scripts/install_docker.sh | 2 +- aws/scripts/start_docker.sh | 2 +- aws/scripts/stop_docker_containers.sh | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/aws/appspec.yml b/aws/appspec.yml index b2b2fad5..a701c5f4 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -25,6 +25,9 @@ os: linux # If you are not running any commands on the Amazon EC2 instance, then remove # the "hooks" section altogether. A blank or incomplete "hooks" section # may cause associated deployments to fail. +files: + - source: /docker/ + destination: /tmp hooks: # For each deployment lifecycle event, specify multiple "location" entries # if you want to run multiple scripts during that event. @@ -51,17 +54,17 @@ hooks: # revision's file bundle. ApplicationStop: - location: scripts/stop_docker_containers.sh - timeout: 300 + timeout: 180 runas: root # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". BeforeInstall: - location: scripts/install_docker.sh - timeout: 300 + timeout: 180 runas: root # During the ApplicationStart deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: - location: scripts/start_docker.sh - timeout: 300 + timeout: 180 runas: root \ No newline at end of file diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index 87444369..7063cf4c 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1 +1 @@ -yum install docker > ~/logs/install.log \ No newline at end of file +yum install docker > /logs/install.log \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 0df60cfd..836fd444 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1 +1 @@ -docker compose -f ../docker/docker-compose.yml up --build > ~/logs/startup.log \ No newline at end of file +docker compose -f /tmp/docker-compose.yml up --build > /logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index f704e4d2..44f6a402 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,2 +1,2 @@ -docker compose -f ../docker/docker-compose.yml down > ~/logs/stop.log -docker compose -f ../docker/docker-compose.yml rm -f $(docker ps -a -q) >> ~/logs/stop.log +docker compose -f /tmp/docker-compose.yml down > /logs/stop.log +docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log From e5ba34b2dcb7d5de1960f969fa6a299ae049f86f Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 2 Aug 2023 15:53:38 +0300 Subject: [PATCH 15/59] feature-ci-cd/ add bin/bash to .sh files in aws/scripts --- aws/scripts/install_docker.sh | 2 ++ aws/scripts/start_docker.sh | 2 ++ aws/scripts/stop_docker_containers.sh | 2 ++ 3 files changed, 6 insertions(+) diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index 7063cf4c..db42b48e 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1 +1,3 @@ +#!/bin/bash + yum install docker > /logs/install.log \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 836fd444..2f36cf7b 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1 +1,3 @@ +#!/bin/bash + docker compose -f /tmp/docker-compose.yml up --build > /logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index 44f6a402..b800716d 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,2 +1,4 @@ +#!/bin/bash + docker compose -f /tmp/docker-compose.yml down > /logs/stop.log docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log From 2f27ed87c282dc58ecb188485669b0bb2690d5be Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 2 Aug 2023 17:04:57 +0300 Subject: [PATCH 16/59] feature-ci-cd/ remove obsolete appspec lifecycle events --- aws/appspec.yml | 16 ++++++++-------- aws/scripts/install_docker.sh | 2 +- aws/scripts/start_docker.sh | 2 +- aws/scripts/stop_docker_containers.sh | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/aws/appspec.yml b/aws/appspec.yml index a701c5f4..30e45743 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -52,16 +52,16 @@ hooks: # During the ApplicationStop deployment lifecycle event, run the commands # in the script specified in "location" starting from the root of the # revision's file bundle. - ApplicationStop: - - location: scripts/stop_docker_containers.sh - timeout: 180 - runas: root +# ApplicationStop: +# - location: scripts/stop_docker_containers.sh +# timeout: 180 +# runas: root # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". - BeforeInstall: - - location: scripts/install_docker.sh - timeout: 180 - runas: root +# BeforeInstall: +# - location: scripts/install_docker.sh +# timeout: 180 +# runas: root # During the ApplicationStart deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index db42b48e..7a133a7b 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -yum install docker > /logs/install.log \ No newline at end of file +#yum install docker > /logs/install.log \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 2f36cf7b..ebe4ffac 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml up --build > /logs/startup.log \ No newline at end of file +docker compose -f /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index b800716d..31d0f72c 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,4 +1,4 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml down > /logs/stop.log -docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log +#docker compose -f /tmp/docker-compose.yml down > /logs/stop.log +#docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log From 68301d97b83723129b439e509c37bf6b24aff78a Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 2 Aug 2023 21:46:00 +0300 Subject: [PATCH 17/59] feature-ci-cd/ add lifecycle events to appspecs --- aws/appspec.yml | 16 ++++++++-------- aws/scripts/install_docker.sh | 2 +- aws/scripts/start_docker.sh | 2 +- aws/scripts/stop_docker_containers.sh | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/aws/appspec.yml b/aws/appspec.yml index 30e45743..a701c5f4 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -52,16 +52,16 @@ hooks: # During the ApplicationStop deployment lifecycle event, run the commands # in the script specified in "location" starting from the root of the # revision's file bundle. -# ApplicationStop: -# - location: scripts/stop_docker_containers.sh -# timeout: 180 -# runas: root + ApplicationStop: + - location: scripts/stop_docker_containers.sh + timeout: 180 + runas: root # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". -# BeforeInstall: -# - location: scripts/install_docker.sh -# timeout: 180 -# runas: root + BeforeInstall: + - location: scripts/install_docker.sh + timeout: 180 + runas: root # During the ApplicationStart deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index 7a133a7b..db42b48e 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -#yum install docker > /logs/install.log \ No newline at end of file +yum install docker > /logs/install.log \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index ebe4ffac..2f36cf7b 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file +docker compose -f /tmp/docker-compose.yml up --build > /logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index 31d0f72c..b800716d 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,4 +1,4 @@ #!/bin/bash -#docker compose -f /tmp/docker-compose.yml down > /logs/stop.log -#docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log +docker compose -f /tmp/docker-compose.yml down > /logs/stop.log +docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log From f2ceb9228469b924969e134e1a5d90f64511c1b0 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 2 Aug 2023 21:49:37 +0300 Subject: [PATCH 18/59] feature-ci-cd/ remove logging to files in ec2 --- aws/scripts/install_docker.sh | 2 +- aws/scripts/start_docker.sh | 2 +- aws/scripts/stop_docker_containers.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index db42b48e..fb3fc5e7 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -yum install docker > /logs/install.log \ No newline at end of file +yum install docker #> /logs/install.log \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 2f36cf7b..ebe4ffac 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml up --build > /logs/startup.log \ No newline at end of file +docker compose -f /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index b800716d..79703444 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,4 +1,4 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml down > /logs/stop.log -docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) >> /logs/stop.log +docker compose -f /tmp/docker-compose.yml down #> /logs/stop.log +docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) #>> /logs/stop.log From f05570d61978ec433e7c0d07f365c9c3ef7be99c Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 3 Aug 2023 01:12:47 +0300 Subject: [PATCH 19/59] feature-ci-cd/ make yum say yes --- aws/scripts/install_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index fb3fc5e7..00159742 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -yum install docker #> /logs/install.log \ No newline at end of file +yum install -y docker #> /logs/install.log \ No newline at end of file From e67145033438ce5aba5e9c5e02cfe50369279e89 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 3 Aug 2023 11:10:52 +0300 Subject: [PATCH 20/59] feature-ci-cd/ replace -f flag with --file in start_docker.sh --- aws/scripts/start_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index ebe4ffac..80385b34 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file +docker compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file From 81218306fb252de2925fe4fd57108b746bc77de6 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 3 Aug 2023 11:14:40 +0300 Subject: [PATCH 21/59] feature-ci-cd/ replace -f flag with --file in stop_docker_container.sh --- aws/scripts/stop_docker_containers.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index 79703444..2a343e9e 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,4 +1,4 @@ #!/bin/bash -docker compose -f /tmp/docker-compose.yml down #> /logs/stop.log -docker compose -f /tmp/docker-compose.yml rm -f $(docker ps -a -q) #>> /logs/stop.log +docker compose --file /tmp/docker-compose.yml down #> /logs/stop.log +docker compose --file /tmp/docker-compose.yml rm -f $(docker ps -a -q) #>> /logs/stop.log From 53bb02f1a48dbaccd0a3adcb169303a3617ed98d Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 3 Aug 2023 11:26:28 +0300 Subject: [PATCH 22/59] feature-ci-cd/ change stop docker command --- aws/scripts/stop_docker_containers.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index 2a343e9e..2348ad64 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,4 +1,3 @@ #!/bin/bash -docker compose --file /tmp/docker-compose.yml down #> /logs/stop.log -docker compose --file /tmp/docker-compose.yml rm -f $(docker ps -a -q) #>> /logs/stop.log +docker compose down --remove-orphans #>> /logs/stop.log From c03e099319e574b5b523e66aa151ff73ba526f12 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 3 Aug 2023 16:50:35 +0300 Subject: [PATCH 23/59] feature-ci-cd/ install docker-compose-plugin on startup --- aws/scripts/install_docker.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index 00159742..2e0ee65a 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1,3 +1,4 @@ #!/bin/bash -yum install -y docker #> /logs/install.log \ No newline at end of file +yum install -y docker #> /logs/install.log +yum install -y docker-compose-plugin \ No newline at end of file From dda97a56f1587eec991f020cea31d3142a55c14e Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 3 Aug 2023 17:56:44 +0300 Subject: [PATCH 24/59] feature-ci-cd/ replace docker compose with docker-compose --- aws/scripts/install_docker.sh | 3 ++- aws/scripts/start_docker.sh | 2 +- aws/scripts/stop_docker_containers.sh | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/aws/scripts/install_docker.sh b/aws/scripts/install_docker.sh index 2e0ee65a..245be4a1 100755 --- a/aws/scripts/install_docker.sh +++ b/aws/scripts/install_docker.sh @@ -1,4 +1,5 @@ #!/bin/bash yum install -y docker #> /logs/install.log -yum install -y docker-compose-plugin \ No newline at end of file +curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose \ No newline at end of file diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 80385b34..32ccde4f 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file +docker-compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index 2348ad64..ef668ca9 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker compose down --remove-orphans #>> /logs/stop.log +docker-compose down --remove-orphans #>> /logs/stop.log From 52c5c368411fa7629e8666d4e6a89cc449c85556 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sun, 6 Aug 2023 19:04:03 +0300 Subject: [PATCH 25/59] feature-ci-cd/ use buildspec to load secrets from aws --- aws/buildspec.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 aws/buildspec.yml diff --git a/aws/buildspec.yml b/aws/buildspec.yml new file mode 100644 index 00000000..f3387266 --- /dev/null +++ b/aws/buildspec.yml @@ -0,0 +1,9 @@ +version: 0.2 + +run-as: root + +env: + secrets-manager: + JMS_DATABASE_NAME: "JMS_DB_CREDS:JMS_DATABASE_NAME" + JMS_DATABASE_USER: "JMS_DB_CREDS:JMS_DATABASE_USER" + JMS_DATABASE_PASSWORD: "JMS_DB_CREDS:JMS_DATABASE_PASSWORD" From df69ad1e446cf853809a972eb906ee3f8308074b Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sun, 6 Aug 2023 19:30:20 +0300 Subject: [PATCH 26/59] feature-ci-cd/ remove buildspec.yml. add secrets fetching to start_docker.sh --- aws/buildspec.yml | 9 --------- aws/scripts/start_docker.sh | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 aws/buildspec.yml diff --git a/aws/buildspec.yml b/aws/buildspec.yml deleted file mode 100644 index f3387266..00000000 --- a/aws/buildspec.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: 0.2 - -run-as: root - -env: - secrets-manager: - JMS_DATABASE_NAME: "JMS_DB_CREDS:JMS_DATABASE_NAME" - JMS_DATABASE_USER: "JMS_DB_CREDS:JMS_DATABASE_USER" - JMS_DATABASE_PASSWORD: "JMS_DB_CREDS:JMS_DATABASE_PASSWORD" diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 32ccde4f..e869f1f4 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,3 +1,12 @@ #!/bin/bash +# Set the environment variables for your application +JMS_DATABASE_NAME=$(aws ssm get-parameter --name JMS_DATABASE_NAME --query "Parameter.Value" --output text) +JMS_DATABASE_USER=$(aws ssm get-parameter --name JMS_DATABASE_USER --query "Parameter.Value" --output text) +JMS_DATABASE_PASSWORD=$(aws ssm get-parameter --name JMS_DATABASE_PASSWORD --query "Parameter.Value" --output text) + +export JMS_DATABASE_NAME="$JMS_DATABASE_NAME" +export JMS_DATABASE_USER="$JMS_DATABASE_USER" +export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" + docker-compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file From b92769094746d9db20157ac71b0c09278e482d77 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sun, 6 Aug 2023 19:45:14 +0300 Subject: [PATCH 27/59] feature-ci-cd/ start docker daemon before reunning docker-compose --- aws/scripts/start_docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index e869f1f4..cdc52662 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -9,4 +9,5 @@ export JMS_DATABASE_NAME="$JMS_DATABASE_NAME" export JMS_DATABASE_USER="$JMS_DATABASE_USER" export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" +service docker start docker-compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file From 36ef27e597e2f9bb769ec07f3bc2c2bd08a6f4af Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sun, 6 Aug 2023 20:01:32 +0300 Subject: [PATCH 28/59] feature-ci-cd/ add --with-decryption flag to ssm parameters fetching --- aws/scripts/start_docker.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index cdc52662..7fe0c599 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -1,13 +1,13 @@ #!/bin/bash # Set the environment variables for your application -JMS_DATABASE_NAME=$(aws ssm get-parameter --name JMS_DATABASE_NAME --query "Parameter.Value" --output text) -JMS_DATABASE_USER=$(aws ssm get-parameter --name JMS_DATABASE_USER --query "Parameter.Value" --output text) -JMS_DATABASE_PASSWORD=$(aws ssm get-parameter --name JMS_DATABASE_PASSWORD --query "Parameter.Value" --output text) +JMS_DATABASE_NAME=$(aws ssm get-parameter --name JMS_DATABASE_NAME --query "Parameter.Value" --with-decryption --output text) +JMS_DATABASE_USER=$(aws ssm get-parameter --name JMS_DATABASE_USER --query "Parameter.Value" --with-decryption --output text) +JMS_DATABASE_PASSWORD=$(aws ssm get-parameter --name JMS_DATABASE_PASSWORD --query "Parameter.Value" --with-decryption --output text) export JMS_DATABASE_NAME="$JMS_DATABASE_NAME" export JMS_DATABASE_USER="$JMS_DATABASE_USER" export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" service docker start -docker-compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log \ No newline at end of file +docker-compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log From 1a5dcb0413c59617d08b57ceef15b5fca4b8aead Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 7 Aug 2023 16:11:23 +0300 Subject: [PATCH 29/59] feature-ci-cd/ run docker in background --- aws/scripts/start_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 7fe0c599..29138a04 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -10,4 +10,4 @@ export JMS_DATABASE_USER="$JMS_DATABASE_USER" export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" service docker start -docker-compose --file /tmp/docker-compose.yml up --build #> /logs/startup.log +docker-compose --file /tmp/docker-compose.yml up -d --build #> /logs/startup.log From 663f008d3cece123205a33349c103e479242e087 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 7 Aug 2023 16:13:09 +0300 Subject: [PATCH 30/59] feature-ci-cd/ add health check after deployment --- aws/appspec.yml | 5 +++++ aws/scripts/check_health.sh | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 aws/scripts/check_health.sh diff --git a/aws/appspec.yml b/aws/appspec.yml index a701c5f4..405f1401 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -66,5 +66,10 @@ hooks: # in the script specified in "location". ApplicationStart: - location: scripts/start_docker.sh + timeout: 180 + runas: root + + ValidateService: + - location: scripts/check_health.sh timeout: 180 runas: root \ No newline at end of file diff --git a/aws/scripts/check_health.sh b/aws/scripts/check_health.sh new file mode 100644 index 00000000..4d846219 --- /dev/null +++ b/aws/scripts/check_health.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# Wait for the application to start (you may need to adjust this based on your app startup time) +sleep 20 + +# Perform the health check +if curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/health | grep -q "200"; then + echo "Application is healthy." + exit 0 # Success +else + echo "Application health check failed." + exit 1 # Failure +fi From ceab0c5ac01d4b1de245df328ecc5fc065a5b8d8 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 8 Aug 2023 11:23:06 +0300 Subject: [PATCH 31/59] feature-ci-cd/ expose app to default https port -> 443 --- aws/docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index a91a7530..31203ab3 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -15,7 +15,7 @@ services: JMS_DATABASE_USER: ${JMS_DATABASE_USER} JMS_DATABASE_PASSWORD: ${JMS_DATABASE_PASSWORD} ports: - - "8080:8080" + - "8080:443" volumes: - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar db: From 0741d9214bfd9ebc34b65829ee54b4cce55061d9 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 8 Aug 2023 14:17:35 +0300 Subject: [PATCH 32/59] feature-ci-cd/ reverse app ports in docker-compose --- aws/docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 31203ab3..6aa0e597 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -15,7 +15,7 @@ services: JMS_DATABASE_USER: ${JMS_DATABASE_USER} JMS_DATABASE_PASSWORD: ${JMS_DATABASE_PASSWORD} ports: - - "8080:443" + - "443:8080" volumes: - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar db: From 5a62d8c7011450748f8d392ebb2759a038ff838a Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 8 Aug 2023 17:15:37 +0300 Subject: [PATCH 33/59] feature-ci-cd/ revert to exposing port 8080 --- aws/docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 6aa0e597..a91a7530 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -15,7 +15,7 @@ services: JMS_DATABASE_USER: ${JMS_DATABASE_USER} JMS_DATABASE_PASSWORD: ${JMS_DATABASE_PASSWORD} ports: - - "443:8080" + - "8080:8080" volumes: - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar db: From a83dffd9adf3ceb3da8e2c38960c1e28e920714b Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 8 Aug 2023 17:20:39 +0300 Subject: [PATCH 34/59] feature-ci-cd/ rename codedeploy zip file copied to s3 to backend_codedeploy --- .github/workflows/build-and-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 455a8520..4c02c23e 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -6,7 +6,7 @@ # separate terms of service, privacy policy, and support # documentation. -name: Build and test +name: Build and copy to S3 on: push: @@ -48,5 +48,5 @@ jobs: - name: Push jar and docker files to AWS S3 run: | cp ./target/*.jar ./aws/docker - zip -r docker.zip aws - aws s3 cp docker.zip s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file + zip -r backend_codedeploy.zip aws + aws s3 cp backend_codedeploy.zip s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file From 63a10d79cae2d758de85aa88a0d82d2fe4ca3a98 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 8 Aug 2023 23:43:54 +0300 Subject: [PATCH 35/59] feature-ci-cd/ change destination in appspec to /temp/be --- aws/appspec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/appspec.yml b/aws/appspec.yml index 405f1401..13cbf3df 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -27,7 +27,7 @@ os: linux # may cause associated deployments to fail. files: - source: /docker/ - destination: /tmp + destination: /tmp/be hooks: # For each deployment lifecycle event, specify multiple "location" entries # if you want to run multiple scripts during that event. From 568f24f844b8040e471ddd8166a319e9d78f2fa3 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Thu, 10 Aug 2023 16:34:12 +0300 Subject: [PATCH 36/59] feature-ci-cd/ change docker-compose file path in application start --- aws/scripts/start_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 29138a04..953868f7 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -10,4 +10,4 @@ export JMS_DATABASE_USER="$JMS_DATABASE_USER" export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" service docker start -docker-compose --file /tmp/docker-compose.yml up -d --build #> /logs/startup.log +docker-compose --file /tmp/be/docker-compose.yml up -d --build #> /logs/startup.log From bce7f80681e77bc1afc7826f87e5c5f814b2edde Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 28 Aug 2023 15:36:31 +0300 Subject: [PATCH 37/59] [feature-ci-cd] change cors.origin to elasticIp address --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b78aad66..28a1c96e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -8,4 +8,4 @@ spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect # Show all queries Hibernate executes in console spring.jpa.show-sql=true -cors.origins=http://localhost:3000 +cors.origins=http://3.123.158.214:3000 From 9d7446d46c53197e9c52de32bd15e06284f9a3f3 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 28 Aug 2023 16:08:55 +0300 Subject: [PATCH 38/59] [feature-ci-cd] add docker-compose build to codedeploy startup --- aws/scripts/start_docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 953868f7..3315c8f8 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -10,4 +10,5 @@ export JMS_DATABASE_USER="$JMS_DATABASE_USER" export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" service docker start +docker-compose build --no-cache --file /tmp/be/docker-compose.yml docker-compose --file /tmp/be/docker-compose.yml up -d --build #> /logs/startup.log From d5f116f325bba8b3d23d587b143fd4bfc711d319 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 30 Aug 2023 16:09:47 +0300 Subject: [PATCH 39/59] [feature-ci-cd] add network settings to docker-compose. change cors to * --- aws/docker/docker-compose.yml | 17 +++++++++++++---- src/main/resources/application.properties | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index a91a7530..a300a767 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -1,12 +1,12 @@ version: '3.8' -name: jms-db-and-app +name: jms-docker services: - app: - image: jms-app + jms-be: + image: jms-be build: context: . dockerfile: Dockerfile_app - container_name: app + container_name: jms-be depends_on: - db environment: @@ -18,6 +18,8 @@ services: - "8080:8080" volumes: - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar + networks: + - jms-network db: container_name: postgres image: jms-db @@ -33,6 +35,13 @@ services: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" + networks: + - jms-network + +networks: + jms-network: + name: jms-network + driver: bridge volumes: postgres_data: diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 28a1c96e..4210af42 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -8,4 +8,4 @@ spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect # Show all queries Hibernate executes in console spring.jpa.show-sql=true -cors.origins=http://3.123.158.214:3000 +cors.origins=* From 4a10a94db07d7450320c816a82f599d78b0a7d9a Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 30 Aug 2023 16:14:00 +0300 Subject: [PATCH 40/59] [featire-ci-cd] change stop_docker_container script to use --file location --- aws/scripts/stop_docker_containers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index ef668ca9..5d6dfe06 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker-compose down --remove-orphans #>> /logs/stop.log +docker-compose --file /tmp/be/docker-compose.yml down --remove-orphans #>> /logs/stop.log From ca05b07f0f130817310fcd5602b7f83fe4a57e9e Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 30 Aug 2023 16:27:27 +0300 Subject: [PATCH 41/59] [feature-ci-cd] remove stop_docker_containers script --- aws/scripts/stop_docker_containers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh index 5d6dfe06..86b3fe2a 100755 --- a/aws/scripts/stop_docker_containers.sh +++ b/aws/scripts/stop_docker_containers.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker-compose --file /tmp/be/docker-compose.yml down --remove-orphans #>> /logs/stop.log +#docker-compose --file /tmp/be/docker-compose.yml down --remove-orphans #>> /logs/stop.log From 817b8713ab4377be4aaadd1e2c9ceee366d94b4c Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 30 Aug 2023 16:38:21 +0300 Subject: [PATCH 42/59] [feature-ci-cd] remove stop_docker_containers script. cleanup appspec --- aws/appspec.yml | 59 +-------------------------- aws/scripts/check_health.sh | 2 +- aws/scripts/stop_docker_containers.sh | 3 -- 3 files changed, 2 insertions(+), 62 deletions(-) delete mode 100755 aws/scripts/stop_docker_containers.sh diff --git a/aws/appspec.yml b/aws/appspec.yml index 13cbf3df..7403bf95 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -1,74 +1,17 @@ -# This is an appspec.yml template file for use with an EC2/On-Premises deployment in CodeDeploy. -# The lines in this template starting with the hashtag symbol are -# instructional comments and can be safely left in the file or -# ignored. -# For help completing this file, see the "AppSpec File Reference" in the -# "CodeDeploy User Guide" at -# https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 -# Specify "os: linux" if this revision targets Amazon Linux, -# Red Hat Enterprise Linux (RHEL), or Ubuntu Server -# instances. -# Specify "os: windows" if this revision targets Windows Server instances. -# (You cannot specify both "os: linux" and "os: windows".) os: linux -# os: windows -# During the Install deployment lifecycle event (which occurs between the -# BeforeInstall and AfterInstall events), copy the specified files -# in "source" starting from the root of the revision's file bundle -# to "destination" on the Amazon EC2 instance. -# Specify multiple "source" and "destination" pairs if you want to copy -# from multiple sources or to multiple destinations. -# If you are not copying any files to the Amazon EC2 instance, then remove the -# "files" section altogether. A blank or incomplete "files" section -# may cause associated deployments to fail. - # If you are not running any commands on the Amazon EC2 instance, then remove - # the "hooks" section altogether. A blank or incomplete "hooks" section - # may cause associated deployments to fail. files: - source: /docker/ destination: /tmp/be hooks: - # For each deployment lifecycle event, specify multiple "location" entries - # if you want to run multiple scripts during that event. - # You can specify "timeout" as the number of seconds to wait until failing the deployment - # if the specified scripts do not run within the specified time limit for the - # specified event. For example, 900 seconds is 15 minutes. If not specified, - # the default is 1800 seconds (30 minutes). - # Note that the maximum amount of time that all scripts must finish executing - # for each individual deployment lifecycle event is 3600 seconds (1 hour). - # Otherwise, the deployment will stop and CodeDeploy will consider the deployment - # to have failed to the Amazon EC2 instance. Make sure that the total number of seconds - # that are specified in "timeout" for all scripts in each individual deployment - # lifecycle event does not exceed a combined 3600 seconds (1 hour). - # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, - # you can specify "runas" in an event to - # run as the specified user. For more information, see the documentation. - # If you are deploying to Windows Server instances, - # remove "runas" altogether. - # If you do not want to run any commands during a particular deployment - # lifecycle event, remove that event declaration altogether. Blank or - # incomplete event declarations may cause associated deployments to fail. - # During the ApplicationStop deployment lifecycle event, run the commands - # in the script specified in "location" starting from the root of the - # revision's file bundle. - ApplicationStop: - - location: scripts/stop_docker_containers.sh - timeout: 180 - runas: root - # During the BeforeInstall deployment lifecycle event, run the commands - # in the script specified in "location". - BeforeInstall: + Install: - location: scripts/install_docker.sh timeout: 180 runas: root - # During the ApplicationStart deployment lifecycle event, run the commands - # in the script specified in "location". ApplicationStart: - location: scripts/start_docker.sh timeout: 180 runas: root - ValidateService: - location: scripts/check_health.sh timeout: 180 diff --git a/aws/scripts/check_health.sh b/aws/scripts/check_health.sh index 4d846219..3c2b185b 100644 --- a/aws/scripts/check_health.sh +++ b/aws/scripts/check_health.sh @@ -4,7 +4,7 @@ sleep 20 # Perform the health check -if curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/health | grep -q "200"; then +if curl -s -o /dev/null -w "%{http_code}" http://3.123.158.214:8080/health | grep -q "200"; then echo "Application is healthy." exit 0 # Success else diff --git a/aws/scripts/stop_docker_containers.sh b/aws/scripts/stop_docker_containers.sh deleted file mode 100755 index 86b3fe2a..00000000 --- a/aws/scripts/stop_docker_containers.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -#docker-compose --file /tmp/be/docker-compose.yml down --remove-orphans #>> /logs/stop.log From d567266e99be44247bfe8a7c2fbd9feeed5fcfd8 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 30 Aug 2023 16:40:17 +0300 Subject: [PATCH 43/59] [feature-ci-cd] remove network settings --- aws/docker/docker-compose.yml | 11 +---------- aws/scripts/start_docker.sh | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index a300a767..6950a008 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -1,5 +1,5 @@ version: '3.8' -name: jms-docker +name: jms-docker-be services: jms-be: image: jms-be @@ -18,8 +18,6 @@ services: - "8080:8080" volumes: - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar - networks: - - jms-network db: container_name: postgres image: jms-db @@ -35,13 +33,6 @@ services: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" - networks: - - jms-network - -networks: - jms-network: - name: jms-network - driver: bridge volumes: postgres_data: diff --git a/aws/scripts/start_docker.sh b/aws/scripts/start_docker.sh index 3315c8f8..a5e12d4b 100755 --- a/aws/scripts/start_docker.sh +++ b/aws/scripts/start_docker.sh @@ -11,4 +11,4 @@ export JMS_DATABASE_PASSWORD="$JMS_DATABASE_PASSWORD" service docker start docker-compose build --no-cache --file /tmp/be/docker-compose.yml -docker-compose --file /tmp/be/docker-compose.yml up -d --build #> /logs/startup.log +docker-compose --file /tmp/be/docker-compose.yml up -d --build From 6f57a773c2841ca9b1a61b83878edaa392fc5941 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 30 Aug 2023 17:10:45 +0300 Subject: [PATCH 44/59] [feature-ci-cd] move install_docker to BeforeInstall --- aws/appspec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/appspec.yml b/aws/appspec.yml index 7403bf95..f8acedb1 100644 --- a/aws/appspec.yml +++ b/aws/appspec.yml @@ -4,7 +4,7 @@ files: - source: /docker/ destination: /tmp/be hooks: - Install: + BeforeInstall: - location: scripts/install_docker.sh timeout: 180 runas: root From 4b5a2541358b89780040502ee0b801ef6e16eebf Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Tue, 7 Nov 2023 17:58:10 +0200 Subject: [PATCH 45/59] [feature-ci-cd] add secret key to docker-compose --- aws/docker/docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 6950a008..9946a5eb 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -14,6 +14,7 @@ services: JMS_DATABASE_NAME: ${JMS_DATABASE_NAME} JMS_DATABASE_USER: ${JMS_DATABASE_USER} JMS_DATABASE_PASSWORD: ${JMS_DATABASE_PASSWORD} + SECRET_KEY: ${JMS_DATABASE_PASSWORD} ports: - "8080:8080" volumes: From 32a3409aab6fb386146fa525eaf595e6beba3d1c Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 8 Nov 2023 18:32:30 +0200 Subject: [PATCH 46/59] [feature-ci-cd] fix secret key value in docker-compose file| --- aws/docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 9946a5eb..6a9e645d 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -14,7 +14,7 @@ services: JMS_DATABASE_NAME: ${JMS_DATABASE_NAME} JMS_DATABASE_USER: ${JMS_DATABASE_USER} JMS_DATABASE_PASSWORD: ${JMS_DATABASE_PASSWORD} - SECRET_KEY: ${JMS_DATABASE_PASSWORD} + SECRET_KEY: ${SECRET_KEY} ports: - "8080:8080" volumes: From 6868dfb2f392a57939b1f7e0fa3101549615b764 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 10 Jan 2024 15:19:36 +0200 Subject: [PATCH 47/59] feat: change flyway migration location to be prod --- .../java/jewellery/inventory/config/FlywayMigrationConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java b/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java index b636484f..42cc4802 100644 --- a/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java +++ b/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java @@ -9,7 +9,7 @@ @Configuration public class FlywayMigrationConfig { - private static final String LOCATION = "db/migration/dev"; + private static final String LOCATION = "db/migration/prod"; @Autowired FlywayMigrationConfig(DataSource dataSource) { From 8e987bbf1f4997a2220216fe64539d5fe8aa1a62 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Wed, 10 Jan 2024 15:27:26 +0200 Subject: [PATCH 48/59] feature-ci-cd/ fix prod init schema to have same system event definition as dev one --- .../resources/db/migration/prod/V1_1__init_schema.sql | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/resources/db/migration/prod/V1_1__init_schema.sql b/src/main/resources/db/migration/prod/V1_1__init_schema.sql index 6d3f17ff..4ae70c7c 100644 --- a/src/main/resources/db/migration/prod/V1_1__init_schema.sql +++ b/src/main/resources/db/migration/prod/V1_1__init_schema.sql @@ -108,9 +108,10 @@ CREATE TABLE IF NOT EXISTS public.product_author ( -- public.system_event definition CREATE TABLE IF NOT EXISTS public.system_event ( - id uuid NOT NULL, - "data" jsonb NULL, - "timestamp" timestamp(6) NULL, - "type" varchar(255) NULL, - CONSTRAINT system_event_pkey PRIMARY KEY (id) + id uuid NOT NULL, + timestamp timestamp with time zone, + type varchar(255), + executor jsonb, + payload jsonb, + PRIMARY KEY (id) ); \ No newline at end of file From 863ddd0619e58815bc623648cbcb2c5f9ca155c7 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sun, 28 Apr 2024 16:41:33 +0300 Subject: [PATCH 49/59] feature-ci-cd remove owner --- src/main/java/jewellery/inventory/model/Owner.java | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 src/main/java/jewellery/inventory/model/Owner.java diff --git a/src/main/java/jewellery/inventory/model/Owner.java b/src/main/java/jewellery/inventory/model/Owner.java deleted file mode 100644 index 40ccdbf3..00000000 --- a/src/main/java/jewellery/inventory/model/Owner.java +++ /dev/null @@ -1,7 +0,0 @@ -package jewellery.inventory.model; - -import java.util.List; - -public interface Owner { - List getResourcesOwned(); -} From a231b610830a4e509779753a9f57b9338e542f49 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 4 May 2024 18:40:22 +0300 Subject: [PATCH 50/59] feat-ci-cd: add external network --- aws/docker/docker-compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 6a9e645d..6911f8f3 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -38,3 +38,7 @@ services: volumes: postgres_data: +networks: + jms-network: + external: true + From 13ad824338db100823f6cfd952986005829748e0 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 4 May 2024 18:47:48 +0300 Subject: [PATCH 51/59] feat-ci-cd remove jar from aws zip --- .github/workflows/build-and-deploy.yml | 2 +- aws/docker/Dockerfile_app | 3 --- aws/docker/docker-compose.yml | 12 ++++++------ 3 files changed, 7 insertions(+), 10 deletions(-) delete mode 100644 aws/docker/Dockerfile_app diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 4c02c23e..24d441de 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -47,6 +47,6 @@ jobs: - name: Push jar and docker files to AWS S3 run: | - cp ./target/*.jar ./aws/docker +# cp ./target/*.jar ./aws/docker zip -r backend_codedeploy.zip aws aws s3 cp backend_codedeploy.zip s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file diff --git a/aws/docker/Dockerfile_app b/aws/docker/Dockerfile_app deleted file mode 100644 index 9604150d..00000000 --- a/aws/docker/Dockerfile_app +++ /dev/null @@ -1,3 +0,0 @@ -FROM amazoncorretto:17-alpine-jdk - -ENTRYPOINT ["java", "-jar", "/jar/app.jar"] \ No newline at end of file diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 6911f8f3..9479cf1c 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -2,10 +2,10 @@ version: '3.8' name: jms-docker-be services: jms-be: - image: jms-be - build: - context: . - dockerfile: Dockerfile_app + image: vladokat/jms-be:883e70a +# build: +# context: . +# dockerfile: Dockerfile_app container_name: jms-be depends_on: - db @@ -17,8 +17,8 @@ services: SECRET_KEY: ${SECRET_KEY} ports: - "8080:8080" - volumes: - - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar +# volumes: +# - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar db: container_name: postgres image: jms-db From 71efb40fadca76d176fe1cbb3b6888debdbb198f Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 4 May 2024 18:50:52 +0300 Subject: [PATCH 52/59] feat-ci-cd: fix build-deploy yml --- .github/workflows/build-and-deploy.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 24d441de..f866dcb1 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -36,17 +36,7 @@ jobs: role-session-name: GithubAction aws-region: ${{ env.AWS_REGION }} - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - cache: maven - - name: Build with Maven - run: mvn clean install --file pom.xml - - name: Push jar and docker files to AWS S3 run: | -# cp ./target/*.jar ./aws/docker zip -r backend_codedeploy.zip aws aws s3 cp backend_codedeploy.zip s3://${{ secrets.S3BUCKET }}/ \ No newline at end of file From 893b8dc3962d1fc5e9d0dd5a16968fce4d0909a3 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 6 May 2024 00:08:20 +0300 Subject: [PATCH 53/59] feat-ci-cd: enable push to docker hub for all branches --- .github/workflows/build-and-push-docker-hub.yaml | 2 +- aws/docker/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push-docker-hub.yaml b/.github/workflows/build-and-push-docker-hub.yaml index ed095c19..e57ad5e3 100644 --- a/.github/workflows/build-and-push-docker-hub.yaml +++ b/.github/workflows/build-and-push-docker-hub.yaml @@ -10,7 +10,7 @@ name: Build and push jms-be to docker hub on: push: - branches: [ "main" ] + branches: [ "*" ] permissions: id-token: write diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 9479cf1c..9f041b2b 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -20,7 +20,7 @@ services: # volumes: # - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar db: - container_name: postgres +# container_name: postgres image: jms-db build: context: . From d6add692ce33952f1e0a1b77bedcf7e94dddc69b Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 6 May 2024 00:14:06 +0300 Subject: [PATCH 54/59] feat-ci-cd: push to dockerhub only on main. change image used in aws --- .github/workflows/build-and-push-docker-hub.yaml | 2 +- aws/docker/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push-docker-hub.yaml b/.github/workflows/build-and-push-docker-hub.yaml index e57ad5e3..ed095c19 100644 --- a/.github/workflows/build-and-push-docker-hub.yaml +++ b/.github/workflows/build-and-push-docker-hub.yaml @@ -10,7 +10,7 @@ name: Build and push jms-be to docker hub on: push: - branches: [ "*" ] + branches: [ "main" ] permissions: id-token: write diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 9f041b2b..f098134d 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.8' name: jms-docker-be services: jms-be: - image: vladokat/jms-be:883e70a + image: vladokat/jms-be:893b8dc # build: # context: . # dockerfile: Dockerfile_app From 4e8a802188f6d18cc6c29ce2488a29dd5c9a8e9c Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Mon, 6 May 2024 00:55:54 +0300 Subject: [PATCH 55/59] feat-ci-cd add networks --- aws/docker/docker-compose.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index f098134d..574f4c6a 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -19,6 +19,8 @@ services: - "8080:8080" # volumes: # - ./jewellery-inventory-0.0.1-SNAPSHOT.jar:/jar/app.jar + networks: + - jms-network db: # container_name: postgres image: jms-db @@ -34,11 +36,13 @@ services: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" + networks: + - jms-network volumes: postgres_data: networks: jms-network: - external: true + driver: bridge From ef0012a3227d8e92acf44f842955cea7e3777b95 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 11 May 2024 17:25:26 +0300 Subject: [PATCH 56/59] feat-ci-cd: introduce environment dependent properties --- .github/dockerfiles/Dockerfile_jms_be | 3 ++- Dockerfile | 8 ++++++++ aws/docker/docker-compose.yml | 2 ++ docker-compose.yml | 20 +++++++++++++++++++ .../config/FlywayMigrationConfig.java | 14 ++++++------- .../resources/application-cloud.properties | 3 +++ src/main/resources/application.properties | 7 ++++--- .../JewelleryInventoryApplicationTests.java | 2 ++ .../AuthenticatedIntegrationTestBase.java | 2 ++ ...properties => application-test.properties} | 17 ++-------------- 10 files changed, 51 insertions(+), 27 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 src/main/resources/application-cloud.properties rename src/test/resources/{application.properties => application-test.properties} (50%) diff --git a/.github/dockerfiles/Dockerfile_jms_be b/.github/dockerfiles/Dockerfile_jms_be index c1ebe546..0a992f5d 100644 --- a/.github/dockerfiles/Dockerfile_jms_be +++ b/.github/dockerfiles/Dockerfile_jms_be @@ -1,3 +1,4 @@ FROM amazoncorretto:17-alpine-jdk COPY ./app.jar . -ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file +ENV SPRING_PROFILE=local +ENTRYPOINT java -jar -Dspring.profiles.active=$SPRING_PROFILE app.jar \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..e781887c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM postgres:13 +ARG POSTGRES_DB +ARG POSTGRES_USER +ARG POSTGRES_PASSWORD + +ENV POSTGRES_DB=${POSTGRES_DB} +ENV POSTGRES_USER=${POSTGRES_USER} +ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \ No newline at end of file diff --git a/aws/docker/docker-compose.yml b/aws/docker/docker-compose.yml index 574f4c6a..03716bde 100644 --- a/aws/docker/docker-compose.yml +++ b/aws/docker/docker-compose.yml @@ -10,6 +10,7 @@ services: depends_on: - db environment: + SPRING_PROFILE: cloud SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 JMS_DATABASE_NAME: ${JMS_DATABASE_NAME} JMS_DATABASE_USER: ${JMS_DATABASE_USER} @@ -44,5 +45,6 @@ volumes: networks: jms-network: + name: jms-network driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..ea39d528 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3.8' +services: + db: + container_name: postgres + image: jms-db + build: + context: . + dockerfile: Dockerfile + restart: on-failure + environment: + POSTGRES_DB: ${JMS_DATABASE_NAME} + POSTGRES_USER: ${JMS_DATABASE_USER} + POSTGRES_PASSWORD: ${JMS_DATABASE_PASSWORD} + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5432:5432" + +volumes: + postgres_data: diff --git a/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java b/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java index 42cc4802..0876f3f5 100644 --- a/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java +++ b/src/main/java/jewellery/inventory/config/FlywayMigrationConfig.java @@ -1,23 +1,21 @@ package jewellery.inventory.config; +import javax.sql.DataSource; import org.flywaydb.core.Flyway; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; -import javax.sql.DataSource; - @Configuration public class FlywayMigrationConfig { - private static final String LOCATION = "db/migration/prod"; - - @Autowired - FlywayMigrationConfig(DataSource dataSource) { + public FlywayMigrationConfig( + DataSource dataSource, + @Value("${flyway.migration.location}") String flywayMigrationLocation) { Flyway.configure() .baselineOnMigrate(true) .validateMigrationNaming(true) .dataSource(dataSource) - .locations(LOCATION) + .locations(flywayMigrationLocation) .load() .migrate(); } diff --git a/src/main/resources/application-cloud.properties b/src/main/resources/application-cloud.properties new file mode 100644 index 00000000..6bfe05d2 --- /dev/null +++ b/src/main/resources/application-cloud.properties @@ -0,0 +1,3 @@ +cors.allowedOrigins=* +spring.datasource.url=jdbc:postgresql://db:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 +flyway.migration.location=classpath:db/migration/prod \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 63180d32..ff769ba7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,10 +3,11 @@ spring.datasource.username=${JMS_DATABASE_USER} spring.datasource.password=${JMS_DATABASE_PASSWORD} spring.sql.init.mode=always -spring.flyway.url=jdbc:postgresql://localhost:5432/${JMS_DATABASE_NAME} -spring.flyway.user=${JMS_DATABASE_USER} -spring.flyway.password=${JMS_DATABASE_PASSWORD} +#spring.flyway.url=jdbc:postgresql://localhost:5432/${JMS_DATABASE_NAME} +#spring.flyway.user=${JMS_DATABASE_USER} +#spring.flyway.password=${JMS_DATABASE_PASSWORD} spring.flyway.enabled=false +flyway.migration.location=filesystem:db/migrations/dev # Specify the DB platform for Hibernate spring.jpa.hibernate.ddl-auto=none diff --git a/src/test/java/jewellery/inventory/JewelleryInventoryApplicationTests.java b/src/test/java/jewellery/inventory/JewelleryInventoryApplicationTests.java index 62840dc0..87a3eb54 100644 --- a/src/test/java/jewellery/inventory/JewelleryInventoryApplicationTests.java +++ b/src/test/java/jewellery/inventory/JewelleryInventoryApplicationTests.java @@ -4,8 +4,10 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; @SpringBootTest(webEnvironment = RANDOM_PORT) +@ActiveProfiles("test") class JewelleryInventoryApplicationTests { @Test diff --git a/src/test/java/jewellery/inventory/integration/AuthenticatedIntegrationTestBase.java b/src/test/java/jewellery/inventory/integration/AuthenticatedIntegrationTestBase.java index c47b3ad2..980fd3cf 100644 --- a/src/test/java/jewellery/inventory/integration/AuthenticatedIntegrationTestBase.java +++ b/src/test/java/jewellery/inventory/integration/AuthenticatedIntegrationTestBase.java @@ -26,10 +26,12 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit.jupiter.SpringExtension; @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = RANDOM_PORT) +@ActiveProfiles("test") abstract class AuthenticatedIntegrationTestBase { @Autowired protected ObjectMapper objectMapper; diff --git a/src/test/resources/application.properties b/src/test/resources/application-test.properties similarity index 50% rename from src/test/resources/application.properties rename to src/test/resources/application-test.properties index ed2eb9e5..612d1959 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application-test.properties @@ -1,27 +1,14 @@ # Specify the DB platform for Hibernate spring.datasource.url=jdbc:tc:postgresql:13:/// -spring.jpa.hibernate.ddl-auto=none spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.datasource.driver-class-name=org.testcontainers.jdbc.ContainerDatabaseDriver -# Show all queries Hibernate executes in console -spring.jpa.show-sql=true -cors.allowedOrigins=http://localhost:3000 -cors.allowedMethods=GET,POST,PUT,DELETE -cors.allowedHeaders=Authorization,Cache-Control,Content-Type - jwt.secret.key=QdzigVY4XWNItestqpRdNuCGXx+FXok5e++GeMm1OlE= -jwt.token.expiration=#{1000 * 60 * 24} spring.flyway.enabled=false +flyway.migration.location=classpath:db/migration/dev spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false ## File Storage Properties # All files uploaded through the API will be stored in this directory -image.folder.path=/tmp/Jms-test/Images/ - -# Max file size -spring.servlet.multipart.max-file-size=12MB -# Max Request Size -spring.servlet.multipart.max-request-size=12MB -multipart.file.max.size=8 \ No newline at end of file +image.folder.path=/tmp/Jms-test/Images/ \ No newline at end of file From 8484c936be3d66f7cffd3bc400066804f6e8e31d Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 11 May 2024 17:28:38 +0300 Subject: [PATCH 57/59] feat-ci-cd: bring back application properties to defaul --- src/main/resources/application.properties | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ff769ba7..99a29fee 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,11 +1,8 @@ -spring.datasource.url=jdbc:postgresql://db:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 +spring.datasource.url=jdbc:postgresql://localhost:5432/${JMS_DATABASE_NAME}?autoreconnect=true&createDatabaseIfNotExist=true&characterEncoding=utf8 spring.datasource.username=${JMS_DATABASE_USER} spring.datasource.password=${JMS_DATABASE_PASSWORD} spring.sql.init.mode=always -#spring.flyway.url=jdbc:postgresql://localhost:5432/${JMS_DATABASE_NAME} -#spring.flyway.user=${JMS_DATABASE_USER} -#spring.flyway.password=${JMS_DATABASE_PASSWORD} spring.flyway.enabled=false flyway.migration.location=filesystem:db/migrations/dev @@ -16,7 +13,7 @@ spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect # Show all queries Hibernate executes in console spring.jpa.show-sql=true -cors.allowedOrigins=* +cors.allowedOrigins=http://localhost:3000 cors.allowedMethods=GET,POST,PUT,DELETE cors.allowedHeaders=Authorization,Cache-Control,Content-Type @@ -37,4 +34,4 @@ spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=12MB # Max Request Size spring.servlet.multipart.max-request-size=12MB -multipart.file.max.size=8 +multipart.file.max.size=8 \ No newline at end of file From e83ea013f283251da2b664273ce37ed454d724d6 Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 11 May 2024 17:36:57 +0300 Subject: [PATCH 58/59] feat-ci-cd: fix typo in flyway.migration.location. remove test flyway.location as it is same as default --- src/main/resources/application.properties | 2 +- src/test/resources/application-test.properties | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 99a29fee..7ab23f7c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,7 +4,7 @@ spring.datasource.password=${JMS_DATABASE_PASSWORD} spring.sql.init.mode=always spring.flyway.enabled=false -flyway.migration.location=filesystem:db/migrations/dev +flyway.migration.location=classpath:db/migration/dev # Specify the DB platform for Hibernate spring.jpa.hibernate.ddl-auto=none diff --git a/src/test/resources/application-test.properties b/src/test/resources/application-test.properties index 612d1959..a4c71e57 100644 --- a/src/test/resources/application-test.properties +++ b/src/test/resources/application-test.properties @@ -6,7 +6,6 @@ spring.datasource.driver-class-name=org.testcontainers.jdbc.ContainerDatabaseDri jwt.secret.key=QdzigVY4XWNItestqpRdNuCGXx+FXok5e++GeMm1OlE= spring.flyway.enabled=false -flyway.migration.location=classpath:db/migration/dev spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false ## File Storage Properties From 5a7357d0ded8ecd5213656f46ac67300118565dc Mon Sep 17 00:00:00 2001 From: Vladislav Katrankiev Date: Sat, 11 May 2024 17:51:38 +0300 Subject: [PATCH 59/59] feature-ci-cd edit conditions for build and build-and-deploy workflows --- .github/workflows/build-and-deploy.yml | 4 +--- .github/workflows/build.yaml | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index f866dcb1..e6939beb 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -10,9 +10,7 @@ name: Build and copy to S3 on: push: - branches: [ "*" ] - pull_request: - branches: [ "*" ] + branches: [ "release*" ] env: AWS_REGION : eu-central-1 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4415bb48..f0cc8dd3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,6 +1,5 @@ name: build on: - push: pull_request: types: [opened, synchronize, reopened]