diff --git a/.cypress/integration/7_app_analytics.spec.js b/.cypress/integration/app_analytics_test/app_analytics.spec.js
similarity index 99%
rename from .cypress/integration/7_app_analytics.spec.js
rename to .cypress/integration/app_analytics_test/app_analytics.spec.js
index 1e50d76aac..b875d4f3b5 100644
--- a/.cypress/integration/7_app_analytics.spec.js
+++ b/.cypress/integration/app_analytics_test/app_analytics.spec.js
@@ -4,7 +4,7 @@
*/
///
-import { suppressResizeObserverIssue } from '../utils/constants';
+import { suppressResizeObserverIssue } from '../../utils/constants';
import {
delay,
@@ -33,7 +33,7 @@ import {
newName,
TYPING_DELAY,
timeoutDelay
-} from '../utils/app_constants';
+} from '../../utils/app_constants';
suppressResizeObserverIssue();//needs to be in file once
diff --git a/.cypress/integration/10_datasources.spec.js b/.cypress/integration/datasources_test/datasources.spec.js
similarity index 100%
rename from .cypress/integration/10_datasources.spec.js
rename to .cypress/integration/datasources_test/datasources.spec.js
diff --git a/.cypress/integration/1_event_analytics.spec.js b/.cypress/integration/event_analytics_test/event_analytics.spec.js
similarity index 99%
rename from .cypress/integration/1_event_analytics.spec.js
rename to .cypress/integration/event_analytics_test/event_analytics.spec.js
index f25987f4fb..c018a00602 100644
--- a/.cypress/integration/1_event_analytics.spec.js
+++ b/.cypress/integration/event_analytics_test/event_analytics.spec.js
@@ -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,
@@ -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', () => {
diff --git a/.cypress/integration/9_integrations.spec.js b/.cypress/integration/integrations_test/integrations.spec.js
similarity index 98%
rename from .cypress/integration/9_integrations.spec.js
rename to .cypress/integration/integrations_test/integrations.spec.js
index 162acd9587..4b446f26fa 100644
--- a/.cypress/integration/9_integrations.spec.js
+++ b/.cypress/integration/integrations_test/integrations.spec.js
@@ -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}`;
@@ -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
})
});
diff --git a/.cypress/integration/8_metrics_analytics.spec.js b/.cypress/integration/metrics_analytics_test/metrics_analytics.spec.js
similarity index 98%
rename from .cypress/integration/8_metrics_analytics.spec.js
rename to .cypress/integration/metrics_analytics_test/metrics_analytics.spec.js
index 255a354341..d7898ba5ad 100644
--- a/.cypress/integration/8_metrics_analytics.spec.js
+++ b/.cypress/integration/metrics_analytics_test/metrics_analytics.spec.js
@@ -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(() => {
diff --git a/.cypress/integration/2_notebooks.spec.js b/.cypress/integration/notebooks_test/notebooks.spec.js
similarity index 99%
rename from .cypress/integration/2_notebooks.spec.js
rename to .cypress/integration/notebooks_test/notebooks.spec.js
index 46aab9b519..e23d706673 100644
--- a/.cypress/integration/2_notebooks.spec.js
+++ b/.cypress/integration/notebooks_test/notebooks.spec.js
@@ -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';
diff --git a/.cypress/integration/3_panels.spec.ts b/.cypress/integration/panels_test/panels.spec.ts
similarity index 99%
rename from .cypress/integration/3_panels.spec.ts
rename to .cypress/integration/panels_test/panels.spec.ts
index 7096f5aa86..3750c2e02e 100644
--- a/.cypress/integration/3_panels.spec.ts
+++ b/.cypress/integration/panels_test/panels.spec.ts
@@ -5,7 +5,7 @@
///
-import { suppressResizeObserverIssue } from '../utils/constants';
+import { suppressResizeObserverIssue } from '../../utils/constants';
import {
delay,
NEW_VISUALIZATION_NAME,
@@ -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
diff --git a/.cypress/integration/4_trace_analytics_dashboard.spec.js b/.cypress/integration/trace_analytics_test/trace_analytics_dashboard.spec.js
similarity index 99%
rename from .cypress/integration/4_trace_analytics_dashboard.spec.js
rename to .cypress/integration/trace_analytics_test/trace_analytics_dashboard.spec.js
index be31f21833..5edf0d33a2 100644
--- a/.cypress/integration/4_trace_analytics_dashboard.spec.js
+++ b/.cypress/integration/trace_analytics_test/trace_analytics_dashboard.spec.js
@@ -5,8 +5,8 @@
///
-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
diff --git a/.cypress/integration/5_trace_analytics_services.spec.js b/.cypress/integration/trace_analytics_test/trace_analytics_services.spec.js
similarity index 99%
rename from .cypress/integration/5_trace_analytics_services.spec.js
rename to .cypress/integration/trace_analytics_test/trace_analytics_services.spec.js
index f09b92426c..1f278c2b34 100644
--- a/.cypress/integration/5_trace_analytics_services.spec.js
+++ b/.cypress/integration/trace_analytics_test/trace_analytics_services.spec.js
@@ -5,8 +5,8 @@
///
-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
diff --git a/.cypress/integration/6_trace_analytics_traces.spec.js b/.cypress/integration/trace_analytics_test/trace_analytics_traces.spec.js
similarity index 98%
rename from .cypress/integration/6_trace_analytics_traces.spec.js
rename to .cypress/integration/trace_analytics_test/trace_analytics_traces.spec.js
index 336f5b6ffe..843e6640ad 100644
--- a/.cypress/integration/6_trace_analytics_traces.spec.js
+++ b/.cypress/integration/trace_analytics_test/trace_analytics_traces.spec.js
@@ -5,7 +5,7 @@
///
-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(() => {
diff --git a/.github/workflows/integration-tests-workflow.yml b/.github/workflows/integration-tests-workflow.yml
index cd2f9de381..17ee358bf3 100644
--- a/.github/workflows/integration-tests-workflow.yml
+++ b/.github/workflows/integration-tests-workflow.yml
@@ -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:
@@ -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: |
@@ -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
diff --git a/package.json b/package.json
index d9ac42f9ce..2e040938a8 100644
--- a/package.json
+++ b/package.json
@@ -82,4 +82,4 @@
"node_modules/*",
"target/*"
]
-}
\ No newline at end of file
+}