Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Windows runner for CI workflows #1275

Merged
merged 77 commits into from
Feb 3, 2023
Merged
Show file tree
Hide file tree
Changes from 63 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
3434d63
CI refactoring for support Windows runner
RyanL1997 Dec 14, 2022
59e6a36
Change the distribution build version to 6705 for linux runner
RyanL1997 Dec 14, 2022
2e3aae4
Change the distribution build version to 6708 for both linux and wind…
RyanL1997 Dec 14, 2022
02f785c
test updated versions
stephen-crawford Dec 14, 2022
ba4f774
test updated versions
stephen-crawford Dec 14, 2022
8c6162d
test updated versions
stephen-crawford Dec 14, 2022
58dbad1
swap firefox install
stephen-crawford Dec 14, 2022
ad6fe0f
swap firefox install
stephen-crawford Dec 14, 2022
1069183
swap firefox install
stephen-crawford Dec 14, 2022
8b216d9
Swap to invoke
stephen-crawford Dec 14, 2022
864bdd7
Swap to zip
stephen-crawford Dec 14, 2022
0a95a68
SPecify jdk
stephen-crawford Dec 14, 2022
235ca60
swap to new setup
stephen-crawford Dec 14, 2022
3b3f1e8
Remove second mkdir
stephen-crawford Dec 15, 2022
93e73c7
upload coverage
stephen-crawford Dec 15, 2022
6284ec4
remove coverage checkc
stephen-crawford Dec 15, 2022
4387414
Run in band
stephen-crawford Dec 15, 2022
236ad95
Make not background
stephen-crawford Dec 15, 2022
1a6def3
Revert resolved conflict
stephen-crawford Dec 15, 2022
0468402
Add specification for firefox driver on different os runners
RyanL1997 Dec 15, 2022
2b117ae
Reference the firefox setup for windows to RyanL1997
RyanL1997 Dec 15, 2022
6ad568b
Add config for opensearch.yml for windows setup
RyanL1997 Dec 16, 2022
4a62d9f
Switch back to yarn for integ test
RyanL1997 Dec 16, 2022
f7dba31
Add run IDP server command for Windows runner
RyanL1997 Dec 16, 2022
82e3a9c
Switch back to yarn for Windows runner
RyanL1997 Dec 17, 2022
a7cd2b2
Switch back to yarn for Windows runner
RyanL1997 Jan 5, 2023
00986d2
Enable both Linux and windows runner
RyanL1997 Jan 6, 2023
787c9ba
Change the cypress test script to support both linux and windows runners
RyanL1997 Jan 6, 2023
facdfe5
Switch back to yarn and extend sleep time to 800 seconds for cypress …
RyanL1997 Jan 6, 2023
9326f3f
Change the distribution build version back to 'latest'
RyanL1997 Jan 9, 2023
5edfd44
Add log for osd set up
RyanL1997 Jan 9, 2023
6204d6a
Add flags for yarn command of OSD setup
RyanL1997 Jan 9, 2023
07a2f85
Add curl command to see if OSD runs up
RyanL1997 Jan 9, 2023
b66d256
Remove cat for OSD logs
RyanL1997 Jan 9, 2023
9fcb57e
Remove cat for OSD logs attempt 2
RyanL1997 Jan 9, 2023
e0880e7
remove oss flag for OSD setup command
RyanL1997 Jan 9, 2023
9ea1746
Remove the cwd flag for OSD setup
RyanL1997 Jan 10, 2023
8c7111e
Add cat osd.log back
RyanL1997 Jan 10, 2023
068373d
Change to 0.0.0.0 after checkout to ftr
RyanL1997 Jan 10, 2023
af37758
Enable unit test
RyanL1997 Jan 12, 2023
aed95c2
Use nohup for osd setup
RyanL1997 Jan 20, 2023
95c793f
Modify create setup script for windows
RyanL1997 Jan 20, 2023
722851f
Add working dir to Cypress workflow
RyanL1997 Jan 20, 2023
50c48f2
Check 9200 status before and after checkout to ftr
RyanL1997 Jan 20, 2023
fc01542
Change the demo config installation command for linux
RyanL1997 Jan 23, 2023
d6966e9
checkout with v3
RyanL1997 Jan 23, 2023
869cf3b
Merge the ftr checkout into one step
RyanL1997 Jan 23, 2023
cc596f4
Switch the test browser from chromium to chrome for Cypress test
RyanL1997 Jan 23, 2023
ca7c6dd
Extract the test into another step
RyanL1997 Jan 23, 2023
c619e88
Merge the clone step back to setup
RyanL1997 Jan 24, 2023
9a9b362
Refactor Cypress workflow
RyanL1997 Jan 24, 2023
bb352bb
Hook to RyanL1997 for testing proper timeout gap
RyanL1997 Jan 24, 2023
b3dc358
Fix the setup script for windows with correct flags
RyanL1997 Jan 24, 2023
8b798eb
Switch back to original repo
RyanL1997 Jan 24, 2023
a11e5ae
Fix the setup command for integ test with correct flags
RyanL1997 Jan 24, 2023
57b9c58
Move idp setup inside the saml integ test
RyanL1997 Jan 24, 2023
8dde509
Set up a seprate integ test sets for windows runner
RyanL1997 Jan 24, 2023
af67535
Switch to node command for integ test windows runner
RyanL1997 Jan 25, 2023
84dd998
Remove the ignore flag
RyanL1997 Jan 25, 2023
9954325
Add ingnore flag back
RyanL1997 Jan 25, 2023
1836b5b
Switch to node for integ windows runner
RyanL1997 Jan 25, 2023
dc40463
Remove idp server command for integ windows runner
RyanL1997 Jan 25, 2023
a304c2c
Change jwt auth testing output format
RyanL1997 Jan 25, 2023
5e4542b
Solving comments and try jwt output
RyanL1997 Jan 25, 2023
895c627
Try reusable action for security plugin downloads
RyanL1997 Jan 25, 2023
6ae66d6
Apply reusable action for integ test workflow
RyanL1997 Jan 26, 2023
91da046
rename setup action directory
RyanL1997 Jan 26, 2023
f49f3d6
Switch to new action with rename steps
RyanL1997 Jan 26, 2023
6100ab8
Remove comments
RyanL1997 Jan 26, 2023
c4f2472
Trim the install dashboards action
RyanL1997 Jan 26, 2023
3dbbe4d
Switch to build id 7028 for security plugin
RyanL1997 Jan 31, 2023
9da6a34
Refactor selenium driver setup
RyanL1997 Jan 31, 2023
0c95b14
Try gecko driver commit id and remove jdk in cypress
RyanL1997 Feb 1, 2023
677e6c1
Fix the osd-version naming and revert back
RyanL1997 Feb 1, 2023
6a6c6e2
Fix gecko branch and jdk 11 only
RyanL1997 Feb 1, 2023
e9fcee4
Switch back to 'latest' for distribution build version
RyanL1997 Feb 2, 2023
edfd2f0
Merge branch 'main' into windows-support-for-ci
RyanL1997 Feb 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 41 additions & 11 deletions .github/actions/install-dashboards/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ outputs:
plugin-directory:
description: "The directory where the plugin has been configured"
value: ${{ steps.determine-plugin-directory.outputs.plugin-directory }}


