From 4ba4c2ff942d1e5a3cea6f215f16a5eda2f16ff6 Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Tue, 26 Aug 2025 11:46:01 +0530 Subject: [PATCH 1/7] updating workflow for dev branch --- .github/workflows/pre-merge.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-merge.yml b/.github/workflows/pre-merge.yml index 8c534cfd..dc8eb68d 100644 --- a/.github/workflows/pre-merge.yml +++ b/.github/workflows/pre-merge.yml @@ -32,7 +32,7 @@ jobs: smoke: needs: build - uses: saqibmanan/CivicDataSpace-test/.github/workflows/run-smoke.yml@main + uses: saqibmanan/CivicDataSpace-test/.github/workflows/run-smoke.yml@dev secrets: BASE_URL: ${{ secrets.BASE_URL }} HOME_URL_DEV: ${{ secrets.HOME_URL_DEV }} @@ -43,7 +43,7 @@ jobs: deploy: needs: smoke - uses: saqibmanan/DataSpaceFrontend/.github/workflows/run-deploy-dev.yml@main + uses: saqibmanan/DataSpaceFrontend/.github/workflows/run-deploy-dev.yml@dev secrets: KEYCLOAK_CLIENT_ID: ${{ secrets.KEYCLOAK_CLIENT_ID }} KEYCLOAK_CLIENT_SECRET: ${{ secrets.KEYCLOAK_CLIENT_SECRET }} From 3182339c3a034213a6728b0496b503fdb4133591 Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Mon, 1 Sep 2025 13:17:32 +0530 Subject: [PATCH 2/7] changing to exact workflow file name for dev deploy --- .github/workflows/pre-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-merge.yml b/.github/workflows/pre-merge.yml index dc8eb68d..6b9a6875 100644 --- a/.github/workflows/pre-merge.yml +++ b/.github/workflows/pre-merge.yml @@ -43,7 +43,7 @@ jobs: deploy: needs: smoke - uses: saqibmanan/DataSpaceFrontend/.github/workflows/run-deploy-dev.yml@dev + uses: saqibmanan/DataSpaceFrontend/.github/workflows/deploy-Dataspace-dev.yml@dev secrets: KEYCLOAK_CLIENT_ID: ${{ secrets.KEYCLOAK_CLIENT_ID }} KEYCLOAK_CLIENT_SECRET: ${{ secrets.KEYCLOAK_CLIENT_SECRET }} From 4c7588c721b23503eeac2e7215be11fec3b2842b Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Tue, 9 Sep 2025 13:10:13 +0530 Subject: [PATCH 3/7] reverting to old minimal Pre-merge.yml --- .github/workflows/pre-merge.yml | 36 ++------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/.github/workflows/pre-merge.yml b/.github/workflows/pre-merge.yml index 6b9a6875..a35fa0be 100644 --- a/.github/workflows/pre-merge.yml +++ b/.github/workflows/pre-merge.yml @@ -1,11 +1,10 @@ -name: Build → Smoke → Deploy Dev +name: Build Status on: push: branches: ['dev'] pull_request: branches: ['dev'] - workflow_dispatch: jobs: build: @@ -28,35 +27,4 @@ jobs: - run: npm ci --force - run: npm run generate - - run: npm run build --if-present - - smoke: - needs: build - uses: saqibmanan/CivicDataSpace-test/.github/workflows/run-smoke.yml@dev - secrets: - BASE_URL: ${{ secrets.BASE_URL }} - HOME_URL_DEV: ${{ secrets.HOME_URL_DEV }} - TEST_EMAIL_1: ${{ secrets.TEST_EMAIL_1 }} - TEST_PASSWORD_1: ${{ secrets.TEST_PASSWORD_1 }} - TEST_EMAIL_2: ${{ secrets.TEST_EMAIL_2 }} - TEST_PASSWORD_2: ${{ secrets.TEST_PASSWORD_2 }} - - deploy: - needs: smoke - uses: saqibmanan/DataSpaceFrontend/.github/workflows/deploy-Dataspace-dev.yml@dev - secrets: - KEYCLOAK_CLIENT_ID: ${{ secrets.KEYCLOAK_CLIENT_ID }} - KEYCLOAK_CLIENT_SECRET: ${{ secrets.KEYCLOAK_CLIENT_SECRET }} - AUTH_ISSUER: ${{ secrets.AUTH_ISSUER }} - NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }} - NEXT_PUBLIC_NEXTAUTH_URL: ${{ secrets.NEXT_PUBLIC_NEXTAUTH_URL }} - NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }} - END_SESSION_URL: ${{ secrets.END_SESSION_URL }} - REFRESH_TOKEN_URL: ${{ secrets.REFRESH_TOKEN_URL }} - NEXT_PUBLIC_BACKEND_URL: ${{ secrets.NEXT_PUBLIC_BACKEND_URL }} - BACKEND_GRAPHQL_URL: ${{ secrets.BACKEND_GRAPHQL_URL }} - NEXT_PUBLIC_ENABLE_ACCESSMODEL: ${{ secrets.NEXT_PUBLIC_ENABLE_ACCESSMODEL }} - NEXT_PUBLIC_BACKEND_GRAPHQL_URL: ${{ secrets.NEXT_PUBLIC_BACKEND_GRAPHQL_URL }} - BACKEND_URL: ${{ secrets.BACKEND_URL }} - NEXT_PUBLIC_PLATFORM_URL: ${{ secrets.NEXT_PUBLIC_PLATFORM_URL }} - NEXT_PUBLIC_ANALYTICS_URL: ${{ secrets.NEXT_PUBLIC_ANALYTICS_URL }} \ No newline at end of file + - run: npm run build --if-present \ No newline at end of file From e99cbbb4d09e774d76f18c9102ace81af7fc1830 Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Tue, 9 Sep 2025 13:20:25 +0530 Subject: [PATCH 4/7] adding backup for .next and public folders --- .github/workflows/deploy-Dataspace-dev.yml | 30 ++++++++++------------ 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/.github/workflows/deploy-Dataspace-dev.yml b/.github/workflows/deploy-Dataspace-dev.yml index 1daa65e4..0117f3e3 100644 --- a/.github/workflows/deploy-Dataspace-dev.yml +++ b/.github/workflows/deploy-Dataspace-dev.yml @@ -1,26 +1,12 @@ name: Update DataSpace Dev on: - workflow_call: - secrets: - KEYCLOAK_CLIENT_ID: { required: true } - KEYCLOAK_CLIENT_SECRET: { required: true } - AUTH_ISSUER: { required: true } - NEXTAUTH_URL: { required: true } - NEXT_PUBLIC_NEXTAUTH_URL: { required: true } - NEXTAUTH_SECRET: { required: true } - END_SESSION_URL: { required: true } - REFRESH_TOKEN_URL: { required: true } - NEXT_PUBLIC_BACKEND_URL: { required: true } - BACKEND_GRAPHQL_URL: { required: true } - NEXT_PUBLIC_ENABLE_ACCESSMODEL: { required: true } - NEXT_PUBLIC_BACKEND_GRAPHQL_URL: { required: true } - BACKEND_URL: { required: true } - NEXT_PUBLIC_PLATFORM_URL: { required: true } - NEXT_PUBLIC_ANALYTICS_URL: { required: true } + push: + branches: ['dev'] jobs: deploy: + name: Deploy to Dev Server runs-on: ubuntu-latest env: KEYCLOAK_CLIENT_ID: ${{ secrets.KEYCLOAK_CLIENT_ID }} @@ -58,6 +44,16 @@ jobs: - name: Rename public to public2 run: mv public public2 + - name: Backup existing .next and public folders + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.EC2_HOST_DEV_DS }} + username: ${{ secrets.EC2_USERNAME_DS }} + key: ${{ secrets.EC2_PRIVATE_KEY }} + script: | + cp -r DataExchange/DataExFrontend/.next DataExchange/DataExFrontend/.next_backup || true + cp -r DataExchange/DataExFrontend/public DataExchange/DataExFrontend/public_backup || true + - name: Send .next2 to EC2 uses: appleboy/scp-action@master with: From d9f54bed12fe08898c0f3e44ad6f799bfb93a658 Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Tue, 9 Sep 2025 13:21:46 +0530 Subject: [PATCH 5/7] calling smoke tests repo --- .github/workflows/deploy-Dataspace-dev.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-Dataspace-dev.yml b/.github/workflows/deploy-Dataspace-dev.yml index 0117f3e3..2f6c4eb0 100644 --- a/.github/workflows/deploy-Dataspace-dev.yml +++ b/.github/workflows/deploy-Dataspace-dev.yml @@ -83,4 +83,17 @@ jobs: rm -rf DataExchange/DataExFrontend/public mv DataExchange/DataExFrontend/.next2 DataExchange/DataExFrontend/.next mv DataExchange/DataExFrontend/public2 DataExchange/DataExFrontend/public - /home/ubuntu/.nvm/versions/node/v20.11.1/bin/pm2 restart dataspace \ No newline at end of file + /home/ubuntu/.nvm/versions/node/v20.11.1/bin/pm2 restart dataspace + + smoke: + name: Run Smoke Tests from QA Repo + needs: deploy + uses: saqibmanan/CivicDataSpace-test/.github/workflows/run-smoke.yml@dev + secrets: + BASE_URL: ${{ secrets.BASE_URL }} + HOME_URL_DEV: ${{ secrets.HOME_URL_DEV }} + TEST_EMAIL_1: ${{ secrets.TEST_EMAIL_1 }} + TEST_PASSWORD_1: ${{ secrets.TEST_PASSWORD_1 }} + TEST_EMAIL_2: ${{ secrets.TEST_EMAIL_2 }} + TEST_PASSWORD_2: ${{ secrets.TEST_PASSWORD_2 }} + QA_REPO_PAT: ${{ secrets.QA_REPO_PAT }} From 7f187d234ee2ddb3dd2411ad8c851c8ccce881ad Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Tue, 9 Sep 2025 13:22:41 +0530 Subject: [PATCH 6/7] reverting the deploy from backup on EC2 if the smoke tests fails --- .github/workflows/deploy-Dataspace-dev.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/deploy-Dataspace-dev.yml b/.github/workflows/deploy-Dataspace-dev.yml index 2f6c4eb0..f2c7cf0d 100644 --- a/.github/workflows/deploy-Dataspace-dev.yml +++ b/.github/workflows/deploy-Dataspace-dev.yml @@ -97,3 +97,23 @@ jobs: TEST_EMAIL_2: ${{ secrets.TEST_EMAIL_2 }} TEST_PASSWORD_2: ${{ secrets.TEST_PASSWORD_2 }} QA_REPO_PAT: ${{ secrets.QA_REPO_PAT }} + + revert_deploy: + name: Revert Deployment on Smoke Test Failure + needs: smoke_tests + if: failure() + runs-on: ubuntu-latest + + steps: + - name: Revert to Backup Build on EC2 + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.EC2_HOST_DEV_DS }} + username: ${{ secrets.EC2_USERNAME_DS }} + key: ${{ secrets.EC2_PRIVATE_KEY }} + script: | + rm -rf DataExchange/DataExFrontend/.next + rm -rf DataExchange/DataExFrontend/public + mv DataExchange/DataExFrontend/.next_backup DataExchange/DataExFrontend/.next + mv DataExchange/DataExFrontend/public_backup DataExchange/DataExFrontend/public + /home/ubuntu/.nvm/versions/node/v20.11.1/bin/pm2 restart dataspace From 1680ee146b2bb82692b01e47265df93d68d5d484 Mon Sep 17 00:00:00 2001 From: saqibmanan Date: Tue, 9 Sep 2025 13:23:22 +0530 Subject: [PATCH 7/7] adding a notifier to make sure that deployment and smoke test passed --- .github/workflows/deploy-Dataspace-dev.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/deploy-Dataspace-dev.yml b/.github/workflows/deploy-Dataspace-dev.yml index f2c7cf0d..90e625e5 100644 --- a/.github/workflows/deploy-Dataspace-dev.yml +++ b/.github/workflows/deploy-Dataspace-dev.yml @@ -117,3 +117,12 @@ jobs: mv DataExchange/DataExFrontend/.next_backup DataExchange/DataExFrontend/.next mv DataExchange/DataExFrontend/public_backup DataExchange/DataExFrontend/public /home/ubuntu/.nvm/versions/node/v20.11.1/bin/pm2 restart dataspace + + notify_success: + name: ✅ Deployment & Smoke Test Passed + needs: smoke_tests + if: success() + runs-on: ubuntu-latest + + steps: + - run: echo "✅ Smoke tests passed. Deployment is stable." \ No newline at end of file