Skip to content

[Backport 2.17] Fix issues in running historical analysis and custom … #169

[Backport 2.17] Fix issues in running historical analysis and custom …

[Backport 2.17] Fix issues in running historical analysis and custom … #169

name: FTR E2E AD 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: '2.x'
jobs:
tests:
name: Run FTR E2E AD 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: Checkout Anomaly-Detection
uses: actions/checkout@v2
with:
path: anomaly-detection
repository: opensearch-project/anomaly-detection
ref: ${{ env.OPENSEARCH_DASHBOARDS_VERSION }}
- name: Run OpenSearch with plugin
run: |
cd anomaly-detection
./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 AD in OpenSearch Dashboards Plugins Dir
uses: actions/checkout@v2
with:
path: OpenSearch-Dashboards/plugins/anomaly-detection-dashboards-plugin
- 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 --single-version=loose
working-directory: OpenSearch-Dashboards/plugins/anomaly-detection-dashboards-plugin
- name: Run Opensearch Dashboards with AD Installed
run: |
nohup yarn start --no-base-path --no-watch --server.host="0.0.0.0" | 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: 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/anomaly-detection-dashboards-plugin -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/anomaly-detection-dashboards-plugin/*'
working-directory: opensearch-dashboards-functional-test
- name: Capture failure screenshots
uses: actions/upload-artifact@v2
if: failure()
with:
name: cypress-screenshots-${{ matrix.os }}
path: opensearch-dashboards-functional-test/cypress/screenshots
- name: Capture failure test video
uses: actions/upload-artifact@v2
if: failure()
with:
name: cypress-videos-${{ matrix.os }}
path: opensearch-dashboards-functional-test/cypress/videos