philimon-reset is running smoke tests #1845
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
--- | |
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 |