Skip to content

main-e2e-tests

main-e2e-tests #166

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: 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: pre-req-results
path: testing/mochawesome-report/report.html
# - name: Rocket.Chat Notification
# if: always() && github.ref == 'refs/heads/main'
# uses: ./.github/actions/rocket-chat-notification
# with:
# text: '*Pre-Reqs*'
# job-status: ${{ job.status }}
# webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
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
# if: always() && github.ref == 'refs/heads/main'
# uses: ./.github/actions/rocket-chat-notification
# with:
# text: '*Smoke Tests*'
# job-status: ${{ job.status }}
# webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
# create-integrations:
# runs-on: ubuntu-latest
# needs: [pre-reqs, smoke-test]
# 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
# cypress/e2e/**/team-001-**.cy.ts
# cypress/e2e/**/sso-010-createIntegration.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
# # if: always() && github.ref == 'refs/heads/main'
# # uses: ./.github/actions/rocket-chat-notification
# # with:
# # text: '*Create Integrations*'
# # 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: 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-010-*.cy.ts
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: npm ci
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
# if: always() && 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: 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-040-*.cy.ts
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
# if: always() && 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: [smoke-test]
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-000-prereq.cy.ts
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
# if: always() && 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-020-**.cy.ts
cypress/e2e/**/team-030-**.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: team-test-results
path: testing/mochawesome-report/report.html
# - name: Rocket.Chat Notification
# if: always() && github.ref == 'refs/heads/main'
# uses: ./.github/actions/rocket-chat-notification
# with:
# text: '*Team Tests*'
# job-status: ${{ job.status }}
# webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
idpstopper-tests:
runs-on: ubuntu-latest
needs: [pre-reqs, smoke-test]
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
# if: always() && github.ref == 'refs/heads/main'
# uses: ./.github/actions/rocket-chat-notification
# with:
# text: '*IDP Stopper Tests*'
# job-status: ${{ job.status }}
# webhook-url: ${{ secrets.ROCKETCHAT_WEBHOOK }}
all-delete:
runs-on: ubuntu-latest
needs: [integration-tests, roles-tests, team-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: 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: 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: all-delete-results
path: testing/mochawesome-report/report.html
# - name: Rocket.Chat Notification
# if: always() && 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 }}