ben-c-at-moz is running smoke tests #981
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: Mac and Windows Smoke | |
run-name: ${{ github.actor }} is running smoke tests | |
on: | |
pull_request: | |
workflow_call: | |
inputs: | |
job_to_run: | |
required: true | |
type: string | |
permissions: | |
contents: 'write' | |
env: | |
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'}} | |
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 | |
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 | |
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: 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' | |
env: | |
TESTRAIL_BASE_URL: ${{ secrets.TESTRAIL_BASE_URL }} | |
TESTRAIL_API_KEY: ${{ secrets.TESTRAIL_API_KEY }} | |
TESTRAIL_USERNAME: ${{ secrets.TESTRAIL_USERNAME }} | |
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 pytest -n 4 . | |
$env:TEST_EXIT_CODE = $LASTEXITCODE | |
mv artifacts artifacts-win || true | |
exit $env:TEST_EXIT_CODE | |
- name: Commit Changed Tracker Files | |
if: ${{ inputs.job_to_run == 'Smoke-Windows' }} | |
run: | | |
git config --global user.email ${{ github.actor }}@users.noreply.github.com; | |
git config --global user.name ${{ github.actor }}; | |
git add win-latest-reported-version; | |
git commit -m "update windows reported version"; | |
git push | |
- name: Run Smoke Tests in Win (Headed) | |
if: steps.setup.conclusion == 'success' && always() | |
env: | |
TESTRAIL_BASE_URL: ${{ secrets.TESTRAIL_BASE_URL }} | |
TESTRAIL_API_KEY: ${{ secrets.TESTRAIL_API_KEY }} | |
TESTRAIL_USERNAME: ${{ secrets.TESTRAIL_USERNAME }} | |
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 pytest . | |
$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'}} | |
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: Set Environment | |
if: ${{ inputs.job_to_run == 'Smoke-MacOS' }} | |
run: | |
echo "TESTRAIL_REPORT='true'" >> "$GITHUB_ENV"; | |
echo "Running report for most recent Beta on MacOS"; | |
- name: Install dependencies | |
id: setup | |
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; | |
bash ./collect_executables.sh; | |
- name: Run Smoke Tests in MacOS | |
if: steps.setup.conclusion == 'success' | |
env: | |
TESTRAIL_BASE_URL: ${{ secrets.TESTRAIL_BASE_URL }} | |
TESTRAIL_API_KEY: ${{ secrets.TESTRAIL_API_KEY }} | |
TESTRAIL_USERNAME: ${{ secrets.TESTRAIL_USERNAME }} | |
FX_EXECUTABLE: /Volumes/Firefox/Firefox.app/Contents/MacOS/firefox | |
run: | | |
/Volumes/Firefox/Firefox.app/Contents/MacOS/firefox --version | |
pipenv run pytest --fx-executable="$FX_EXECUTABLE" -n 4 . || TEST_EXIT_CODE=$? | |
mv artifacts artifacts-mac || true | |
exit $TEST_EXIT_CODE | |
- name: Commit Changed Tracker Files | |
if: ${{ inputs.job_to_run == 'Smoke-MacOS' }} | |
run: | | |
git config --global user.email ${{ github.actor }}@users.noreply.github.com; | |
git config --global user.name ${{ github.actor }}; | |
git add mac-latest-reported-version; | |
git commit -m "update macos reported version"; | |
git push | |
- name: Run Smoke Tests in MacOS (Headed) | |
if: steps.setup.conclusion == 'success' && always() | |
env: | |
TESTRAIL_BASE_URL: ${{ secrets.TESTRAIL_BASE_URL }} | |
TESTRAIL_API_KEY: ${{ secrets.TESTRAIL_API_KEY }} | |
TESTRAIL_USERNAME: ${{ secrets.TESTRAIL_USERNAME }} | |
FX_EXECUTABLE: /Volumes/Firefox/Firefox.app/Contents/MacOS/firefox | |
REPORTABLE: true | |
run: | | |
mv ./ci_pyproject_headed.toml ./pyproject.toml; | |
pipenv run pytest --fx-executable="$FX_EXECUTABLE" . || 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 | |
Use-Artifacts: | |
runs-on: ubuntu-latest | |
needs: | |
- Smoke-Windows | |
- Smoke-MacOS | |
if: ${{ always() && github.event_name == 'pull_request' }} | |
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 |