runs:
using: "composite"
Expand All @@ -33,28 +34,41 @@ runs:
ref: 'main'
fetch-depth: 0

- run: mkdir -p plugins
working-directory: OpenSearch-Dashboards
shell: bash

- uses: actions/checkout@v2
with:
path: ${{ steps.determine-plugin-directory.outputs.plugin-directory }}

- id: osd-version
- id: osd-version-linux
if: ${{ runner.os == 'Linux' }}
continue-on-error: true
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
run: |
echo "::set-output name=osd-version::$(cat package.json | jq '.opensearchDashboards.version' | cut -c 2-4)"
echo "::set-output name=osd-version-linux::$(cat package.json | jq '.opensearchDashboards.version' | cut -c 2-4)"
echo "::set-output name=osd-x-version::$(cat package.json | jq '.opensearchDashboards.version' | cut -c 2-3)"
working-directory: ${{ steps.determine-plugin-directory.outputs.plugin-directory }}
shell: bash

- id: branch-switch-if-possible
- id: osd-version-windows
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks identical to osd-version-linux, lets make this into a single command.

if: ${{ runner.os == 'Windows' }}
continue-on-error: true
run: |
echo "::set-output name=osd-version-linux::$(cat package.json | jq '.opensearchDashboards.version' | cut -c 2-4)"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean osd-version-windows here? Also, we can combine it with osd-version-linux to make osd-version

echo "::set-output name=osd-x-version::$(cat package.json | jq '.opensearchDashboards.version' | cut -c 2-3)"
working-directory: ${{ steps.determine-plugin-directory.outputs.plugin-directory }}
shell: pwsh

