-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added Integration Tests Workflow (#426)
Signed-off-by: saimedhi <[email protected]> (cherry picked from commit e82acac) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
- Loading branch information
1 parent
613b818
commit 42d8862
Showing
5 changed files
with
180 additions
and
1 deletion.
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,169 @@ | ||
name: FTR E2E FF Workbench Test | ||
|
||
on: [pull_request, push] | ||
|
||
env: | ||
CI: 1 | ||
TERM: xterm | ||
OPENSEARCH_DASHBOARDS_VERSION: 'main' | ||
OPENSEARCH_VERSION: '3.0.0' | ||
OPENSEARCH_PLUGIN_VERSION: '3.0.0.0' | ||
|
||
jobs: | ||
tests: | ||
name: Run FTR E2E FF Workbench Tests | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ ubuntu-latest ] | ||
jdk: [ 21 ] | ||
runs-on: ${{ matrix.os }} | ||
|
||
steps: | ||
- name: Set up JDK | ||
uses: actions/setup-java@v1 | ||
with: | ||
java-version: ${{ matrix.jdk }} | ||
|
||
- name: Checkout Flow-Framework | ||
uses: actions/checkout@v2 | ||
with: | ||
path: flow-framework | ||
repository: opensearch-project/flow-framework | ||
ref: '${{ github.base_ref }}' | ||
|
||
- name: Run OpenSearch with plugin | ||
run: | | ||
cd flow-framework | ||
./gradlew run & | ||
timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:9200)" != "200" ]]; do sleep 5; done' | ||
shell: bash | ||
|
||
- name: Check OpenSearch Running on Linux | ||
if: ${{ runner.os != 'Windows'}} | ||
run: curl http://localhost:9200/ | ||
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 FF in OpenSearch Dashboards Plugins Dir | ||
uses: actions/checkout@v2 | ||
with: | ||
path: OpenSearch-Dashboards/plugins/dashboards-flow-framework | ||
|
||
- 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: Bootstrap Opensearch Dashboards | ||
run: | | ||
yarn osd bootstrap --single-version=loose | ||
working-directory: OpenSearch-Dashboards/plugins/dashboards-flow-framework | ||
|
||
- name: Run Opensearch Dashboards with FF Installed | ||
run: | | ||
nohup yarn start --no-base-path --no-watch --server.host="0.0.0.0" | tee dashboard.log & | ||
sleep 60 | ||
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: Show OpenSearch Dashboards Logs | ||
if: always() | ||
run: cat dashboard.log | ||
working-directory: OpenSearch-Dashboards | ||
|
||
- name: Health check | ||
run: | | ||
timeout 600 bash -c 'while [[ "$(curl -k http://localhost:5601/api/status | jq -r '.status.overall.state')" != "green" ]]; do sleep 5; done' | ||
shell: bash | ||
|
||
- name: Check OpenSearch Dashboards Running on Linux | ||
if: ${{ runner.os != 'Windows'}} | ||
run: curl http://localhost:5601/api/status | ||
shell: bash | ||
|
||
- name: Checkout Dashboards Functional Test Repo | ||
uses: actions/checkout@v2 | ||
with: | ||
path: opensearch-dashboards-functional-test | ||
repository: opensearch-project/opensearch-dashboards-functional-test | ||
ref: ${{ env.OPENSEARCH_DASHBOARDS_VERSION }} | ||
fetch-depth: 0 | ||
|
||
- name: Install Cypress | ||
run: | | ||
npm install cypress --save-dev | ||
shell: bash | ||
working-directory: opensearch-dashboards-functional-test | ||
|
||
- 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-functional-test | ||
|
||
- name: Finding spec files and store to output | ||
id: finding-files | ||
run: | | ||
{ | ||
echo 'FILELIST<<EOF' | ||
find cypress/integration/plugins/dashboards-flow-framework -name '*.js' -print | ||
echo EOF | ||
} >> "$GITHUB_ENV" | ||
working-directory: opensearch-dashboards-functional-test | ||
|
||
- name: Run spec files from output | ||
run: | | ||
env CYPRESS_NO_COMMAND_LOG=1 yarn cypress:run-without-security --browser chromium --spec 'cypress/integration/plugins/dashboards-flow-framework/*' | ||
working-directory: opensearch-dashboards-functional-test | ||
|
||
- name: Capture failure screenshots | ||
uses: actions/upload-artifact@v4 | ||
if: failure() | ||
with: | ||
name: cypress-screenshots-${{ matrix.os }} | ||
path: opensearch-dashboards-functional-test/cypress/screenshots | ||
|
||
- name: Capture failure test video | ||
uses: actions/upload-artifact@v4 | ||
if: failure() | ||
with: | ||
name: cypress-videos-${{ matrix.os }} | ||
path: opensearch-dashboards-functional-test/cypress/videos |
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
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
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
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