Production Smoke Tests #1240
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: Production Smoke Tests | |
on: | |
schedule: | |
# 9am UTC = 5am EST | |
- cron: '0 9 * * *' | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
DRIVER: "Remote" | |
DOMAIN: prod | |
NEW_USER_EMAIL: ${{ secrets.NEW_USER_EMAIL }} | |
BSTACK_USER: ${{ secrets.BROWSERSTACK_USERNAME }} | |
BSTACK_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
USER_ONE: ${{ secrets.USER_ONE }} | |
USER_ONE_PASSWORD: ${{ secrets.USER_ONE_PASSWORD }} | |
USER_TWO: ${{ secrets.USER_TWO }} | |
USER_TWO_PASSWORD: ${{ secrets.USER_TWO_PASSWORD }} | |
DEACTIVATED_USER: ${{ secrets.DEACTIVATED_USER }} | |
DEACTIVATED_USER_PASSWORD: ${{ secrets.DEACTIVATED_USER_PASSWORD }} | |
UNCONFIRMED_USER: ${{ secrets.UNCONFIRMED_USER }} | |
UNCONFIRMED_USER_PASSWORD: ${{ secrets.UNCONFIRMED_USER_PASSWORD }} | |
CAS_2FA_USER: ${{ secrets.CAS_2FA_USER }} | |
CAS_2FA_USER_PASSWORD: ${{ secrets.CAS_2FA_USER_PASSWORD }} | |
CAS_TOS_USER: ${{ secrets.CAS_TOS_USER }} | |
CAS_TOS_USER_PASSWORD: ${{ secrets.CAS_TOS_USER_PASSWORD }} | |
DEVAPP_CLIENT_ID: ${{ secrets.DEVAPP_CLIENT_ID }} | |
DEVAPP_CLIENT_SECRET: ${{ secrets.DEVAPP_CLIENT_SECRET }} | |
IMAP_EMAIL: ${{ secrets.IMAP_EMAIL }} | |
IMAP_EMAIL_PASSWORD: ${{ secrets.IMAP_EMAIL_PASSWORD }} | |
IMAP_HOST: ${{ secrets.IMAP_HOST }} | |
REGISTRATIONS_USER: ${{ secrets.REGISTRATIONS_USER }} | |
REGISTRATIONS_USER_PASSWORD: ${{ secrets.REGISTRATIONS_USER_PASSWORD }} | |
PREFERRED_NODE: ${{ secrets.PREFERRED_NODE }} | |
POPULAR_PAGES: ${{ secrets.POPULAR_PAGES }} | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
env: | |
GHA_DISTRO: ubuntu-20.04 | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
strategy: | |
matrix: | |
python-version: [3.9] | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache Build Requirements | |
id: pip-cache-step | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ env.GHA_DISTRO }}-${{ env.pythonLocation }}-${{ hashFiles('requirements.txt') }} | |
- name: install dependencies | |
if: steps.pip-cache-step.outputs.cache-hit != 'true' | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
invoke requirements | |
smoke_test: | |
name: Prod smoke tests (${{ matrix.browser }}) | |
needs: build | |
runs-on: ubuntu-20.04 | |
env: | |
GHA_DISTRO: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
max-parallel: 1 # run in series | |
matrix: | |
browser: [chrome, firefox, edge] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Cache pip | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ env.GHA_DISTRO }}-${{ env.pythonLocation }}-${{ hashFiles('requirements.txt') }} | |
- name: run smoke tests | |
env: | |
TEST_BUILD: ${{ matrix.browser }} | |
run: | | |
invoke test_selenium_on_prod |