From 70b41a4f17cd53a34e41256e02d5bf5b0ee3fc5f Mon Sep 17 00:00:00 2001 From: maguire-arman Date: Mon, 12 May 2025 10:51:55 -0400 Subject: [PATCH] Format Pipelines Ensures consistent formatting across YAML files by standardizing quotes. This improves readability and maintainability of the configuration files. --- azure-pipelines-automated-testing.yml | 330 +++++++++++++------------- azure-pipelines.yml | 52 ++-- 2 files changed, 191 insertions(+), 191 deletions(-) diff --git a/azure-pipelines-automated-testing.yml b/azure-pipelines-automated-testing.yml index fbc1815cf..746906a04 100644 --- a/azure-pipelines-automated-testing.yml +++ b/azure-pipelines-automated-testing.yml @@ -1,187 +1,187 @@ trigger: none schedules: -- cron: 0 9 * * MON-FRI - always: true - displayName: Daily Test Automation Run for FMG-NextGen - branches: - include: - - develop -pool: 'Default' + - cron: 0 9 * * MON-FRI + always: true + displayName: Daily Test Automation Run for FMG-NextGen + branches: + include: + - develop +pool: "Default" variables: - # - group: Digital-Infrastructure - # - group: FMG-BuildBranches - - name: dockerImageName - value: 'playwright-tests' - - name: imageTag - value: '$(Build.BuildId)' - - name: totalShards - value: 4 - - name: IS_REGRESSION - value: 'true' - - name: JIRA_BOARD_ID - value: '845' - - name: JIRA_EPIC_KEY - value: 'CASH-208' - - name: JIRA_PROJECT_KEY - value: 'CASH' + # - group: Digital-Infrastructure + # - group: FMG-BuildBranches + - name: dockerImageName + value: "playwright-tests" + - name: imageTag + value: "$(Build.BuildId)" + - name: totalShards + value: 4 + - name: IS_REGRESSION + value: "true" + - name: JIRA_BOARD_ID + value: "845" + - name: JIRA_EPIC_KEY + value: "CASH-208" + - name: JIRA_PROJECT_KEY + value: "CASH" stages: - - stage: TestPr - displayName: Run Playwright Test - jobs: - - job: playwright_tests - continueOnError: true - strategy: - matrix: - shard1: - shardNumber: 1 - shard2: - shardNumber: 2 - shard3: - shardNumber: 3 - shard4: - shardNumber: 4 + - stage: TestPr + displayName: Run Playwright Test + jobs: + - job: playwright_tests + continueOnError: true + strategy: + matrix: + shard1: + shardNumber: 1 + shard2: + shardNumber: 2 + shard3: + shardNumber: 3 + shard4: + shardNumber: 4 - steps: - - task: Docker@2 - displayName: 'Build Docker Image' - inputs: - command: build - dockerfile: Dockerfile.playwright - repository: $(dockerImageName) - tags: $(imageTag) - arguments: '--no-cache --pull' + steps: + - task: Docker@2 + displayName: "Build Docker Image" + inputs: + command: build + dockerfile: Dockerfile.playwright + repository: $(dockerImageName) + tags: $(imageTag) + arguments: "--no-cache --pull" - - script: | - # Create container and run tests - container_id=$(docker create \ - --ipc=host \ - -e "CCIS_API_AUTH=$(CCIS_API_AUTH)" \ - -e "BASE_URL=$(BASE_URL)" \ - -e "CCIS_API_URL=$(CCIS_API_URL)" \ - -e "ADMIN_SERVICE_API_URL=$(ADMIN_SERVICE_API_URL)" \ - -e "SHARD=$(shardNumber)" \ - -e CI=true \ - -e "NODE_ENV=$(NODE_ENV)" \ - $(dockerImageName):$(imageTag) \ - npx concurrently -k -n "server,playwright"\ - "sed -i \"s|^process\.env\.VUE_APP_CONSUMER_CF_DISTRO = .*|process\.env\.VUE_APP_CONSUMER_CF_DISTRO='https://digitalapi.test.safelite.io'|\" \"./vue.config.js\" && echo \"Updated config file to use TEST APIs\" && npm run serve -- --port=8080"\ - "npx wait-on http://localhost:8080/fmg/ && npm run test:playwright -- --shard=$(shardNumber)/$(totalShards) --reporter=list,blob --grep \"@CASH|@Alert\"") + - script: | + # Create container and run tests + container_id=$(docker create \ + --ipc=host \ + -e "CCIS_API_AUTH=$(CCIS_API_AUTH)" \ + -e "BASE_URL=$(BASE_URL)" \ + -e "CCIS_API_URL=$(CCIS_API_URL)" \ + -e "ADMIN_SERVICE_API_URL=$(ADMIN_SERVICE_API_URL)" \ + -e "SHARD=$(shardNumber)" \ + -e CI=true \ + -e "NODE_ENV=$(NODE_ENV)" \ + $(dockerImageName):$(imageTag) \ + npx concurrently -k -n "server,playwright"\ + "sed -i \"s|^process\.env\.VUE_APP_CONSUMER_CF_DISTRO = .*|process\.env\.VUE_APP_CONSUMER_CF_DISTRO='https://digitalapi.test.safelite.io'|\" \"./vue.config.js\" && echo \"Updated config file to use TEST APIs\" && npm run serve -- --port=8080"\ + "npx wait-on http://localhost:8080/fmg/ && npm run test:playwright -- --shard=$(shardNumber)/$(totalShards) --reporter=list,blob --grep \"@CASH|@Alert\"") - # Start container and stream logs - echo "Starting tests for shard $(shardNumber)..." - docker start -a $container_id + # Start container and stream logs + echo "Starting tests for shard $(shardNumber)..." + docker start -a $container_id - # Create directory for test results - echo "Creating test results directory..." - mkdir -p $(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber) + # Create directory for test results + echo "Creating test results directory..." + mkdir -p $(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber) - # Copy test results from container - echo "Copying test results..." - docker cp $container_id:/app/blob-report/. $(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber)/ + # Copy test results from container + echo "Copying test results..." + docker cp $container_id:/app/blob-report/. $(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber)/ - # Remove container - echo "Cleaning up container..." - docker rm $container_id + # Remove container + echo "Cleaning up container..." + docker rm $container_id - # Check if tests failed - if [ $? -ne 0 ]; then - echo "Tests failed in shard $(shardNumber) or tests don't exist for this shard number!" - exit 0 # Suppress error. It will be visible in report. - fi - displayName: 'Run Playwright Tests - Shard $(shardNumber)' + # Check if tests failed + if [ $? -ne 0 ]; then + echo "Tests failed in shard $(shardNumber) or tests don't exist for this shard number!" + exit 0 # Suppress error. It will be visible in report. + fi + displayName: "Run Playwright Tests - Shard $(shardNumber)" - - task: PublishPipelineArtifact@1 - displayName: 'Publish Test Reports - Shard $(shardNumber)' - condition: always() - inputs: - targetPath: '$(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber)' - artifact: 'playwright-report-shard-$(shardNumber)' - publishLocation: 'pipeline' + - task: PublishPipelineArtifact@1 + displayName: "Publish Test Reports - Shard $(shardNumber)" + condition: always() + inputs: + targetPath: "$(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber)" + artifact: "playwright-report-shard-$(shardNumber)" + publishLocation: "pipeline" - - script: | - docker rmi $(dockerImageName):$(imageTag) -f - displayName: 'Cleanup Docker Image' - condition: always() + - script: | + docker rmi $(dockerImageName):$(imageTag) -f + displayName: "Cleanup Docker Image" + condition: always() - - job: download_and_merge_reports - dependsOn: playwright_tests - timeoutInMinutes: 8 - cancelTimeoutInMinutes: 10 - steps: - - task: DownloadPipelineArtifact@2 - inputs: - targetPath: '$(System.DefaultWorkingDirectory)/playwright-reports' - - task: Docker@2 - displayName: 'Build Docker Image' - inputs: - command: build - dockerfile: Dockerfile.playwright - repository: $(dockerImageName) - tags: $(imageTag) - arguments: '--no-cache --pull' - - bash: | - # Create container for jira writeback - container_id=$(docker create \ - --ipc=host \ - -e "JIRA_SERVER=$(JIRA_SERVER)" \ - -e "JIRA_USERNAME=$(JIRA_USERNAME)" \ - -e "JIRA_API_KEY=$(JIRA_API_KEY)" \ - -e "IS_REGRESSION=$(IS_REGRESSION)" \ - -e "JIRA_BOARD_ID=$(JIRA_BOARD_ID)" \ - -e "JIRA_EPIC_KEY=$(JIRA_EPIC_KEY)" \ - -e "JIRA_PROJECT_KEY=$(JIRA_PROJECT_KEY)" \ - $(dockerImageName):$(imageTag) \ - bash -c "echo \"Moving Playwright reports out of subfolders...\" && - find ./playwright-reports/ -mindepth 2 -type f -exec mv {} ./playwright-reports/ \; && - echo \"Merging reports...\" && - PLAYWRIGHT_JUNIT_OUTPUT_DIR='/app/test-results' PLAYWRIGHT_JUNIT_OUTPUT_NAME='junit_results.xml' npx playwright merge-reports --reporter='playwright-tests/impl/reporter/JiraWritebackReporter.ts',junit ./playwright-reports - echo \"Contents of ortoni-report:\" && ls ./ortoni-report && - echo 'Current dir: ' && pwd - echo 'Contents of current dir: ' && ls - echo 'Contents of /app/test-results' && ls /app/test-results ") + - job: download_and_merge_reports + dependsOn: playwright_tests + timeoutInMinutes: 8 + cancelTimeoutInMinutes: 10 + steps: + - task: DownloadPipelineArtifact@2 + inputs: + targetPath: "$(System.DefaultWorkingDirectory)/playwright-reports" + - task: Docker@2 + displayName: "Build Docker Image" + inputs: + command: build + dockerfile: Dockerfile.playwright + repository: $(dockerImageName) + tags: $(imageTag) + arguments: "--no-cache --pull" + - bash: | + # Create container for jira writeback + container_id=$(docker create \ + --ipc=host \ + -e "JIRA_SERVER=$(JIRA_SERVER)" \ + -e "JIRA_USERNAME=$(JIRA_USERNAME)" \ + -e "JIRA_API_KEY=$(JIRA_API_KEY)" \ + -e "IS_REGRESSION=$(IS_REGRESSION)" \ + -e "JIRA_BOARD_ID=$(JIRA_BOARD_ID)" \ + -e "JIRA_EPIC_KEY=$(JIRA_EPIC_KEY)" \ + -e "JIRA_PROJECT_KEY=$(JIRA_PROJECT_KEY)" \ + $(dockerImageName):$(imageTag) \ + bash -c "echo \"Moving Playwright reports out of subfolders...\" && + find ./playwright-reports/ -mindepth 2 -type f -exec mv {} ./playwright-reports/ \; && + echo \"Merging reports...\" && + PLAYWRIGHT_JUNIT_OUTPUT_DIR='/app/test-results' PLAYWRIGHT_JUNIT_OUTPUT_NAME='junit_results.xml' npx playwright merge-reports --reporter='playwright-tests/impl/reporter/JiraWritebackReporter.ts',junit ./playwright-reports + echo \"Contents of ortoni-report:\" && ls ./ortoni-report && + echo 'Current dir: ' && pwd + echo 'Contents of current dir: ' && ls + echo 'Contents of /app/test-results' && ls /app/test-results ") - # Start container and stream logs - echo "Starting merge" - docker start -a $container_id + # Start container and stream logs + echo "Starting merge" + docker start -a $container_id - # Create directory for test results - echo "Creating test results directory..." - mkdir -p $(System.DefaultWorkingDirectory)/ortoni-report - mkdir -p $(System.DefaultWorkingDirectory)/test-results + # Create directory for test results + echo "Creating test results directory..." + mkdir -p $(System.DefaultWorkingDirectory)/ortoni-report + mkdir -p $(System.DefaultWorkingDirectory)/test-results - # Copy test results from container - echo "Copying test results..." - docker cp $container_id:/app/ortoni-report/. $(System.DefaultWorkingDirectory)/ortoni-report - docker cp $container_id:/app/test-results/junit_results.xml $(System.DefaultWorkingDirectory)/test-results + # Copy test results from container + echo "Copying test results..." + docker cp $container_id:/app/ortoni-report/. $(System.DefaultWorkingDirectory)/ortoni-report + docker cp $container_id:/app/test-results/junit_results.xml $(System.DefaultWorkingDirectory)/test-results - # Remove container - echo "Cleaning up container..." - docker rm $container_id - env: - JIRA_API_KEY: $(JIRA_API_KEY) - displayName: merge_and_publish_results_to_jira + # Remove container + echo "Cleaning up container..." + docker rm $container_id + env: + JIRA_API_KEY: $(JIRA_API_KEY) + displayName: merge_and_publish_results_to_jira - - task: PublishTestResults@2 - displayName: 'Publish test results' - inputs: - searchFolder: 'test-results' - testResultsFormat: 'JUnit' - testResultsFiles: 'junit_results.xml' - mergeTestResults: true - failTaskOnFailedTests: false - testRunTitle: 'Playwright Tests' - condition: succeededOrFailed() + - task: PublishTestResults@2 + displayName: "Publish test results" + inputs: + searchFolder: "test-results" + testResultsFormat: "JUnit" + testResultsFiles: "junit_results.xml" + mergeTestResults: true + failTaskOnFailedTests: false + testRunTitle: "Playwright Tests" + condition: succeededOrFailed() - - task: PublishPipelineArtifact@1 - displayName: 'Publish Merged Report' - condition: always() - inputs: - targetPath: '$(System.DefaultWorkingDirectory)/ortoni-report' - artifact: 'playwright-merged-report' - publishLocation: 'pipeline' - - script: | - docker rmi $(dockerImageName):$(imageTag) -f - displayName: 'Cleanup Docker Image' - condition: always() \ No newline at end of file + - task: PublishPipelineArtifact@1 + displayName: "Publish Merged Report" + condition: always() + inputs: + targetPath: "$(System.DefaultWorkingDirectory)/ortoni-report" + artifact: "playwright-merged-report" + publishLocation: "pipeline" + - script: | + docker rmi $(dockerImageName):$(imageTag) -f + displayName: "Cleanup Docker Image" + condition: always() diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2ee6c385a..a11fdf8ff 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -37,13 +37,13 @@ variables: - group: Digital-Infrastructure - group: FixMyGlass-BuildBranches - name: dockerImageName - value: 'playwright-tests' + value: "playwright-tests" - name: imageTag - value: '$(Build.BuildId)' + value: "$(Build.BuildId)" - name: totalShards value: 2 - name: IS_REGRESSION - value: 'false' + value: "false" stages: # PR's @@ -78,13 +78,13 @@ stages: steps: - task: Docker@2 - displayName: 'Build Docker Image' + displayName: "Build Docker Image" inputs: command: build dockerfile: Dockerfile.playwright repository: $(dockerImageName) tags: $(imageTag) - arguments: '--no-cache --pull' + arguments: "--no-cache --pull" - script: | branch_name=$(System.PullRequest.SourceBranch) @@ -125,19 +125,19 @@ stages: echo "Tests failed in shard $(shardNumber) or tests don't exist for this shard number!" exit 0 # Suppress error. It will be visible in report. fi - displayName: 'Run Playwright Tests - Shard $(shardNumber)' + displayName: "Run Playwright Tests - Shard $(shardNumber)" - task: PublishPipelineArtifact@1 - displayName: 'Publish Test Reports - Shard $(shardNumber)' + displayName: "Publish Test Reports - Shard $(shardNumber)" condition: always() inputs: - targetPath: '$(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber)' - artifact: 'playwright-report-shard-$(shardNumber)' - publishLocation: 'pipeline' + targetPath: "$(System.DefaultWorkingDirectory)/blob-reports/shard-$(shardNumber)" + artifact: "playwright-report-shard-$(shardNumber)" + publishLocation: "pipeline" - script: | docker rmi $(dockerImageName):$(imageTag) -f - displayName: 'Cleanup Docker Image' + displayName: "Cleanup Docker Image" condition: always() # Add job to merge test reports and update Jira @@ -148,15 +148,15 @@ stages: steps: - task: DownloadPipelineArtifact@2 inputs: - targetPath: '$(System.DefaultWorkingDirectory)/playwright-reports' + targetPath: "$(System.DefaultWorkingDirectory)/playwright-reports" - task: Docker@2 - displayName: 'Build Docker Image' + displayName: "Build Docker Image" inputs: command: build dockerfile: Dockerfile.playwright repository: $(dockerImageName) tags: $(imageTag) - arguments: '--no-cache --pull' + arguments: "--no-cache --pull" - bash: | branch_name=$(System.PullRequest.SourceBranch) echo "Retrieved branch name: '$branch_name'" @@ -200,30 +200,30 @@ stages: echo "Cleaning up container..." docker rm $container_id env: - JIRA_API_KEY: $(JIRA_API_KEY) + JIRA_API_KEY: $(JIRA_API_KEY) displayName: merge_and_publish_results_to_jira - task: PublishTestResults@2 - displayName: 'Publish test results' + displayName: "Publish test results" inputs: - searchFolder: 'test-results' - testResultsFormat: 'JUnit' - testResultsFiles: 'junit_results.xml' + searchFolder: "test-results" + testResultsFormat: "JUnit" + testResultsFiles: "junit_results.xml" mergeTestResults: true failTaskOnFailedTests: false - testRunTitle: 'Playwright Tests' + testRunTitle: "Playwright Tests" condition: succeededOrFailed() - task: PublishPipelineArtifact@1 - displayName: 'Publish Merged Report' + displayName: "Publish Merged Report" condition: always() inputs: - targetPath: '$(System.DefaultWorkingDirectory)/ortoni-report' - artifact: 'playwright-merged-report' - publishLocation: 'pipeline' + targetPath: "$(System.DefaultWorkingDirectory)/ortoni-report" + artifact: "playwright-merged-report" + publishLocation: "pipeline" - script: | docker rmi $(dockerImageName):$(imageTag) -f - displayName: 'Cleanup Docker Image' + displayName: "Cleanup Docker Image" condition: always() - ${{ else }}: # Dev Build/Deploy @@ -473,4 +473,4 @@ stages: parameters: dependsOn: prodBuildDeployment userName: SafeliteAzureDevops - userEmail: githubazuredevops@safelite.com \ No newline at end of file + userEmail: githubazuredevops@safelite.com