Skip to content

Commit

Permalink
[CI/CD] Refactor Cypress Workflow (opensearch-project#1290)
Browse files Browse the repository at this point in the history
* Fix the integration cypress test and add a dashboard check in integration GH workflow

Signed-off-by: Ryan Liang <[email protected]>

* Minimize the cypress steps in ci

Signed-off-by: Ryan Liang <[email protected]>

* Revert it back to npx install

Signed-off-by: Ryan Liang <[email protected]>

* Parallel workflow setup 1

Signed-off-by: Ryan Liang <[email protected]>

* Parallel workflow setup 1

Signed-off-by: Ryan Liang <[email protected]>

* Correct test files matrix name

Signed-off-by: Ryan Liang <[email protected]>

* correct the matrix format and add comma for the json arraylist

Signed-off-by: Ryan Liang <[email protected]>

* Add matrix env var

Signed-off-by: Ryan Liang <[email protected]>

* Try hardcoded list for test files

Signed-off-by: Ryan Liang <[email protected]>

* Refactor cypress dir

Signed-off-by: Ryan Liang <[email protected]>

* Correct the naming path

Signed-off-by: Ryan Liang <[email protected]>

* Fix the typo

Signed-off-by: Ryan Liang <[email protected]>

* Fix the group naming

Signed-off-by: Ryan Liang <[email protected]>

---------

Signed-off-by: Ryan Liang <[email protected]>
  • Loading branch information
RyanL1997 authored Dec 11, 2023
1 parent f252fb1 commit 8f091bd
Show file tree
Hide file tree
Showing 12 changed files with 53 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*/

/// <reference types="cypress" />
import { suppressResizeObserverIssue } from '../utils/constants';
import { suppressResizeObserverIssue } from '../../utils/constants';

import {
delay,
Expand Down Expand Up @@ -33,7 +33,7 @@ import {
newName,
TYPING_DELAY,
timeoutDelay
} from '../utils/app_constants';
} from '../../utils/app_constants';

suppressResizeObserverIssue();//needs to be in file once

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import {
VIS_TYPE_VBAR,
FIELD_HOST,
FIELD_AGENT
} from '../utils/event_analytics/constants';
import { suppressResizeObserverIssue, COMMAND_TIMEOUT_LONG } from '../utils/constants';
} from '../../utils/event_analytics/constants';
import { suppressResizeObserverIssue, COMMAND_TIMEOUT_LONG } from '../../utils/constants';

import {
querySearch,
Expand All @@ -34,7 +34,7 @@ import {
landOnEventVisualizations,
landOnPanels,
clearQuerySearchBoxText,
} from '../utils/event_analytics/helpers';
} from '../../utils/event_analytics/helpers';

