Experiment Smoke tests for fx-backup-stage #435
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
| # This is a basic workflow that is manually triggered | |
| name: Windows Klaatu Tests | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| branch: | |
| description: 'Experiment Branch' | |
| default: "['control']" | |
| required: true | |
| type: string | |
| slug: | |
| description: 'Experiment Slug' | |
| default: 'an-awesome-experiment' | |
| required: true | |
| type: string | |
| experiment-server: | |
| description: 'Experimenter Server' | |
| default: 'prod' | |
| required: false | |
| type: choice | |
| options: | |
| - stage | |
| - stage/preview | |
| - prod | |
| firefox-version: | |
| description: 'The Firefox Version(s) you want to test' | |
| default: "['latest-beta', 'latest', '123.0']" | |
| required: false | |
| type: string | |
| feature-name: | |
| description: 'The Feature you want to test' | |
| default: 'smoke' | |
| required: false | |
| type: choice | |
| options: | |
| - smoke | |
| extra-arguments: | |
| description: 'Additional testing arguments' | |
| default: '' | |
| required: false | |
| type: string | |
| env: | |
| MOZ_HEADLESS: 1 | |
| run-name: Experiment Smoke tests for ${{ inputs.slug }} | |
| jobs: | |
| klaatu-tests: | |
| runs-on: windows-2025 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| firefox: ${{ fromJSON(inputs.firefox-version) }} | |
| branch: ${{ fromJSON(inputs.branch) }} | |
| name: Smoke tests on windows for slug ${{ inputs.slug }} on firefox v${{ matrix.firefox }} branch ${{ matrix.branch }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup firefox | |
| id: setup-firefox | |
| uses: browser-actions/setup-firefox@v1 | |
| with: | |
| firefox-version: ${{ matrix.firefox }} | |
| env: | |
| FIREFOX_VERSION: ${{ steps.setup-firefox.outputs.firefox-version }} | |
| - run: | | |
| echo Installed firefox versions: $FIREFOX_VERSION | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Dependencies | |
| shell: pwsh | |
| run: choco install jdk8 selenium | |
| - name: Add Firefox to Path | |
| shell: powershell | |
| run: | | |
| $newPath = "C:\Program Files\Firefox_${{ matrix.firefox }}\firefox.exe" | |
| $currentPath = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") | |
| $newPath += ";$currentPath" | |
| [System.Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine") | |
| Write-Host "Path added to Windows PATH environment variable." | |
| - name: Verify Path | |
| shell: powershell | |
| run: | | |
| Write-Host "Current PATH environment variable:" | |
| [System.Environment]::GetEnvironmentVariable("PATH", "Machine") | |
| - name: Setup tests | |
| shell: bash | |
| run: ./setup_script.sh | |
| - name: Create SSL Certificate Files (Windows) | |
| shell: bash | |
| run: | | |
| openssl req -x509 -newkey rsa:2048 -keyout search_files/server.key -out search_files/server.cert -days 365 -nodes -subj "//CN=localhost" | |
| - name: Run Tests | |
| run: tox -e bdd-tests -- --experiment-branch ${{ matrix.branch }} --experiment-slug ${{ inputs.slug }} --experiment-server ${{inputs.experiment-server}} --private-browsing-enabled --firefox-path "C:\Program Files\Firefox_${{ matrix.firefox }}\firefox.exe" --driver-path "C:\SeleniumWebDrivers\GeckoDriver\geckodriver.exe" ${{ inputs.extra-arguments }} | |
| env: | |
| SE_BROWSER_PATH: 'C:\Program Files\Firefox_${{ matrix.firefox }}\firefox.exe' | |
| SE_OFFLINE: true | |
| - uses: actions/upload-artifact@v4 | |
| if: ${{ always() }} | |
| with: | |
| name: ${{ inputs.slug }} HTML Test Report on firefox v${{ matrix.firefox }} branch ${{ matrix.branch }} | |
| path: D:/a/klaatu/klaatu/tests/report.html |