main-e2e-tests #159
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: 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, 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-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, 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-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, 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: 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 }} |