Skip to content

philimon-reset is running smoke tests #1845

philimon-reset is running smoke tests

philimon-reset is running smoke tests #1845

Workflow file for this run

---
name: Smoke Test Execution
run-name: ${{ github.actor }} is running smoke tests
on:
pull_request:
workflow_call:
inputs:
channel:
description: "Channel to run tests against"
default: "beta"
type: string
required: false
job_to_run:
required: true
type: string
workflow_dispatch:
inputs:
win_installer_link:
description: 'The link to the Windows installer (win64) for the Fx under test'
required: false
type: string
mac_installer_link:
description: 'The link to the macOS installer for the Fx under test'
required: false
type: string
linux_tarball_link:
description: 'The link to the Linux tarball (linux-x86_64) for the Fx under test'
required: false
type: string
env:
FX_CHANNEL: ${{ inputs.channel }}
TESTRAIL_BASE_URL: ${{ secrets.TESTRAIL_BASE_URL }}
TESTRAIL_API_KEY: ${{ secrets.TESTRAIL_API_KEY }}
TESTRAIL_USERNAME: ${{ secrets.TESTRAIL_USERNAME }}
SVC_ACCT_DECRYPT: ${{ secrets.SVC_ACCT_DECRYPT }}
jobs:
Smoke-Windows:
if: ${{ inputs.job_to_run == 'Smoke-Windows' || github.event_name == 'pull_request' || inputs.win_installer_link }}
runs-on: windows-latest
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.BOT_CLIENT_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Set Environment (Manual)
if: ${{ inputs.win_installer_link }}
run: |
$env_contents = @"
MANUAL='true'
"@
New-item -Name .env -Value $env_contents -ItemType File -Force
Write-Host "Running smoke tests on supplied executable"
- name: Set Environment (Scheduled Beta)
if: ${{ inputs.job_to_run == 'Smoke-Windows' }}
run: |
$env_contents = @"
TESTRAIL_REPORT='true'
"@
New-item -Name .env -Value $env_contents -ItemType File -Force
Write-Host "Running report for most recent Beta on Windows"
Write-Host "$env:TESTRAIL_USERNAME"
- name: Install dependencies
run: |
mkdir -p artifacts;
pip3 install 'pipenv==2023.11.15';
pip3 install 'ruff>=0.4.8,<0.5';
rm ./pyproject.toml;
mv ./ci_pyproject.toml ./pyproject.toml;
pipenv install;
- name: Download Geckodriver
run: |
$gecko_url = (pipenv run python collect_executables.py -g) -join "`n"
echo $gecko_url
Invoke-WebRequest -Uri $gecko_url -OutFile "geckodriver.zip"
unzip geckodriver.zip
shell: pwsh
- name: Download Beta
if: ${{ !inputs.win_installer_link }}
run: |
$fx_url = (pipenv run python collect_executables.py) -join "`n"
echo $fx_url
Invoke-WebRequest -Uri $fx_url -OutFile "${{ github.workspace }}\setup.exe"
New-Item -ItemType Directory -Path "C:\Program Files\Custom Firefox" -Force
shell: pwsh
- name: Download Executable
if: ${{ inputs.win_installer_link }}
run: |
Invoke-WebRequest -Uri ${{ inputs.win_installer_link }} -OutFile "${{ github.workspace }}\setup.exe"
New-Item -ItemType Directory -Path "C:\Program Files\Custom Firefox" -Force
shell: pwsh
- name: Install Beta
id: setup
run: |
Start-Process -FilePath "${{ github.workspace }}\setup.exe" -ArgumentList "/S", '/D=C:\Program Files\Custom Firefox' -Wait -NoNewWindow -PassThru
shell: pwsh
- name: Run Smoke Tests in Win
if: steps.setup.conclusion == 'success'
run: |
pipenv run python -c "import sys; print(sys.platform)"
$env:FX_EXECUTABLE = "C:\Program Files\Custom Firefox\firefox.exe"
Start-Process -FilePath $env:FX_EXECUTABLE -ArgumentList "--version" -Wait -NoNewWindow
pipenv run python choose_ci_set.py
pipenv run pytest -n 4 $(cat selected_tests)
$env:TEST_EXIT_CODE = $LASTEXITCODE
mv artifacts artifacts-win || true
exit $env:TEST_EXIT_CODE
- name: Run Smoke Tests in Win (Headed)
if: steps.setup.conclusion == 'success' && always()
env:
REPORTABLE: true
run: |
rm ./pyproject.toml;
mv ./ci_pyproject_headed.toml ./pyproject.toml;
$env:FX_EXECUTABLE = "C:\Program Files\Custom Firefox\firefox.exe"
pipenv run python choose_ci_set.py
pipenv run pytest $(cat selected_tests)
$env:TEST_EXIT_CODE = $LASTEXITCODE
rm artifacts/assets -r -Force
Get-ChildItem -Path "artifacts" | ForEach-Object {
$destPath = "artifacts-win\" + $_.Name
if (-not (Test-Path -Path $destPath)) {
try {
Move-Item -Path $_.FullName -Destination $destPath
} catch {
# Ignore errors and continue
}
}
}
exit $env:TEST_EXIT_CODE
- name: Upload artifacts
if: ${{ always() && github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: artifacts-win
path: artifacts-win
Smoke-MacOS:
if: ${{ inputs.job_to_run == 'Smoke-MacOS' || github.event_name == 'pull_request' || inputs.mac_installer_link }}
runs-on: macos-latest
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.BOT_CLIENT_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Check test case numbers
run: |
python check_test_cases.py
exit $?
echo "Triggered by event: ${{ github.event_name }}"
- name: Set Environment (Scheduled Beta)
if: ${{ inputs.job_to_run == 'Smoke-MacOS' }}
run: |
echo "TESTRAIL_REPORT='true'" >> "$GITHUB_ENV";
echo "Running report for most recent Beta on MacOS";
- name: Set Environment (Manual)
if: ${{ inputs.mac_installer_link }}
run: |
echo "MANUAL='true'" >> "$GITHUB_ENV";
echo "Running smoke tests on supplied executable";
- name: Install dependencies
run: |
mkdir -p artifacts;
pip3 install 'pipenv==2023.11.15';
pip3 install 'ruff>=0.4.8,<0.5';
rm ./pyproject.toml;
mv ./ci_pyproject.toml ./pyproject.toml;
pipenv install
- name: Install Fx
id: setup
env:
MANUAL_DOWNLOAD_LINK: ${{ inputs.mac_installer_link }}
run:
echo app_name=$(bash ./collect_executables.sh | xargs -0 ./parse_executables.sh) >> "$GITHUB_OUTPUT"
- name: Run Smoke Tests in MacOS
if: steps.setup.conclusion == 'success'
env:
FX_EXECUTABLE: /Volumes/${{ steps.setup.outputs.app_name }}/${{ steps.setup.outputs.app_name }}.app/Contents/MacOS/firefox
run: |
"$FX_EXECUTABLE" --version
pipenv run python choose_ci_set.py
pipenv run pytest --fx-executable="$FX_EXECUTABLE" -n 4 $(cat selected_tests) || TEST_EXIT_CODE=$?
mv artifacts artifacts-mac || true
exit $TEST_EXIT_CODE
- name: Run Smoke Tests in MacOS (Headed)
if: steps.setup.conclusion == 'success' && always()
env:
FX_EXECUTABLE: /Volumes/${{ steps.setup.outputs.app_name }}/${{ steps.setup.outputs.app_name }}.app/Contents/MacOS/firefox
REPORTABLE: true
run: |
mv ./ci_pyproject_headed.toml ./pyproject.toml;
pipenv run python choose_ci_set.py
pipenv run pytest --fx-executable="$FX_EXECUTABLE" $(cat selected_tests) || TEST_EXIT_CODE=$?
mv -n artifacts/* artifacts-mac/ || true
exit $TEST_EXIT_CODE
- name: Upload artifacts
if: ${{ always() && github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: artifacts-mac
path: artifacts-mac
Smoke-Linux:
if: ${{ inputs.linux_tarball_link }}
runs-on: ubuntu-latest
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.BOT_CLIENT_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Check test case numbers
run: |
python check_test_cases.py
exit $?
echo "Triggered by event: ${{ github.event_name }}"
- name: Install dependencies
id: setup
env:
MANUAL_DOWNLOAD_LINK: ${{ inputs.linux_tarball_link }}
run: |
echo "MANUAL='true'" >> "$GITHUB_ENV";
echo "Running smoke tests on supplied executable";
sudo apt install gnome-screenshot
uname -m;
mkdir -p artifacts;
pip3 install 'pipenv==2023.11.15';
pip3 install 'ruff>=0.4.8,<0.5';
rm ./pyproject.toml;
mv ./ci_xvfb_pyproject.toml ./pyproject.toml;
pipenv install;
./collect_executables.sh
./firefox/firefox --version;
#. ./keyring-unlock.sh;
- name: Run Smoke Tests in Ubuntu
if: steps.setup.conclusion == 'success'
env:
FX_EXECUTABLE: ./firefox/firefox
run: |
"$FX_EXECUTABLE" --version;
pipenv run python choose_ci_set.py;
Xvfb :99 -screen 0 '1600x1200x24' > artifacts/xvfb.log &
DISPLAY=:99 pipenv run pytest --fx-executable="$FX_EXECUTABLE" -n 4 $(cat selected_tests) || TEST_EXIT_CODE=$?
exit $TEST_EXIT_CODE
- name: Run Smoke Tests in Ubuntu (Headed)
if: steps.setup.conclusion == 'success' && always()
env:
FX_EXECUTABLE: ./firefox/firefox
run: |
mv ./ci_xvfb_pyproject_headed.toml ./pyproject.toml;
pipenv run python choose_ci_set.py
DISPLAY=:99 pipenv run pytest --fx-executable="$FX_EXECUTABLE" $(cat selected_tests) || TEST_EXIT_CODE=$?
exit $TEST_EXIT_CODE
Use-Artifacts:
if: ${{ github.event_name != 'workflow_dispatch' }}
runs-on: ubuntu-latest
needs:
- Smoke-Windows
- Smoke-MacOS
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
pip3 install 'pipenv==2023.11.15'
pipenv install
- name: Download Windows artifact
uses: actions/download-artifact@v4
with:
name: artifacts-win
path: artifacts-win
- name: Download MacOS artifact
uses: actions/download-artifact@v4
with:
name: artifacts-mac
path: artifacts-mac
- name: List downloaded files
run: ls artifacts-win/
- name: List downloaded MacOS files
run: ls artifacts-mac/
- name: Run script with secret
env:
SLACK_KEY: ${{ secrets.SLACK_KEY }}
GCP_CREDENTIAL: ${{ secrets.GCP_CREDENTIAL }}
GITHUB_SHA: ${{ github.sha }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_REF_NAME: ${{ github.ref_name }}
run: |
pipenv run python notifier.py