- id: branch-switch-if-possible-linux
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
continue-on-error: true # Defaults onto main if the branch switch doesn't work
if: ${{ steps.osd-version.outputs.osd-version }}
run: git checkout ${{ steps.osd-version.outputs.osd-version }} || git checkout ${{ steps.osd-version.outputs.osd-x-version }}x
if: ${{ runner.os == 'Linux' && steps.osd-version-linux.outputs.osd-version-linux }}
run: git checkout ${{ steps.osd-version-linux.outputs.osd-version }} || git checkout ${{ steps.osd-version-linux.outputs.osd-x-version }}x
working-directory: ./OpenSearch-Dashboards
shell: bash

- id: branch-switch-if-possible-windows
continue-on-error: true # Defaults onto main if the branch switch doesn't work
if: ${{ runner.os == 'Windows' && steps.osd-version-linux.outputs.osd-version-windows }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above: osd-version-windows instead of osd-version-linux?

run: git checkout ${{ steps.osd-version-windows.outputs.osd-version }} || git checkout ${{ steps.osd-version-windows.outputs.osd-x-version }}x
working-directory: ./OpenSearch-Dashboards
shell: pwsh
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you seeing a difference between bash/pwsh when running these commands? If it does, use action-cond [link] to set the platform specific shell for these commands.


- id: tool-versions
run: |
Expand All @@ -68,14 +82,30 @@ runs:
node-version: ${{ steps.tool-versions.outputs.node_version }}
registry-url: 'https://registry.npmjs.org'

- run: |
- name: Setup Opensearch Dashboards on Linux
if: ${{ runner.os == 'Linux' }}
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
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
working-directory: OpenSearch-Dashboards
shell: bash

- uses: nick-fields/retry@v2
- name: Setup Opensearch Dashboards on Windows
if: ${{ runner.os == 'Windows' }}
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: pwsh
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks identical to the step above except shell type. you can use action conditions to specify the shell at run time


- name: Bootstrap the OpenSearch Dashboard
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
uses: nick-fields/retry@v2
with:
timeout_minutes: 20
max_attempts: 2
Expand Down
66 changes: 39 additions & 27 deletions .github/workflows/cypress-test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Cypress Tests

on: [push, pull_request]
on: [ push, pull_request ]

env:
TEST_BROWSER_HEADLESS: 1
Expand All @@ -16,22 +16,45 @@ env:
jobs:
tests:
name: Run Cypress tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest , windows-latest ]
jdk: [ 11, 17 ]
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
runs-on: ${{ matrix.os }}

steps:
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}

- name: Checkout Branch
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Download OpenSearch Security Plugin
- name: Download OpenSearch Security Plugin on Linux
if: ${{ runner.os == 'Linux' }}
run: wget --progress=bar:force:noscroll -O opensearch-security.zip https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/${{ env.OPENSEARCH_VERSION }}/latest/linux/x64/tar/builds/opensearch/plugins/${{ env.PLUGIN_NAME }}-${{ env.PLUGIN_VERSION }}.zip

- name: Create Setup Script
- name: Download OpenSearch Security Plugin on Windows
if: ${{ runner.os == 'Windows' }}
run: Invoke-WebRequest -Uri https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/${{ env.OPENSEARCH_VERSION }}/latest/windows/x64/zip/builds/opensearch/plugins/${{ env.PLUGIN_NAME }}-${{ env.PLUGIN_VERSION }}.zip -Outfile opensearch-security.zip
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved

- name: Create Setup Script for Linux
if: ${{ runner.os == 'Linux' }}
run: |
cat > setup.sh <<'EOF'
chmod +x ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/plugins/${{ env.PLUGIN_NAME }}/tools/install_demo_configuration.sh
/bin/bash -c "yes | ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/plugins/${{ env.PLUGIN_NAME }}/tools/install_demo_configuration.sh"
EOF

