-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
38 changed files
with
2,373 additions
and
1,767 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
module.exports = { | ||
root: true, | ||
extends: ['plugin:cypress/recommended'], | ||
env: { | ||
'cypress/globals': true, | ||
}, | ||
plugins: ['cypress'], | ||
rules: { | ||
// Add cypress specific rules here | ||
'cypress/no-assigning-return-values': 'error', | ||
'cypress/no-unnecessary-waiting': 'error', | ||
'cypress/assertion-before-screenshot': 'warn', | ||
'cypress/no-force': 'warn', | ||
'cypress/no-async-tests': 'error', | ||
}, | ||
}; | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
node_modules | ||
/data | ||
/build | ||
/target | ||
/.eslintrc.js | ||
/cypress.config.js | ||
!.cypress/ |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
const LICENSE_HEADER = `/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/`; | ||
|
||
module.exports = { | ||
root: true, | ||
extends: [ | ||
'@elastic/eslint-config-kibana', | ||
'plugin:@elastic/eui/recommended', | ||
'plugin:react-hooks/recommended', | ||
'plugin:jest/recommended', | ||
'plugin:prettier/recommended', | ||
], | ||
|
||
rules: { | ||
'@typescript-eslint/no-unused-vars': [ | ||
'error', | ||
{ | ||
argsIgnorePattern: '^_', | ||
varsIgnorePattern: '^_', | ||
caughtErrorsIgnorePattern: '^_', | ||
}, | ||
], | ||
'@osd/eslint/no-restricted-paths': [ | ||
'error', | ||
{ | ||
basePath: __dirname, | ||
zones: [ | ||
{ | ||
target: ['(public|server)/**/*'], | ||
from: ['../../packages/**/*','packages/**/*'], | ||
}, | ||
], | ||
}, | ||
], | ||
}, | ||
overrides: [ | ||
{ | ||
files: ['**/*.{js,ts,tsx}'], | ||
rules: { | ||
'@typescript-eslint/no-explicit-any': 'warn', | ||
'no-console': 0, | ||
'@osd/eslint/require-license-header': [ | ||
'error', | ||
{ | ||
licenses: [LICENSE_HEADER], | ||
}, | ||
], | ||
}, | ||
}, | ||
], | ||
"ignorePatterns": ["**/*.d.ts"] | ||
}; |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
name: Cypress E2E SQL Workbench Test | ||
|
||
on: [pull_request, push] | ||
|
||
env: | ||
CI: 1 | ||
# avoid warnings like "tput: No value for $TERM and no -T specified" | ||
TERM: xterm | ||
OPENSEARCH_DASHBOARDS_VERSION: 'main' | ||
OPENSEARCH_VERSION: '3.0.0' | ||
OPENSEARCH_PLUGIN_VERSION: '3.0.0.0' | ||
|
||
jobs: | ||
tests: | ||
name: Run Cypress E2E SQL Workbench tests | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ ubuntu-latest ] | ||
jdk: [ 11 ] | ||
runs-on: ${{ matrix.os }} | ||
|
||
steps: | ||
- name: Set up JDK | ||
uses: actions/setup-java@v1 | ||
with: | ||
java-version: ${{ matrix.jdk }} | ||
|
||
- name: Download SQL artifact | ||
uses: suisei-cn/[email protected] | ||
with: | ||
url: https://aws.oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=org.opensearch.plugin&a=opensearch-sql-plugin&v=${{ env.OPENSEARCH_PLUGIN_VERSION }}-SNAPSHOT&p=zip | ||
target: plugin-artifacts/ | ||
filename: sql.zip | ||
|
||
- name: Download OpenSearch | ||
uses: peternied/download-file@v2 | ||
with: | ||
url: https://artifacts.opensearch.org/snapshots/core/opensearch/${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/opensearch-min-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT-linux-x64-latest.tar.gz | ||
|
||
- name: Extract OpenSearch | ||
run: | | ||
tar -xzf opensearch-*.tar.gz | ||
rm -f opensearch-*.tar.gz | ||
shell: bash | ||
|
||
- name: Install SQL plugin | ||
run: | | ||
/bin/bash -c "yes | ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/bin/opensearch-plugin install file:$(pwd)/plugin-artifacts/sql.zip" | ||
shell: bash | ||
|
||
- name: Run OpenSearch | ||
run: | | ||
/bin/bash -c "./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/bin/opensearch &" | ||
sleep 30 | ||
shell: bash | ||
|
||
- name: Check OpenSearch Running on Linux | ||
if: ${{ runner.os != 'Windows'}} | ||
run: curl http://localhost:9200/ | ||
shell: bash | ||
|
||
- name: Show OpenSearch Logs | ||
if: always() | ||
run: cat ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/logs/opensearch.log | ||
shell: bash | ||
|
||
- name: Checkout OpenSearch Dashboards | ||
uses: actions/checkout@v2 | ||
with: | ||
path: OpenSearch-Dashboards | ||
repository: opensearch-project/OpenSearch-Dashboards | ||
ref: ${{ env.OPENSEARCH_DASHBOARDS_VERSION }} | ||
fetch-depth: 0 | ||
filter: | | ||
cypress | ||
test | ||
- name: Checkout Query Workbench in OpenSearch Dashboards Plugins Dir | ||
uses: actions/checkout@v2 | ||
with: | ||
path: OpenSearch-Dashboards/plugins/dashboards-query-workbench | ||
|
||
- id: tool-versions | ||
run: | | ||
echo "node_version=$(cat .node-version)" >> $GITHUB_OUTPUT | ||
echo "yarn_version=$(jq -r '.engines.yarn' package.json)" >> $GITHUB_OUTPUT | ||
working-directory: OpenSearch-Dashboards | ||
shell: bash | ||
|
||
- uses: actions/setup-node@v1 | ||
with: | ||
node-version: ${{ steps.tool-versions.outputs.node_version }} | ||
registry-url: 'https://registry.npmjs.org' | ||
|
||
- name: Setup Opensearch Dashboards | ||
run: | | ||
npm uninstall -g yarn | ||
echo "Installing yarn ${{ steps.tool-versions.outputs.yarn_version }}" | ||
npm i -g yarn@${{ steps.tool-versions.outputs.yarn_version }} | ||
yarn cache clean | ||
yarn add sha.js | ||
working-directory: OpenSearch-Dashboards | ||
shell: bash | ||
|
||
- name: Boodstrap Opensearch Dashboards | ||
run: | | ||
yarn osd bootstrap | ||
working-directory: OpenSearch-Dashboards | ||
|
||
- name: Run Opensearch Dashboards with Query Workbench Installed | ||
run: | | ||
nohup yarn start --no-base-path --no-watch | tee dashboard.log & | ||
working-directory: OpenSearch-Dashboards | ||
|
||
- name : Check If OpenSearch Dashboards Is Ready | ||
if: ${{ runner.os == 'Linux' }} | ||
run: | | ||
if timeout 600 grep -q "bundles compiled successfully after" <(tail -n0 -f dashboard.log); then | ||
echo "OpenSearch Dashboards compiled successfully." | ||
else | ||
echo "Timeout for 600 seconds reached. OpenSearch Dashboards did not finish compiling." | ||
exit 1 | ||
fi | ||
working-directory: OpenSearch-Dashboards | ||
|
||
- name: Install Cypress | ||
run: | | ||
npx cypress install | ||
shell: bash | ||
working-directory: OpenSearch-Dashboards/plugins/dashboards-query-workbench | ||
|
||
- name: Get Cypress version | ||
id: cypress_version | ||
run: | | ||
echo "::set-output name=cypress_version::$(cat ./package.json | jq '.dependencies.cypress' | tr -d '"')" | ||
working-directory: OpenSearch-Dashboards/plugins/dashboards-query-workbench | ||
|
||
- name: Run Cypress tests | ||
run: | | ||
yarn cypress:run --browser chrome --headless --spec '.cypress/integration/${{ matrix.testgroups }}/*' | ||
working-directory: OpenSearch-Dashboards/plugins/dashboards-query-workbench | ||
|
||
- name: Capture failure screenshots | ||
uses: actions/upload-artifact@v1 | ||
if: failure() | ||
with: | ||
name: cypress-screenshots-${{ matrix.os }} | ||
path: OpenSearch-Dashboards/plugins/dashboards-query-workbench/.cypress/screenshots | ||
|
||
- name: Capture test video | ||
uses: actions/upload-artifact@v1 | ||
if: failure() | ||
with: | ||
name: cypress-videos-${{ matrix.os }} | ||
path: OpenSearch-Dashboards/plugins/dashboards-query-workbench/.cypress/videos |
Oops, something went wrong.