Skip to content

ben-c-at-moz is running smoke tests #916

ben-c-at-moz is running smoke tests

ben-c-at-moz is running smoke tests #916

Workflow file for this run

---
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