DEV deploy - @devksingh4 #557
Workflow file for this run
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: Deploy all resources to DEV | |
| run-name: DEV deploy - @${{ github.actor }} | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| name: Run Unit Tests | |
| steps: | |
| - uses: actions/checkout@v4 | |
| env: | |
| HUSKY: "0" | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| cache: "yarn" | |
| - name: Restore Yarn Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: yarn-modules-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-dev | |
| restore-keys: | | |
| yarn-modules-${{ runner.os }}- | |
| - name: Run unit testing | |
| run: make test_unit | |
| build: | |
| runs-on: ubuntu-latest | |
| name: Build Application | |
| steps: | |
| - uses: actions/checkout@v4 | |
| env: | |
| HUSKY: "0" | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| cache: "yarn" | |
| - name: Restore Yarn Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: yarn-modules-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-dev | |
| restore-keys: | | |
| yarn-modules-${{ runner.os }}- | |
| - name: Run build | |
| run: make build | |
| env: | |
| HUSKY: "0" | |
| VITE_RUN_ENVIRONMENT: dev | |
| - name: Upload Build files | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| include-hidden-files: true | |
| name: build | |
| path: | | |
| .aws-sam/ | |
| dist/ | |
| dist_ui/ | |
| deploy-test-dev: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| contents: read | |
| deployments: read | |
| concurrency: | |
| group: ${{ github.event.repository.name }}-dev-env | |
| cancel-in-progress: false | |
| environment: "AWS DEV" | |
| name: Deploy to DEV and Run Live Tests | |
| needs: | |
| - test | |
| - build | |
| steps: | |
| - uses: actions/checkout@v4 | |
| env: | |
| HUSKY: "0" | |
| - name: Set up Node for testing | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| cache: "yarn" | |
| - name: Restore Yarn Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: yarn-modules-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-dev | |
| restore-keys: | | |
| yarn-modules-${{ runner.os }}- | |
| - name: Download Build files | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: build | |
| - uses: aws-actions/setup-sam@v2 | |
| with: | |
| use-installer: true | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.11 | |
| - uses: aws-actions/configure-aws-credentials@v4 | |
| with: | |
| role-to-assume: arn:aws:iam::427040638965:role/GitHubActionsRole | |
| role-session-name: Core_Dev_Deployment_${{ github.run_id }} | |
| aws-region: us-east-1 | |
| - name: Get latest deployment SHA | |
| id: get_last_deploy | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const deployments = await github.rest.repos.listDeployments({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| environment: 'AWS DEV', | |
| per_page: 1 | |
| }); | |
| if (deployments.data.length > 0) { | |
| return deployments.data[0].sha; | |
| } | |
| return null; | |
| - name: Determine deployment status | |
| id: check_commits | |
| run: | | |
| echo "Last deployed SHA: ${{ steps.get_last_deploy.outputs.result }}" | |
| echo "Current SHA: ${{ github.sha }}" | |
| if [ "${{ steps.get_last_deploy.outputs.result }}" == "${{ github.sha }}" ]; then | |
| echo "This commit is already deployed to AWS DEV. Skipping deployment." | |
| echo "should_deploy=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "New commit detected. Proceeding with deployment." | |
| echo "should_deploy=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Publish to AWS | |
| if: steps.check_commits.outputs.should_deploy == 'true' | |
| run: make deploy_dev | |
| env: | |
| HUSKY: "0" | |
| VITE_RUN_ENVIRONMENT: dev | |
| - name: Run health check | |
| run: make dev_health_check | |
| - name: Run post-deploy testing (Live and E2E) | |
| run: make test_post_deploy -j 2 | |
| env: | |
| PLAYWRIGHT_USERNAME: ${{ secrets.PLAYWRIGHT_USERNAME }} | |
| PLAYWRIGHT_PASSWORD: ${{ secrets.PLAYWRIGHT_PASSWORD }} | |
| JWT_KEY: ${{ secrets.JWT_KEY }} |