vsangereanMOZ is running smoke tests #908
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 | |
jobs: | |
Smoke-Windows: | |
if: ${{ inputs.job_to_run == 'Smoke-Windows' || github.event_name == 'pull_request'}} | |
runs-on: windows-latest | |
steps: | |
- name: Set Environment | |
if: ${{ inputs.job_to_run == 'Smoke-Windows' }} | |
run: | |
echo "TESTRAIL_REPORT='true'" >> "$GITHUB_ENV"; | |
echo "TESTRAIL_BASE_URL="${{ secrets.TESTRAIL_BASE_URL }} >> "$GITHUB_ENV"; | |
echo "TESTRAIL_USERNAME="${{ secrets.TESTRAIL_USERNAME }} >> "$GITHUB_ENV"; | |
echo "TESTRAIL_API_KEY="${{ secrets.TESTRAIL_API_KEY }} >> "$GITHUB_ENV"; | |
echo "Running report for most recent Beta on Windows" | |
- 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: | | |
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' | |
run: | | |
pipenv run python -c "import sys; print(sys.platform)" | |
Start-Process -FilePath "C:\Program Files\Custom Firefox\firefox.exe" -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 remote set-head origin --auto | |
git add win-latest-reported-version | |
git commit -m "update windows reported version" | |
- name: Run Smoke Tests in Win (Headed) | |
if: steps.setup.conclusion == 'success' && always() | |
run: | | |
rm ./pyproject.toml; | |
mv ./ci_pyproject_headed.toml ./pyproject.toml; | |
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: Set Environment | |
if: ${{ inputs.job_to_run == 'Smoke-MacOS' }} | |
run: | |
echo "TESTRAIL_REPORT='true'" >> "$GITHUB_ENV"; | |
echo "TESTRAIL_BASE_URL="${{ secrets.TESTRAIL_BASE_URL }} >> "$GITHUB_ENV"; | |
echo "TESTRAIL_USERNAME="${{ secrets.TESTRAIL_USERNAME }} >> "$GITHUB_ENV"; | |
echo "TESTRAIL_API_KEY="${{ secrets.TESTRAIL_API_KEY }} >> "$GITHUB_ENV"; | |
echo "Running report for most recent Beta on MacOS" | |
- 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 | |
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' | |
run: | | |
/Volumes/Firefox/Firefox.app/Contents/MacOS/firefox --version | |
pipenv run pytest --fx-executable=/Volumes/Firefox/Firefox.app/Contents/MacOS/firefox -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 remote set-head origin --auto | |
git add mac-latest-reported-version | |
git commit -m "update macos reported version" | |
- name: Run Smoke Tests in MacOS (Headed) | |
if: steps.setup.conclusion == 'success' && always() | |
run: | | |
mv ./ci_pyproject_headed.toml ./pyproject.toml; | |
pipenv run pytest --fx-executable=/Volumes/Firefox/Firefox.app/Contents/MacOS/firefox . || 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 |