- name: Create Setup Script for Windows
if: ${{ runner.os == 'Windows' }}
run: |
New-Item .\setup.bat -type file
Set-Content .\setup.bat -Value "powershell.exe -noexit -command `".\opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT\plugins\${{ env.PLUGIN_NAME }}\tools\install_demo_configuration.bat -y -i -c`""
Get-Content .\setup.bat
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See if you can use action condition to combine this step with the one above using action conditions


- name: Run Opensearch with A Single Plugin
uses: opensearch-project/security/.github/actions/start-opensearch-with-one-plugin@main
with:
Expand All @@ -44,8 +67,8 @@ jobs:
with:
plugin_name: security-dashboards-plugin

- name: Configure and Run OpenSearch Dashboards
continue-on-error: false
# TODO: Switch back to action for checkout after the fix of windows runner.
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
- name: Configure and Run OpenSearch Dashboards with Cypress Test Cases
run: |
cd ./OpenSearch-Dashboards
echo 'server.host: "0.0.0.0"' >> ./config/opensearch_dashboards.yml
Expand All @@ -59,23 +82,12 @@ jobs:
echo 'opensearch_security.readonly_mode.roles: ["kibana_read_only"]' >> ./config/opensearch_dashboards.yml
echo 'opensearch_security.cookie.secure: false' >> ./config/opensearch_dashboards.yml
echo 'opensearch_security.multitenancy.enable_aggregation_view: true' >> ./config/opensearch_dashboards.yml
yarn start --no-base-path --no-watch &
sleep 300

- name: Checkout
uses: actions/checkout@v2
with:
path: ${{ env.FTR_PATH }}
repository: opensearch-project/opensearch-dashboards-functional-test
ref: 'main'

- name: Get Cypress version
id: cypress_version
run: |
echo "::set-output name=cypress_version::$(cat ./${{ env.FTR_PATH }}/package.json | jq '.devDependencies.cypress' | tr -d '"')"

- name: Run tests
uses: cypress-io/github-action@v2
with:
working-directory: ${{ env.FTR_PATH }}
command: yarn cypress:run-with-security-and-aggregation-view --browser chromium --spec ${{ env.SPEC }}
echo 'logging.dest: osd.log' >> ./config/opensearch_dashboards.yml
cat ./config/opensearch_dashboards.yml
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
nohup yarn start --no-base-path --no-watch &
sleep 500
cat osd.log
git clone https://github.com/opensearch-project/opensearch-dashboards-functional-test.git
cd opensearch-dashboards-functional-test
npm install cypress --save-dev
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
yarn cypress:run-with-security-and-aggregation-view --browser chrome --spec "cypress/integration/plugins/security-dashboards-plugin/aggregation_view.js"
66 changes: 58 additions & 8 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,49 @@ env:
jobs:
tests:
name: Run integration tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest , windows-latest ]
jdk: [ 11, 17 ]
runs-on: ${{ matrix.os }}

steps:
- name: Checkout Branch
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}

- uses: browser-actions/setup-geckodriver@latest
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
- run: geckodriver --version

- uses: browser-actions/setup-firefox@latest
- run: firefox --version

- name: Download OpenSearch Security Plugin
- name: Set up Firefox browser for Linux
if: ${{ runner.os == 'Linux' }}
uses: browser-actions/setup-firefox@latest
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace @latest with either a specific version tag or commit id.

We strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update.

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsuses

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note; this applies to a couple of different places in these changes

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review Peter! I have changed the firfox one to a specific version. But for the gecko I think it only has the version control of latest.

with:
browser: firefox
version: latest

# Browser-action version does not work on Windows
- name: Set up Firefox browser for Windows
if: ${{ runner.os == 'Windows' }}
uses: RyanL1997/setup-browser@main
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any changes in this fork, lets use browser-actions/setup-firefox for all platforms.

Copy link
Collaborator Author

@RyanL1997 RyanL1997 Jan 31, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tested if I change it back it will be give you the error of this on Windows:
Screenshot 2023-01-31 at 11 17 25 AM
That's why I left that comment at L41.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any changes in your fork, can you link the commit with the changes you needed? I'm fine using your fork and should use the same fork for both linux/windows workflows

with:
browser: firefox
version: latest

- name: Download OpenSearch Security Plugin on Linux
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets reduce the duplication between the cypress and integration tests workflow. There are a couple ways this can be done.

  • Refactor the common code into a new action like install-dashboards, then trim down these workflow files
  • Merge both workflow files into a single file with a matrix that selects the type of integration test, and include if statements for the cypress vs jest runners

I would prefer the first option to make a common action they reuse, that could be re-used by other teams, what do you think?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review! I have created a new action for the plugin download and script setup~

if: ${{ runner.os == 'Linux' }}
run: wget --progress=bar:force:noscroll -O opensearch-security.zip https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/${{ env.OPENSEARCH_VERSION }}/latest/linux/x64/tar/builds/opensearch/plugins/${{ env.PLUGIN_NAME }}-${{ env.PLUGIN_VERSION }}.zip

- name: Create Setup Script
- name: Download OpenSearch Security Plugin on Windows
if: ${{ runner.os == 'Windows' }}
run: Invoke-WebRequest -Uri https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/${{ env.OPENSEARCH_VERSION }}/latest/windows/x64/zip/builds/opensearch/plugins/${{ env.PLUGIN_NAME }}-${{ env.PLUGIN_VERSION }}.zip -Outfile opensearch-security.zip

- name: Create Setup Script for Linux
if: ${{ runner.os == 'Linux' }}
run: |
cat > setup.sh <<'EOF'
Expand All @@ -35,25 +63,47 @@ jobs:
echo "plugins.security.unsupported.restapi.allow_securityconfig_modification: true" >> ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/config/opensearch.yml
EOF

- name: Create Setup Script for Windows
if: ${{ runner.os == 'Windows' }}
run: |
New-Item .\setup.bat -type file
Set-Content .\setup.bat -Value "powershell.exe -noexit -command `".\opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT\plugins\${{ env.PLUGIN_NAME }}\tools\install_demo_configuration.bat -y -i -c`""
Add-Content -Path .\setup.bat -Value "echo plugins.security.unsupported.restapi.allow_securityconfig_modification: true >> .\opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT\config\opensearch.yml"
Get-Content .\setup.bat

