Skip to content

main-e2e-tests

main-e2e-tests #122

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 }}
smoke-test:
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: 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: chrome
# 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
uses: RocketChat/Rocket.Chat.GitHub.Action.Notification@master
if: always() && github.ref == 'refs/heads/main'
with:
type: ${{ job.status }}
job_name: '*Smoke Test*'
mention_if: 'failure'
channel: '#sso-ops'
url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
create-integrations:
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: Request Creation tests
uses: cypress-io/github-action@v6
id: integration-requests-tests
continue-on-error: false
with:
summary-title: 'Create Integration data'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/integration-010-*.cy.ts
cypress/e2e/**/integration-040-*.cy.ts
browser: chrome
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Upload resulting integration data
uses: actions/upload-artifact@v4
with:
name: requestsafter
path: testing/cypress/fixtures/requestsafter.json
compression-level: 0
- name: Upload resulting integration roles data
uses: actions/upload-artifact@v4
with:
name: requestsrolesafter
path: testing/cypress/fixtures/requests-rolesafter.json
compression-level: 0
- name: Run the reports
run: |
cd testing
npm run report
- name: Upload Test Reports
uses: actions/upload-artifact@v4
with:
name: create-integrations
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
uses: RocketChat/Rocket.Chat.GitHub.Action.Notification@master
if: always() && github.ref == 'refs/heads/main'
with:
type: ${{ job.status }}
job_name: '*Create Integrations*'
mention_if: 'failure'
channel: '#sso-ops'
url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
integration-tests:
runs-on: ubuntu-latest
needs: [pre-reqs, create-integrations]
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: Download requestsafter data
uses: actions/download-artifact@v4
with:
name: requestsafter
path: testing/cypress/fixtures
- run: |
cd testing/cypress/fixtures
ls -al
cat requestsafter.json
printenv | sort
- name: Request Creation 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/**/integration-011-*.cy.ts
cypress/e2e/**/integration-012-*.cy.ts
cypress/e2e/**/integration-013-*.cy.ts
browser: chrome
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Install bun
uses: oven-sh/setup-bun@v1
- name: Delete Integrations
uses: cypress-io/github-action@v6
id: delete-integrations
continue-on-error: false
with:
summary-title: 'Integration Deletes'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: bun install --frozen-lockfile
working-directory: testing
spec: |
cypress/e2e/**/integration-900-deleteIntegration.cy.ts
browser: chrome
# 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
uses: RocketChat/Rocket.Chat.GitHub.Action.Notification@master
if: always() && github.ref == 'refs/heads/main'
with:
type: ${{ job.status }}
job_name: '*Integration Test*'
mention_if: 'failure'
channel: '#sso-ops'
url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
roles-tests:
runs-on: ubuntu-latest
needs: [pre-reqs, create-integrations]
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: Download requestrolesafter data
uses: actions/download-artifact@v4
with:
name: requestsrolesafter
path: testing/cypress/fixtures
- run: |
cd testing/cypress/fixtures
ls -al
cat requests-rolesafter.json
printenv | sort
- 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-041-*.cy.ts
cypress/e2e/**/integration-042-*.cy.ts
cypress/e2e/**/integration-043-*.cy.ts
cypress/e2e/**/integration-044-*.cy.ts
browser: chrome
# project: ./e2e
ci-build-id: ${{ github.event.number }}
- name: Install bun
uses: oven-sh/setup-bun@v1
- name: Delete All Roles Integrations
uses: cypress-io/github-action@v6
id: delete-integrations-roles
continue-on-error: false
with:
summary-title: 'Integration Roles Deletes'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: bun install --frozen-lockfile
working-directory: testing
spec: |
cypress/e2e/**/integration-910-deleteIntegrationRoles.cy.ts
browser: chrome
# 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: roles-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
uses: RocketChat/Rocket.Chat.GitHub.Action.Notification@master
if: always() && github.ref == 'refs/heads/main'
with:
type: ${{ job.status }}
job_name: '*Roles Test*'
mention_if: 'failure'
channel: '#sso-ops'
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-010-rolesUsers.cy.ts
cypress/e2e/**/search-020-IDIM.cy.ts
browser: chrome
# 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
uses: RocketChat/Rocket.Chat.GitHub.Action.Notification@master
if: always() && github.ref == 'refs/heads/main'
with:
type: ${{ job.status }}
job_name: '*Search Test*'
mention_if: 'failure'
channel: '#sso-ops'
url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
idpstopper-tests:
runs-on: ubuntu-latest
needs: search-tests
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: IDP Stoppers
uses: cypress-io/github-action@v6
id: idpstop
continue-on-error: false
with:
summary-title: 'IDP Stopper tests'
wait-on: ${{ secrets.CYPRESS_HOST }}
wait-on-timeout: 120
record: true
install-command: npm ci
working-directory: testing
spec: |
cypress/e2e/**/idpstopper-**-**.cy.ts
browser: chrome
# 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: idp-stopper-test-results
path: testing/mochawesome-report/report.html
- name: Rocket.Chat Notification
uses: RocketChat/Rocket.Chat.GitHub.Action.Notification@master
if: always() && github.ref == 'refs/heads/main'
with:
type: ${{ job.status }}
job_name: '*IDP Stopper Test*'
mention_if: 'failure'
channel: '#sso-ops'
url: ${{ secrets.ROCKETCHAT_WEBHOOK }}