E2E Tests Custom #27
This file contains 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: E2E Tests Custom | |
on: | |
workflow_dispatch: | |
inputs: | |
testsPath: | |
description: 'Path to Tests to be Executed' | |
default: '' | |
browsers: | |
description: 'Comma-separated list of browsers to execute tests against (e.g., chrome,firefox,edge)' | |
default: 'all' | |
jobs: | |
preprocess: | |
runs-on: ubuntu-latest | |
outputs: | |
selected: ${{ steps.process.outputs.selected }} | |
steps: | |
- name: Process Browser Input | |
id: process | |
run: | | |
browsers="${{ github.event.inputs.browsers }}" | |
echo "Selected browsers: $browsers" | |
echo "::set-output name=selected::$browsers" | |
- name: Get Latest Allure Version | |
id: allure_version | |
shell: pwsh | |
run: | | |
$response = Invoke-RestMethod -Uri "https://api.github.com/repos/allure-framework/allure2/releases/latest" | |
$allure_version = $response.tag_name | |
echo "Latest Allure version: $allure_version" | |
echo "::set-output name=version::$allure_version" | |
- name: Download Allure | |
shell: pwsh | |
run: | | |
$version = "${{ steps.allure_version.outputs.version }}" | |
Invoke-WebRequest -Uri "https://github.com/allure-framework/allure2/releases/download/$version/allure-$version.zip" -OutFile "allure.zip" | |
- name: Extract Allure | |
shell: pwsh | |
run: Expand-Archive -Path "allure.zip" -DestinationPath "$env:ProgramFiles" | |
- name: Add Allure to PATH | |
shell: pwsh | |
run: | | |
$allurePath = Join-Path $env:ProgramFiles "allure-${{ github.event.inputs.allureVersion }}\bin" | |
$env:PATH = "$allurePath;$env:PATH" | |
echo $env:PATH | |
- name: Verify Allure Installation | |
shell: pwsh | |
run: | | |
$allurePath = Join-Path $env:ProgramFiles "allure-${{ github.event.inputs.allureVersion }}\bin\allure.bat" | |
if (Test-Path $allurePath) { | |
Write-Host "Allure is correctly installed." | |
} else { | |
Write-Error "Allure command not found!" | |
} | |
E2E_Chrome_Windows_Test: | |
runs-on: windows-latest | |
needs: preprocess | |
if: contains(needs.preprocess.outputs.selected, 'chrome') || contains(needs.preprocess.outputs.selected, 'all') | |
permissions: | |
checks: write | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.6 | |
- name: Run Tests on Chrome | |
continue-on-error: true | |
run: mvn test -DtargetBrowserName="chrome" -DexecutionAddress="local" -DtargetOperatingSystem="WINDOWS" -DheadlessExecution="true" -Dtest="${{ github.event.inputs.testsPath }}" | |
- name: Generate Allure Report | |
run: allure generate build/allure-results --single-file -o allure-report | |
- name: Upload Allure Report as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Allure_Report | |
path: allure-report/* | |
# - name: Generate Allure Report | |
# run: .\allure.bat generate --single-file -o allure-report | |
# - name: Upload Allure Report as Artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: Chrome_Windows_Allure | |
# path: allure-report/* | |
E2E_Firefox_Windows_Test: | |
runs-on: windows-latest | |
needs: preprocess | |
if: contains(needs.preprocess.outputs.selected, 'firefox') || contains(needs.preprocess.outputs.selected, 'all') | |
permissions: | |
checks: write | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.6 | |
- name: Run Tests on Firefox | |
continue-on-error: true | |
run: mvn test -DtargetBrowserName="firefox" -DexecutionAddress="local" -DtargetOperatingSystem="WINDOWS" -DheadlessExecution="true" -Dtest="${{ github.event.inputs.testsPath }}" | |
E2E_Edge_Windows_Test: | |
runs-on: windows-latest | |
needs: preprocess | |
if: contains(needs.preprocess.outputs.selected, 'edge') || contains(needs.preprocess.outputs.selected, 'all') | |
permissions: | |
checks: write | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.6 | |
- name: Run Tests on Edge | |
continue-on-error: true | |
run: mvn test -DtargetBrowserName="microsoftedge" -DexecutionAddress="local" -DtargetOperatingSystem="WINDOWS" -DheadlessExecution="true" -Dtest="${{ github.event.inputs.testsPath }}" | |
# - name: Generate Allure Report | |
# run: .\allure.bat generate --single-file -o allure-report | |
# - name: Upload Allure Report as Artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: Edge_Windows_Allure | |
# path: allure-report/* |