Skip to content

Commit

Permalink
Merge branch 'opensearch-project:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
mengweieric authored Dec 14, 2023
2 parents b5af550 + 8f091bd commit 36832e0
Show file tree
Hide file tree
Showing 63 changed files with 1,420 additions and 314 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 All @@ -75,17 +75,14 @@ describe('Tests the add nginx integration instance flow', () => {
createSamples();
moveToAvailableNginxIntegration();
cy.get('[data-test-subj="add-integration-button"]').click();
cy.get('[data-test-subj="new-instance-name"]').should('have.value', 'nginx');
cy.get('[data-test-subj="createInstanceButton"]').should('be.disabled')
cy.get('[data-test-subj="addIntegrationFlyoutTitle"]').should('exist')
cy.get('[data-test-subj="new-instance-name"]').should('have.value', 'nginx Integration');
cy.get('[data-test-subj="create-instance-button"]').should('be.disabled')
// Modifies the name of the integration
cy.get('[data-test-subj="new-instance-name"]').type(testInstance.substring(5));
// validates the created sample index
cy.get('[data-test-subj="data-source-name"]').type('ss4o_logs-nginx-sample-sample');
cy.get('[data-test-subj="validateIndex"]').click();
cy.get('.euiToastHeader__title').should('contain', 'valid');
cy.get('[data-test-subj="createInstanceButton"]').click();
cy.get('.euiToastHeader__title').should('contain', 'successfully');
cy.get('[data-test-subj="new-instance-name"]').clear().type(testInstance);
// Validates the created sample index
cy.get('[data-test-subj="data-source-name"]').type('ss4o_logs-nginx-sample-sample{enter}');
cy.get('[data-test-subj="create-instance-button"]').click();
cy.get('[data-test-subj="eventHomePageTitle"]').should('contain', 'nginx');
})

it('Navigates to installed integrations page and verifies that nginx-test exists', () => {
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
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# This should match the owning team set up in https://github.com/orgs/opensearch-project/teams
* @pjfitzgibbons @ps48 @kavithacm @derek-ho @joshuali925 @dai-chen @YANG-DB @rupal-bq @mengweieric @vamsi-amazon @swiddis @penghuo @seankao-az @anirudha @TackAdam
* @pjfitzgibbons @ps48 @kavithacm @derek-ho @joshuali925 @dai-chen @YANG-DB @rupal-bq @mengweieric @vamsi-amazon @swiddis @penghuo @seankao-az @anirudha @paulstn @sumukhswamy
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,81 @@ env:
OPENSEARCH_PLUGIN_VERSION: 3.0.0.0

jobs:
Get-CI-Image-Tag:
uses: opensearch-project/opensearch-build/.github/workflows/get-ci-image-tag.yml@main
with:
product: opensearch-dashboards

build:
build-linux:
needs: Get-CI-Image-Tag
strategy:
fail-fast: false
runs-on: ubuntu-latest
container:
# using the same image which is used by opensearch-build team to build the OpenSearch Distribution
# this image tag is subject to change as more dependencies and updates will arrive over time
image: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-version-linux }}
# need to switch to root so that github actions can install runner binary on container without permission issues.
options: --user root

steps:
- name: Checkout OpenSearch Dashboards
uses: actions/checkout@v2
with:
repository: opensearch-project/OpenSearch-Dashboards
ref: ${{ env.OPENSEARCH_VERSION }}
path: OpenSearch-Dashboards

- name: Checkout Dashboards Observability
uses: actions/checkout@v2
with:
path: OpenSearch-Dashboards/plugins/dashboards-observability

- name: Plugin Bootstrap
uses: nick-fields/retry@v2
with:
timeout_minutes: 20
max_attempts: 2
command: |
chown -R 1000:1000 `pwd`
cd ./OpenSearch-Dashboards/
su `id -un 1000` -c "source $NVM_DIR/nvm.sh && nvm use && node -v && yarn -v &&
yarn config set network-timeout 1000000 -g &&
yarn osd bootstrap"
- name: Test all dashboards-observability modules
run: |
chown -R 1000:1000 `pwd`
cd ./OpenSearch-Dashboards/
su `id -un 1000` -c "source $NVM_DIR/nvm.sh && nvm use && node -v && yarn -v &&
cd plugins/dashboards-observability &&
yarn osd bootstrap && yarn test --coverage --maxWorkers=100%"
- name: Upload coverage
uses: codecov/codecov-action@v1
with:
flags: dashboards-observability
directory: ./OpenSearch-Dashboards/plugins/dashboards-observability
token: ${{ secrets.CODECOV_TOKEN }}

- name: Build Artifact
run: |
chown -R 1000:1000 `pwd`
cd ./OpenSearch-Dashboards/
su `id -un 1000` -c "source $NVM_DIR/nvm.sh && nvm use && node -v && yarn -v &&
cd plugins/dashboards-observability &&
yarn build && mv ./build/*.zip ./build/${{ env.PLUGIN_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip"
- name: Upload Artifact
uses: actions/upload-artifact@v1
with:
name: dashboards-observability-ubuntu-latest
path: ./OpenSearch-Dashboards/plugins/dashboards-observability/build

build-windows-macos:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [windows-latest, macos-latest]
# Since Windows is inconsistent, we want to let other OSes run on a fail
fail-fast: false
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -68,14 +138,6 @@ jobs:
cd OpenSearch-Dashboards/plugins/dashboards-observability
yarn test --coverage --maxWorkers=100%
- name: Upload coverage
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: codecov/codecov-action@v1
with:
flags: dashboards-observability
directory: ./OpenSearch-Dashboards/plugins/dashboards-observability
token: ${{ secrets.CODECOV_TOKEN }}

- name: Build Artifact
run: |
cd OpenSearch-Dashboards/plugins/dashboards-observability
Expand Down
18 changes: 0 additions & 18 deletions .github/workflows/dco.yml

This file was deleted.

57 changes: 34 additions & 23 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 @@ -87,15 +97,11 @@ jobs:
with:
path: OpenSearch-Dashboards/plugins/dashboards-observability

# While bootstrap requires node >= 16.14.0, OSD hasn't yet updated their version number in
# package.json, so we need to hardcode it for now. When it's fixed, this line can dynamically
# pull the value:
# $(node -p "(require('./OpenSearch-Dashboards/package.json').engines.node).match(/[.0-9]+/)[0]")
- name: Get node and yarn versions
working-directory: ${{ env.WORKING_DIR }}
id: versions_step
run: |
echo "::set-output name=node_version::16"
echo "::set-output name=node_version::$(cat ./OpenSearch-Dashboards/.nvmrc | cut -d"." -f1)"
echo "::set-output name=yarn_version::$(node -p "(require('./OpenSearch-Dashboards/package.json').engines.yarn).match(/[.0-9]+/)[0]")"
- name: Setup node
Expand All @@ -118,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 @@ -133,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
Loading

0 comments on commit 36832e0

Please sign in to comment.