Skip to content

Cypress Integration Test Workflow #138

Cypress Integration Test Workflow

Cypress Integration Test Workflow #138

name: Cypress Integration Test Workflow
on:
workflow_dispatch:
inputs:
commit_sha:
description: 'Commit sha: from your branch'
required: true
product:
description: 'App: Your target product directory within src/applications'
required: true
# TO-DO: create a solution that maintains an updated list of active products within src/applications
env:
VETS_WEBSITE_CHANNEL_ID: ''
jobs:
ecr-login:
name: Login to ECR
runs-on: ubuntu-latest
permissions: write-all
outputs:
ECR_USERNAME: ${{ steps.login-ecr.outputs.docker_username_008577686731_dkr_ecr_us_gov_west_1_amazonaws_com }}
ECR_PASSWORD: ${{ steps.login-ecr.outputs.docker_password_008577686731_dkr_ecr_us_gov_west_1_amazonaws_com }}
steps:
- name: Configure AWS Credentials
uses: aws-actions/[email protected]
with:
aws-region: us-gov-west-1
role-to-assume: arn:aws-us-gov:iam::008577686731:role/gha-frontend-nonprod-role
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
with:
mask-password: false
- name: Find the build
id: find-build
run: |
ARCHIVE_NAME=${{ github.event.inputs.commit_sha }}/vagovprod.tar.bz2
BUCKET_PATH=s3://vetsgov-website-builds-s3-upload/
df -H
aws s3 cp $BUCKET_PATH$ARCHIVE_NAME .
echo "1"
- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: dist-without-markdown
path: vagovprod.tar.bz2
retention-days: 1
integration-test:
name: Run Cypress Tests
runs-on: ubuntu-latest
permissions: write-all
needs: ecr-login
container:
image: 008577686731.dkr.ecr.us-gov-west-1.amazonaws.com/dsva/cypress-io/cypress/browsers:node16.16.0-chrome107-ff107-edge
credentials:
username: ${{ needs.ecr-login.outputs.ECR_USERNAME }}
password: ${{ needs.ecr-login.outputs.ECR_PASSWORD }}
steps:
- name: Checkout
uses: actions/checkout@cd7d8d697e10461458bc61a30d094dc601a8b017
- name: Determine slackGroup and specPattern
id: helper
run: |
chmod +x ./script/github-actions/cypress-integration-test.sh
./script/github-actions/cypress-integration-test.sh "${{ github.event.inputs.product }}"
- name: Configure AWS Credentials
uses: aws-actions/[email protected]
with:
aws-region: us-gov-west-1
role-to-assume: arn:aws-us-gov:iam::008577686731:role/gha-frontend-nonprod-role
- name: Get va-vsp-bot token
uses: ./.github/workflows/inject-secrets
with:
ssm_parameter: /devops/VA_VSP_BOT_GITHUB_TOKEN
env_variable_name: VA_VSP_BOT_GITHUB_TOKEN
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: dist-without-markdown
- name: Unpack artifact
run: |
mkdir vets-website
tar -xjf vagovprod.tar.bz2 -C vets-website
echo "2"
- name: Call reusable action
id: cypress-action
uses: department-of-veterans-affairs/vsp-github-actions/cypress-integration-test@cypress-integration-test-migration