- name: Run Opensearch with A Single Plugin
uses: opensearch-project/security/.github/actions/start-opensearch-with-one-plugin@main
with:
opensearch-version: ${{ env.OPENSEARCH_VERSION }}
plugin-name: ${{ env.PLUGIN_NAME }}
setup-script-name: setup

- name: Show Opensearch.yml
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved
if: ${{ runner.os == 'Windows' }}
run: Get-Content .\opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT\config\opensearch.yml

- id: install-dashboards
uses: ./.github/actions/install-dashboards
with:
plugin_name: security-dashboards-plugin

- name: Start Dashboards in background
# if: ${{ runner.os == 'Linux' }}
run: node scripts/build_opensearch_dashboards_platform_plugins.js
working-directory: ${{ steps.install-dashboards.outputs.dashboards-directory }}

- name: Run integration tests
- name: Run integration tests on Linux
if: ${{ runner.os == 'Linux' }}
run: |
echo "check if opensearch is ready"
curl -XGET https://localhost:9200 -u 'admin:admin' -k
yarn test:jest_server --coverage
working-directory: ${{ steps.install-dashboards.outputs.plugin-directory }}

- name: Run integration tests on Windows
if: ${{ runner.os == 'Windows' }}
run: |
echo "check if opensearch is ready"
curl -XGET https://localhost:9200 -u 'admin:admin' -k
node .\test\run_jest_tests.js --config .\test\jest.config.server.js --testPathIgnorePatterns saml_auth.test.ts
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are all of the tests in saml_auth.test.ts failing on windows or just the Tenancy persisted after Logout in SAML test case? If its just the one test case what do you think about taking the test case out of saml_auth.test.ts and putting it into another file (maybe saml_auth_tenancy.test.ts?) and temporarily ignoring that suite while it awaits a fix?

working-directory: ${{ steps.install-dashboards.outputs.plugin-directory }}
2 changes: 1 addition & 1 deletion .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Unit Tests

on: [push, pull_request]
on: [ push, pull_request ]

jobs:
unit-tests:
Expand Down
10 changes: 4 additions & 6 deletions test/jest_integration/jwt_auth.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -284,9 +284,8 @@ describe('start OpenSearch Dashboards server', () => {
await driver.get(`http://localhost:5601/app/opensearch_dashboards_overview?token=${token}`);

const rep = await driver.getPageSource();
expect(rep).toContain(
'"statusCode":401,"error":"Unauthorized","message":"Authentication Exception"'
);
expect(rep).toContain('401');
expect(rep).toContain('Unauthorized');
RyanL1997 marked this conversation as resolved.
Show resolved Hide resolved

const cookie = await driver.manage().getCookies();
expect(cookie.length).toEqual(0);
Expand All @@ -311,9 +310,8 @@ describe('start OpenSearch Dashboards server', () => {
await driver.get(`http://localhost:5601/app/dev_tools?token=${token}`);

const rep = await driver.getPageSource();
expect(rep).toContain(
'"statusCode":401,"error":"Unauthorized","message":"Authentication Exception"'
);
expect(rep).toContain('401');
expect(rep).toContain('Unauthorized');

const cookie = await driver.manage().getCookies();
expect(cookie.length).toEqual(0);
Expand Down