[CVE] Fix CVE-2024-21538 issue #212
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 Gantt Chart 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 Gantt Chart 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 Plugin | |
uses: actions/checkout@v2 | |
- 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: 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 Plugin | |
uses: actions/checkout@v2 | |
with: | |
path: OpenSearch-Dashboards/plugins/dashboards-visualizations | |
- 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 | |
- name: Run Opensearch Dashboards with Gantt Chart 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: Checkout Dashboards Functioanl 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: Run Cypress tests | |
run: | | |
yarn cypress:run-without-security --browser chromium --spec 'cypress/integration/plugins/gantt-chart-dashboards/*.js' | |
working-directory: opensearch-dashboards-functional-test | |
- name: Capture failure screenshots | |
uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-screenshots-${{ matrix.os }} | |
path: opensearch-dashboards-functional-test/cypress/screenshots | |
- name: Capture test video | |
uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos-${{ matrix.os }} | |
path: opensearch-dashboards-functional-test/cypress/videos |