-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CI/CD] Add Cypress e2e workflow for gantt chart (#298)
* Add Cypress e2e workflow for gantt chart Signed-off-by: Ryan Liang <[email protected]> * Fix the command format Signed-off-by: Ryan Liang <[email protected]> * Update the workflow file Signed-off-by: Ryan Liang <[email protected]> * Update to OSD installation Signed-off-by: Ryan Liang <[email protected]> * Correct the curl to check http Signed-off-by: Ryan Liang <[email protected]> * Add checkout step and bootstrap Signed-off-by: Ryan Liang <[email protected]> * Add run osd Signed-off-by: Ryan Liang <[email protected]> * Setup node version Signed-off-by: Ryan Liang <[email protected]> * Add Cypress run for gantt-chart test Signed-off-by: Ryan Liang <[email protected]> * Add the switch the video capture to failure Signed-off-by: Ryan Liang <[email protected]> * Remove the debugging statements Signed-off-by: Ryan Liang <[email protected]> * use work dir instead cd Signed-off-by: Ryan Liang <[email protected]> * remove a useless cd Signed-off-by: Ryan Liang <[email protected]> * Rename some stuff Signed-off-by: Ryan Liang <[email protected]> * Remove additional checkout to OSD Signed-off-by: Ryan Liang <[email protected]> * Simplify the check of osd status Signed-off-by: Ryan Liang <[email protected]> --------- Signed-off-by: Ryan Liang <[email protected]>
- Loading branch information
Showing
1 changed file
with
146 additions
and
0 deletions.
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,146 @@ | ||
name: Cypress 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 Cypress 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: Install Gantt Chart to Opensearch Dashboards Plugins Dir | ||
run: | | ||
mv gantt-chart ./OpenSearch-Dashboards/plugins | ||
- 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 | ||
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: Install Cypress | ||
run: | | ||
npx cypress install | ||
shell: bash | ||
working-directory: OpenSearch-Dashboards/plugins/gantt-chart | ||
|
||
- 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/plugins/gantt-chart | ||
|
||
- name: Run Cypress tests | ||
run: | | ||
yarn cypress:run --browser chrome --headless --spec '.cypress/integration/${{ matrix.testgroups }}/*' | ||
working-directory: OpenSearch-Dashboards/plugins/gantt-chart | ||
|
||
- name: Capture failure screenshots | ||
uses: actions/upload-artifact@v1 | ||
if: failure() | ||
with: | ||
name: cypress-screenshots-${{ matrix.os }} | ||
path: OpenSearch-Dashboards/plugins/gantt-chart/.cypress/screenshots | ||
|
||
- name: Capture test video | ||
uses: actions/upload-artifact@v1 | ||
if: failure() | ||
with: | ||
name: cypress-videos-${{ matrix.os }} | ||
path: OpenSearch-Dashboards/plugins/gantt-chart/.cypress/videos |