mds bug fixes #172
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
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: 'main' | |
OPENSEARCH_VERSION: '3.0.0' | |
OPENSEARCH_PLUGIN_VERSION: '3.0.0.0' | |
jobs: | |
tests: | |
name: Run FTR E2E AD 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 Anomaly-Detection | |
uses: actions/checkout@v2 | |
with: | |
path: anomaly-detection | |
repository: opensearch-project/anomaly-detection | |
ref: '${{ github.base_ref }}' | |
- 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: Install correct yarn version for OpenSearch Dashboards | |
id: setup-yarn | |
run: | | |
npm uninstall -g yarn | |
echo "Installing yarn ${{ steps.versions_step.outputs.yarn_version }}" | |
npm i -g yarn@${{ steps.versions_step.outputs.yarn_version }} | |
- name: Yarn Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
OpenSearch-Dashboards/**/target | |
OpenSearch-Dashboards/**/node_modules | |
key: ${{ runner.OS }}-build-${{ hashFiles('OpenSearch-Dashboards/**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.OS }}-build- | |
- name: Bootstrap OpenSearch Dashboards | |
run: | | |
cd OpenSearch-Dashboards | |
yarn osd bootstrap --single-version=loose | |
- name: Compile OpenSearch Dashboards | |
run: | | |
cd OpenSearch-Dashboards | |
node scripts/build_opensearch_dashboards_platform_plugins --no-examples --workers=10 --verbose | |
- 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: | | |
cd ./OpenSearch-Dashboards | |
if timeout 60 grep -q "http server running" <(tail -n +1 -f dashboard.log); then | |
echo "OpenSearch Dashboards started successfully." | |
else | |
echo "Timeout of 60 seconds reached. OpenSearch Dashboards did not start successfully." | |
exit 1 | |
fi& | |
- 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@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 |