Skip to content

main-e2e-tests

main-e2e-tests #304

Workflow file for this run

name: main-e2e-tests
on:
workflow_dispatch:
inputs:
smoketest:
required: true
description: 'Is this a smoke test?'
default: 'false'
localtest:
required: true
description: 'Is this a local test?'
default: 'false'
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
env:
CYPRESS_users: ${{ secrets.CYPRESS_USERS }}
CYPRESS_BASE_URL: ${{ secrets.CYPRESS_BASEURL }}
CYPRESS_host: ${{ secrets.CYPRESS_HOST }}
CYPRESS_guid: ${{ secrets.CYPRESS_GUID }}
CYPRESS_ENVIRONMENT: ${{ github.base_ref }}
CYPRESS_loginproxy: ${{ secrets.CYPRESS_LOGINPROXY }}
CYPRESS_siteminder: ${{ secrets.CYPRESS_SITEMINDER }}
CYPRESS_smoketest: ${{inputs.smoketest}}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
pre-reqs:
runs-on: ubuntu-latest
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: Pre-requisites for test run
uses: cypress-io/github-action@v6
id: prereq
continue-on-error: false
with:
summary-title: 'Pre-reqs'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/integration-990-deleteAllIntegrations.cy.ts
cypress/e2e/**/team-900-*.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: pre-req-results
path: testing/mochawesome-report/report.html
smoke-test:
runs-on: ubuntu-latest
needs: [pre-reqs]
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: E2E Smoke tests
uses: cypress-io/github-action@v6
id: smoke
continue-on-error: false
with:
summary-title: 'E2E Smoke tests'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/smoke/smoke-*-*.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: smoke-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
if: failure() && github.ref == 'refs/heads/main'
uses: ./.github/actions/rocket-chat-notification
with:
text: '*Smoke Tests*'
job-status: ${{ job.status }}
webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
integration-tests:
runs-on: ubuntu-latest
needs: [pre-reqs]
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: Integration tests
uses: cypress-io/github-action@v6
id: integration-requests-tests
continue-on-error: false
with:
summary-title: 'Request Integration tests'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/integrations-crud.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: integration-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
if: failure() && github.ref == 'refs/heads/main'
uses: ./.github/actions/rocket-chat-notification
with:
text: '*Integration Tests*'
job-status: ${{ job.status }}
webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
roles-tests:
runs-on: ubuntu-latest
needs: [pre-reqs]
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: Roles tests
uses: cypress-io/github-action@v6
id: roles-tests
continue-on-error: false
with:
summary-title: 'Roles tests'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/integration-roles.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Install bun
uses: oven-sh/setup-bun@v1
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: roles-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
if: failure() && github.ref == 'refs/heads/main'
uses: ./.github/actions/rocket-chat-notification
with:
text: '*Roles Tests*'
job-status: ${{ job.status }}
webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
search-tests:
runs-on: ubuntu-latest
needs: [pre-reqs]
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: Search Users
uses: cypress-io/github-action@v6
id: search-users
continue-on-error: false
with:
summary-title: 'Search Users tests'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/search-users.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: search-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
if: failure() && github.ref == 'refs/heads/main'
uses: ./.github/actions/rocket-chat-notification
with:
text: '*Search Tests*'
job-status: ${{ job.status }}
webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
team-tests:
runs-on: ubuntu-latest
needs: [pre-reqs]
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: Team Tests
uses: cypress-io/github-action@v6
id: teams
continue-on-error: false
with:
summary-title: 'Team tests'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/team-tests.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: team-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
if: failure() && github.ref == 'refs/heads/main'
uses: ./.github/actions/rocket-chat-notification
with:
text: '*Team Tests*'
job-status: ${{ job.status }}
webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
all-delete:
runs-on: ubuntu-latest
needs: [team-tests, roles-tests, search-tests, integration-tests]
if: always()
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
steps:
# Checkout the PR branch
- name: Checkout Target Branch
uses: actions/checkout@v4
- name: Teams Delete
uses: cypress-io/github-action@v6
id: teamsdelete
continue-on-error: false
with:
summary-title: 'Delete Teams and Integration'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/integration-990-deleteAllIntegrations.cy.ts
cypress/e2e/**/team-900-*.cy.ts
browser: electron
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: all-delete-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
if: failure() && github.ref == 'refs/heads/main'
uses: ./.github/actions/rocket-chat-notification
with:
text: '*All Delete Tests*'
job-status: ${{ job.status }}
webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}