describe('Adding sample data and visualization', () => {
it('Adds sample flights data for event analytics', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import {
TEST_INTEGRATION_INSTANCE, TEST_SAMPLE_INSTANCE,
} from '../utils/constants';
} from '../../utils/constants';

let testInstanceSuffix = (Math.random() + 1).toString(36).substring(7);
let testInstance = `${TEST_INTEGRATION_INSTANCE}_${testInstanceSuffix}`;
Expand Down Expand Up @@ -66,7 +66,7 @@ describe('Basic sanity test for integrations plugin', () => {
moveToAvailableNginxIntegration();
cy.get('.euiFilterGroup').trigger('mouseover').click();
cy.get('.euiFilterSelectItem').contains('visualization').click();
cy.get('.euiTableRow').should('have.length', 4);//Filters correctly to visualization types
cy.get('.euiTableRow').should('have.length', 6);//Filters correctly to visualization types
})
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import {
PPL_METRICS_NAMES,
VIS_TYPE_LINE,
TESTING_PANEL,
} from '../utils/metrics_constants';
import { suppressResizeObserverIssue, COMMAND_TIMEOUT_LONG } from '../utils/constants';
import { landOnPanels, clearQuerySearchBoxText } from '../utils/event_analytics/helpers';
} from '../../utils/metrics_constants';
import { suppressResizeObserverIssue, COMMAND_TIMEOUT_LONG } from '../../utils/constants';
import { landOnPanels, clearQuerySearchBoxText } from '../../utils/event_analytics/helpers';

describe('Metrics Analytics', () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ import {
NOTEBOOK_TEXT,
OPENSEARCH_URL,
COMMAND_TIMEOUT_LONG,
} from '../utils/constants';
} from '../../utils/constants';

import { SAMPLE_PANEL } from '../utils/panel_constants';
import { SAMPLE_PANEL } from '../../utils/panel_constants';

import { skipOn } from '@cypress/skip-test';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

/// <reference types="cypress" />

import { suppressResizeObserverIssue } from '../utils/constants';
import { suppressResizeObserverIssue } from '../../utils/constants';
import {
delay,
NEW_VISUALIZATION_NAME,
Expand All @@ -14,7 +14,7 @@ import {
PPL_VISUALIZATIONS,
PPL_VISUALIZATIONS_NAMES,
TEST_PANEL,
} from '../utils/panel_constants';
} from '../../utils/panel_constants';

describe('Panels testing with Sample Data', () => {
suppressResizeObserverIssue();//needs to be in file once
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

/// <reference types="cypress" />

import { testDataSet, delay, setTimeFilter, jaegerTestDataSet } from '../utils/constants';
import { suppressResizeObserverIssue } from '../utils/constants';
import { testDataSet, delay, setTimeFilter, jaegerTestDataSet } from '../../utils/constants';
import { suppressResizeObserverIssue } from '../../utils/constants';

suppressResizeObserverIssue();//needs to be in file once

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

/// <reference types="cypress" />

import { delay, SERVICE_NAME, SERVICE_SPAN_ID, setTimeFilter, verify_traces_spans_data_grid_cols_exists, count_table_row, AUTH_SERVICE_SPAN_ID } from '../utils/constants';
import { suppressResizeObserverIssue } from '../utils/constants';
import { delay, SERVICE_NAME, SERVICE_SPAN_ID, setTimeFilter, verify_traces_spans_data_grid_cols_exists, count_table_row, AUTH_SERVICE_SPAN_ID } from '../../utils/constants';
import { suppressResizeObserverIssue } from '../../utils/constants';

suppressResizeObserverIssue();//needs to be in file once

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

/// <reference types="cypress" />

import { delay, setTimeFilter, SPAN_ID, TRACE_ID } from '../utils/constants';
import { delay, setTimeFilter, SPAN_ID, TRACE_ID } from '../../utils/constants';

describe('Testing traces table empty state', () => {
beforeEach(() => {
Expand Down
51 changes: 33 additions & 18 deletions .github/workflows/integration-tests-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,20 @@ jobs:
matrix:
os: [ubuntu-latest]
java: [11]
testgroups: [
app_analytics_test,
notebooks_test,
datasources_test,
event_analytics_test,
integrations_test,
metrics_analytics_test,
notebooks_test,
panels_test,
trace_analytics_test
]
include:
- os: ubuntu-latest
cypress_cache_folder: ~/.cache/Cypress

runs-on: ${{ matrix.os }}

steps:
Expand Down Expand Up @@ -114,8 +124,24 @@ jobs:
- name: Run OpenSearch Dashboards server
run: |
cd OpenSearch-Dashboards
yarn start --no-base-path --no-watch &
sleep 200
nohup yarn start --no-base-path --no-watch | tee dashboard.log &
- name : Check If OpenSearch Dashboards Is Ready
if: ${{ runner.os == 'Linux' }}
run: |
cd ./OpenSearch-Dashboards
echo "Start checking OpenSearch Dashboards."
for i in {1..60}; do
if grep -q "bundles compiled successfully after" "dashboard.log"; then
echo "OpenSearch Dashboards compiled successfully."
break
fi
if [ $i -eq 60 ]; then
echo "Timeout for 600 seconds reached. OpenSearch Dashboards did not finish compiling."
exit 1
fi
sleep 10
done
- name: Install Cypress
run: |
Expand All @@ -129,26 +155,15 @@ jobs:
cd ./OpenSearch-Dashboards/plugins/dashboards-observability
echo "::set-output name=cypress_version::$(cat ./package.json | jq '.dependencies.cypress' | tr -d '"')"
- name: Cache Cypress
id: cache-cypress
uses: actions/cache@v2
with:
path: ${{ matrix.cypress_cache_folder }}
key: cypress-cache-v2-${{ runner.os }}-${{ hashFiles('OpenSearch-Dashboards/plugins/dashboards-observability/package.json') }}

- name: Reset npm's script shell
if: ${{ matrix.os == 'windows-latest' }}
run: |
npm config delete script-shell
- name: Cypress tests
uses: cypress-io/github-action@v2
with:
working-directory: OpenSearch-Dashboards/plugins/dashboards-observability
command: yarn cypress:parallel --browser chrome
wait-on: 'http://localhost:5601'
env:
CYPRESS_CACHE_FOLDER: ${{ matrix.cypress_cache_folder }}
- name: Run Cypress tests for test group of ${{ matrix.testgroups }}
run: |
cd ./OpenSearch-Dashboards/plugins/dashboards-observability
yarn cypress:run --browser chrome --headless --spec '.cypress/integration/${{ matrix.testgroups }}/*'
- name: Capture failure screenshots
uses: actions/upload-artifact@v1
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,4 @@
"node_modules/*",
"target/*"
]
}
}

0 comments on commit 8f091bd

Please sign in to comment.