adding a notifier to make sure that deployment and smoke test passed #36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Update DataSpace Dev | ||
| on: | ||
| push: | ||
| branches: ['dev'] | ||
| jobs: | ||
| deploy: | ||
| name: Deploy to Dev Server | ||
| runs-on: ubuntu-latest | ||
| env: | ||
| 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 }} | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| - name: Install dependencies | ||
| run: npm install | ||
| - name: Generate | ||
| run: npm run generate | ||
| - name: Build | ||
| run: npm run build | ||
| - name: Rename .next to .next2 | ||
| run: mv .next .next2 | ||
| - name: Rename public to public2 | ||
| run: mv public public2 | ||
| - name: Backup existing .next and public folders | ||
| uses: appleboy/[email protected] | ||
| 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: | ||
| host: ${{ secrets.EC2_HOST_DEV_DS }} | ||
| username: ${{ secrets.EC2_USERNAME_DS }} | ||
| key: ${{ secrets.EC2_PRIVATE_KEY }} | ||
| source: .next2 | ||
| target: DataExchange/DataExFrontend | ||
| - name: Send public2 to EC2 | ||
| uses: appleboy/scp-action@master | ||
| with: | ||
| host: ${{ secrets.EC2_HOST_DEV_DS }} | ||
| username: ${{ secrets.EC2_USERNAME_DS }} | ||
| key: ${{ secrets.EC2_PRIVATE_KEY }} | ||
| source: public2 | ||
| target: DataExchange/DataExFrontend | ||
| - name: Update with new Build | ||
| uses: appleboy/[email protected] | ||
| 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/.next2 DataExchange/DataExFrontend/.next | ||
| mv DataExchange/DataExFrontend/public2 DataExchange/DataExFrontend/public | ||
| /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 }} | ||
| 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/[email protected] | ||
| 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 | ||
| 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." | ||