Test doc layer #86
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: E2E Cypress tests | |
on: | |
pull_request: | |
branches: | |
- main | |
- 2.* | |
- feature/** | |
push: | |
branches: | |
- main | |
- 2.* | |
env: | |
OPENSEARCH_DASHBOARDS_BRANCH: 'main' | |
GEOSPATIAL_PLUGIN_BRANCH: 'main' | |
jobs: | |
tests: | |
env: | |
CI: 1 | |
TERM: xterm | |
WORKING_DIR: ${{ matrix.working_directory }}. | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest ] | |
include: | |
- os: windows-latest | |
working_directory: X:\ | |
os_java_options: -Xmx4068M | |
cypress_cache_folder: ~/AppData/Local/Cypress/Cache | |
- os: ubuntu-latest | |
cypress_cache_folder: ~/.cache/Cypress | |
name: Test and Build Dashboards Maps on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set up JDK | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: Shorten Path | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: subst 'X:' . | |
- name: Checkout geospatial plugin | |
uses: actions/checkout@v3 | |
with: | |
path: geospatial | |
repository: opensearch-project/geospatial | |
ref: ${{ env.GEOSPATIAL_PLUGIN_BRANCH }} | |
- name: Run Opensearch with plugin | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
cd geospatial | |
./gradlew run & | |
timeout 600 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:9200)" != "200" ]]; do sleep 5; done' | |
shell: bash | |
env: | |
_JAVA_OPTIONS: ${{ matrix.os_java_options }} | |
- name: Checkout Plugin | |
uses: actions/checkout@v3 | |
with: | |
path: dashboards-maps | |
- name: Checkout OpenSearch Dashboards | |
uses: actions/checkout@v3 | |
with: | |
repository: opensearch-project/OpenSearch-Dashboards | |
ref: ${{ env.OPENSEARCH_DASHBOARDS_BRANCH }} | |
path: OpenSearch-Dashboards | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: './OpenSearch-Dashboards/.nvmrc' | |
registry-url: 'https://registry.npmjs.org' | |
- name: Install Yarn | |
shell: bash | |
run: | | |
YARN_VERSION=$(node -p "require('./OpenSearch-Dashboards/package.json').engines.yarn") | |
echo "Installing yarn@$YARN_VERSION" | |
npm i -g yarn@$YARN_VERSION | |
- run: node -v | |
- run: yarn -v | |
- name: Set npm to use bash for shell | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe" | |
- name: Move plugin to OpenSearch-Dashboards Plugins Directory | |
run: | | |
mv dashboards-maps OpenSearch-Dashboards/plugins/dashboards-maps | |
- name: Bootstrap plugin | |
run: | | |
cd OpenSearch-Dashboards/plugins/dashboards-maps | |
yarn osd bootstrap --single-version=loose | |
- name: Run OpenSearch Dashboards server | |
run: | | |
cd OpenSearch-Dashboards | |
yarn start --no-base-path --no-watch --server.host="0.0.0.0" & | |
shell: bash | |
- name: Sleep until OSD server starts - windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: Start-Sleep -s 600 | |
shell: powershell | |
- name: Sleep until OSD server starts - non-windows | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: sleep 600 | |
shell: bash | |
- name: Install Cypress 9.5.4 | |
run: | | |
cd OpenSearch-Dashboards/plugins/dashboards-maps | |
npx cypress install --version 9.5.4 | |
shell: bash | |
- name: Cache Cypress | |
id: cache-cypress | |
uses: actions/cache@v2 | |
with: | |
path: ${{ matrix.cypress_cache_folder }} | |
key: cypress-cache-v2-9.5.4-${{ runner.os }}-${{ hashFiles('**/package.json') }} | |
- name: Reset npm's script shell | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
npm config delete script-shell | |
- name: Run Cypress tests | |
uses: cypress-io/github-action@v5 | |
with: | |
working-directory: OpenSearch-Dashboards/plugins/dashboards-maps | |
command: yarn run cypress run --browser electron | |
wait-on: 'http://localhost:5601' | |
wait-on-timeout: 300 | |
env: | |
CYPRESS_CACHE_FOLDER: ${{ matrix.cypress_cache_folder }} | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-screenshots-${{ matrix.os }} | |
path: OpenSearch-Dashboards/plugins/dashboards-maps/cypress/screenshots | |
- uses: actions/upload-artifact@v1 | |
if: always() | |
with: | |
name: cypress-videos-${{ matrix.os }} | |
path: OpenSearch-Dashboards/plugins/dashboards-maps/cypress/videos |