Skip to content

Commit

Permalink
[CI][Test] Add plugin functional tests on GitHub Actions (opensearch-…
Browse files Browse the repository at this point in the history
…project#5383)

Add tests for plugin functional on GitHub Actions.

Skip doc tests because of:
opensearch-project#5370

* Add tests for plugin functional
* add changelog
* Skip app link test and fix core plugins test

Issue resolved:
opensearch-project#5382

Signed-off-by: abbyhu2000 <abigailhu2000@gmail.com>
  • Loading branch information
abbyhu2000 authored Oct 27, 2023
1 parent 8d8de0a commit b796940
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 3 deletions.
81 changes: 81 additions & 0 deletions .github/workflows/build_and_test_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,87 @@ jobs:
test/*/failure_debug/
test/*/screenshots/
plugin-functional-tests:
name: Run plugin functional tests on ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
include:
- os: ubuntu-latest
name: Linux
- os: windows-latest
name: Windows
runs-on: ${{ matrix.os }}
steps:
- run: echo Running plugin functional tests

- name: Configure git's autocrlf (Windows only)
if: matrix.os == 'windows-latest'
run: |
git config --global core.autocrlf false
- name: Checkout code
uses: actions/checkout@v3

- name: Setup JDK (Windows only)
if: matrix.os == 'windows-latest'
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
registry-url: 'https://registry.npmjs.org'

- name: Setup Yarn
run: |
npm uninstall -g yarn
npm i -g yarn@1.22.10
yarn config set network-timeout 1000000 -g
- name: Configure Yarn Cache (Linux)
if: matrix.os != 'windows-latest'
run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV

- name: Initialize Yarn Cache
uses: actions/cache@v3
if: matrix.os != 'windows-latest'
with:
path: ${{ env.YARN_CACHE_LOCATION }}
key: yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
yarn-
- name: Setup chromedriver
run: node scripts/upgrade_chromedriver.js

- name: Run bootstrap (Linux)
if: matrix.os != 'windows-latest'
run: yarn osd bootstrap

- name: Run bootstrap (Windows)
if: matrix.os == 'windows-latest'
run: yarn osd bootstrap || yarn osd bootstrap

- name: Build plugins
run: node scripts/build_opensearch_dashboards_platform_plugins --no-examples --workers 10 --scan-dir "./test/plugin_functional/plugins"

- name: Run functional plugin tests
id: plugin-ftr-tests
run: node scripts/functional_tests.js --config test/plugin_functional/config.ts

- uses: actions/upload-artifact@v3
if: failure()
with:
name: failure-artifacts-plugin-functional-${{ matrix.os }}
path: |
test/*/failure_debug/
test/*/screenshots/
build-min-artifact-tests:
name: Build min release artifacts on ${{ matrix.name }}
strategy:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- [CI] Add `NODE_OPTIONS` and disable disk allocation threshold ([#5172](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5172))
- [CI] Supprt CI Groups for Cypress test jobs ([#5298](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5298))
- [CI] Replace usage of deprecated `set-output` in workflows ([#5340](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5340))
- [CI][Test] Add plugin functional tests on GitHub Actions ([#5383](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5383))

### 📝 Documentation

Expand Down
4 changes: 2 additions & 2 deletions test/plugin_functional/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
require.resolve('./test_suites/core_plugins'),
require.resolve('./test_suites/management'),
require.resolve('./test_suites/doc_views'),
require.resolve('./test_suites/doc_views_links'),
require.resolve('./test_suites/application_links'),
// require.resolve('./test_suites/doc_views_links'),
// require.resolve('./test_suites/application_links'),
require.resolve('./test_suites/data_plugin'),
require.resolve('./test_suites/dashboard_listing_plugin'),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,10 @@ export default function ({ getService, getPageObjects }: PluginFunctionalProvide
});

it('server plugins have access to registered settings', async () => {
await supertest.get('/api/ui-settings-plugin').expect(200).expect({ uiSettingsValue: 2 });
const result = await supertest.get('/api/ui-settings-plugin');
expect(result.statusCode).to.be(200);
expect(Object.keys(result.body).length).to.be(1);
expect(Number(result.body.uiSettingsValue)).to.be(2);
});
});
}

0 comments on commit b796940

Please sign in to comment.