From 530b1a494acf4f6327cccb9c15c1f960b8c5ffba Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 14:11:38 +0100 Subject: [PATCH 1/9] add cd build with build number --- .github/workflows/deploy.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..e7b8f84 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,27 @@ +name: Deploy Workflow +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: JDK + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + - name: Generate Build Number + run: | + BUILD_NUMBER=$(date +'%d%m%Y%H%M%S') + echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV + echo "Generated Build Number: $BUILD_NUMBER" + - name: Maven Clean Verify + run: mvn -B -ntp clean verify jib:build \ + -Ddocker.image.tag=$BUILD_NUMBER From 9779106228a50e3f600c3ceb9d7bc96dd991fa09 Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 14:14:52 +0100 Subject: [PATCH 2/9] fix --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e7b8f84..ef9a667 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -24,4 +24,4 @@ jobs: echo "Generated Build Number: $BUILD_NUMBER" - name: Maven Clean Verify run: mvn -B -ntp clean verify jib:build \ - -Ddocker.image.tag=$BUILD_NUMBER + -Ddocker.image.tag=$BUILD_NUMBER From 2f34215a5bdd4862934971a4370b626a19f3cace Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 14:17:09 +0100 Subject: [PATCH 3/9] fix --- .github/workflows/deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ef9a667..4ce7a12 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -23,5 +23,5 @@ jobs: echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV echo "Generated Build Number: $BUILD_NUMBER" - name: Maven Clean Verify - run: mvn -B -ntp clean verify jib:build \ - -Ddocker.image.tag=$BUILD_NUMBER + run: mvn -B -ntp clean verify jib:build \ + -Ddocker.image.tag=$BUILD_NUMBER From 6aef7c481024fdbe3d215135331904be72f9359f Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 14:18:52 +0100 Subject: [PATCH 4/9] fix --- .github/workflows/deploy.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4ce7a12..af4f80e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -23,5 +23,4 @@ jobs: echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV echo "Generated Build Number: $BUILD_NUMBER" - name: Maven Clean Verify - run: mvn -B -ntp clean verify jib:build \ - -Ddocker.image.tag=$BUILD_NUMBER + run: mvn -B -ntp clean verify jib:build -Ddocker.image.tag=$BUILD_NUMBER From 227369219072b6426ef54799b1161b1cead2a467 Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 14:33:27 +0100 Subject: [PATCH 5/9] dockerhub secrets --- .github/workflows/deploy.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index af4f80e..d855997 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,6 +9,10 @@ on: jobs: build-and-deploy: runs-on: ubuntu-latest + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + steps: - name: Checkout uses: actions/checkout@v4 @@ -22,5 +26,10 @@ jobs: BUILD_NUMBER=$(date +'%d%m%Y%H%M%S') echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV echo "Generated Build Number: $BUILD_NUMBER" + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ env.DOCKER_USERNAME }} + password: ${{ env.DOCKER_PASSWORD }} - name: Maven Clean Verify run: mvn -B -ntp clean verify jib:build -Ddocker.image.tag=$BUILD_NUMBER From 5c0863b2e98cd858e9dad98663590f35717a30eb Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 15:06:18 +0100 Subject: [PATCH 6/9] ssh --- .github/workflows/deploy.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d855997..1ede457 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -12,6 +12,8 @@ jobs: env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + EC2_SSH_PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + EC2_PUBLIC_IP_ADDRESS: ${{ secrets.EC2_PUBLIC_IP_ADDRESS }} steps: - name: Checkout @@ -33,3 +35,14 @@ jobs: password: ${{ env.DOCKER_PASSWORD }} - name: Maven Clean Verify run: mvn -B -ntp clean verify jib:build -Ddocker.image.tag=$BUILD_NUMBER + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ env.EC2_SSH_PRIVATE_KEY }} + - name: SSH To EC2 and Deploy + run: | + ssh -o StrictHostKeyChecking=no ec2-user@$EC2_PUBLIC_IP_ADDRESS << EOF + ls + pwd + echo "Amigoscode" > hello.txt + EOF From a616c3017b6dd96c564fdd019d294eb2cc292b09 Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 16:05:09 +0100 Subject: [PATCH 7/9] docker compose --- .github/workflows/deploy.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1ede457..7ca190e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -11,6 +11,8 @@ jobs: runs-on: ubuntu-latest env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_IMAGE_NAME: product-service + DOCKER_COMPOSE_APP_SERVICE_NAME: product-service DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} EC2_SSH_PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} EC2_PUBLIC_IP_ADDRESS: ${{ secrets.EC2_PUBLIC_IP_ADDRESS }} @@ -42,7 +44,11 @@ jobs: - name: SSH To EC2 and Deploy run: | ssh -o StrictHostKeyChecking=no ec2-user@$EC2_PUBLIC_IP_ADDRESS << EOF - ls - pwd - echo "Amigoscode" > hello.txt + cd ~ + sed -i 's|image: '"$DOCKER_USERNAME"'/'"$DOCKER_IMAGE_NAME"':.*$|image: '"$DOCKER_USERNAME"'/'"$DOCKER_IMAGE_NAME"':'"$BUILD_NUMBER"'|' docker-compose.yml + docker-compose pull + docker-compose up -d '"$DOCKER_COMPOSE_APP_SERVICE_NAME"' + docker image prune -f + docker ps + echo "$BUILD_NUMBER" > build-number.txt EOF From d0d958be2e6fa9b43e791c8b1b53467474ac3d39 Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 16:09:44 +0100 Subject: [PATCH 8/9] docker compose fix --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7ca190e..3880e53 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -47,7 +47,7 @@ jobs: cd ~ sed -i 's|image: '"$DOCKER_USERNAME"'/'"$DOCKER_IMAGE_NAME"':.*$|image: '"$DOCKER_USERNAME"'/'"$DOCKER_IMAGE_NAME"':'"$BUILD_NUMBER"'|' docker-compose.yml docker-compose pull - docker-compose up -d '"$DOCKER_COMPOSE_APP_SERVICE_NAME"' + docker-compose up -d '$DOCKER_COMPOSE_APP_SERVICE_NAME' docker image prune -f docker ps echo "$BUILD_NUMBER" > build-number.txt From 92e38242d5fcd0411170dd4b33aec783a5f37fba Mon Sep 17 00:00:00 2001 From: mama-samba-braima Date: Mon, 14 Jul 2025 16:17:56 +0100 Subject: [PATCH 9/9] remove pr trigger --- .github/workflows/deploy.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3880e53..2313fa0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -3,9 +3,6 @@ on: push: branches: - main - pull_request: - branches: - - main jobs: build-and-deploy: runs-on: ubuntu-latest