From c65f392c5850e2cdce4fe263236b8c7412fd99c4 Mon Sep 17 00:00:00 2001 From: Derek Ho Date: Thu, 20 Oct 2022 12:13:55 -0400 Subject: [PATCH] feat: enable windows and macos build (#504) Signed-off-by: Derek Ho (cherry picked from commit e1843a83dd4563f158ab1f59214014a5be51b632) Signed-off-by: Derek Ho --- ...boards-reports-test-and-build-workflow.yml | 160 ++++++++++++++++-- ...orts-scheduler-test-and-build-workflow.yml | 86 +++++++++- .../report_details.test.tsx.snap | 4 +- .../report_settings.test.tsx.snap | 16 +- dashboards-reports/test/jest.config.js | 4 +- 5 files changed, 246 insertions(+), 24 deletions(-) diff --git a/.github/workflows/dashboards-reports-test-and-build-workflow.yml b/.github/workflows/dashboards-reports-test-and-build-workflow.yml index 45d319bf..61a16ff2 100644 --- a/.github/workflows/dashboards-reports-test-and-build-workflow.yml +++ b/.github/workflows/dashboards-reports-test-and-build-workflow.yml @@ -8,8 +8,9 @@ env: OPENSEARCH_VERSION: 'main' OPENSEARCH_PLUGIN_VERSION: 2.4.0.0 + jobs: - build: + linux-build: runs-on: ubuntu-latest steps: - name: Checkout Plugin @@ -73,10 +74,9 @@ jobs: yarn build cd build - mkdir -p ./{linux-x64,linux-arm64,windows-x64}/opensearch-dashboards/${{ env.PLUGIN_NAME }} + mkdir -p ./{linux-x64,linux-arm64}/opensearch-dashboards/${{ env.PLUGIN_NAME }} cp ./${{ env.PLUGIN_NAME }}-*.zip ./linux-x64/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-linux-x64.zip cp ./${{ env.PLUGIN_NAME }}-*.zip ./linux-arm64/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-linux-arm64.zip - mv ./${{ env.PLUGIN_NAME }}-*.zip ./windows-x64/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-windows-x64.zip cd linux-x64 wget https://github.com/opensearch-project/dashboards-reports/releases/download/chromium-1.12.0.0/chromium-linux-x64.zip @@ -92,13 +92,6 @@ jobs: mv ./${{ env.ARTIFACT_NAME }}-*.zip .. cd .. - cd windows-x64 - wget https://github.com/opensearch-project/dashboards-reports/releases/download/chromium-1.12.0.0/chromium-windows-x64.zip - unzip chromium-windows-x64.zip -d ./opensearch-dashboards/${{ env.PLUGIN_NAME }} - zip -ur ./${{ env.ARTIFACT_NAME }}-*.zip ./opensearch-dashboards - mv ./${{ env.ARTIFACT_NAME }}-*.zip .. - cd .. - - name: Upload Artifact For Linux x64 uses: actions/upload-artifact@v1 with: @@ -111,8 +104,153 @@ jobs: name: dashboards-reports-linux-arm64 path: ../OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }}/build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-linux-arm64.zip + windows-build: + runs-on: windows-latest + steps: + - name: Checkout Plugin + uses: actions/checkout@v1 + + # Enable longer filenames for windows + - name: Enable longer filenames + run: git config --system core.longpaths true + + - name: Checkout OpenSearch Dashboards + uses: actions/checkout@v1 + with: + repository: opensearch-project/Opensearch-Dashboards + ref: ${{ env.OPENSEARCH_VERSION }} + path: dashboards-reports/OpenSearch-Dashboards + + - name: Get node version + id: versions_step + run: + echo "::set-output name=node_version::$(node -p "(require('./OpenSearch-Dashboards/package.json').engines.node).match(/[.0-9]+/)[0]")" + + - name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: ${{ steps.versions_step.outputs.node_version }} + registry-url: 'https://registry.npmjs.org' + + + - name: Move Dashboards Reports to Plugins Dir + run: mv dashboards-reports OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} + + - name: Add Chromium Binary to Reporting for Testing + run: | + cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} + curl.exe -LO https://github.com/opensearch-project/dashboards-reports/releases/download/chromium-1.12.0.0/chromium-windows-x64.zip + Expand-Archive -Path 'chromium-windows-x64.zip' + Move-Item -Path "./chromium-windows-x64/.chromium" -Destination "./.chromium" + rd chromium-windows-x64.zip + rd chromium-windows-x64 + + - name: OpenSearch Dashboards Plugin Bootstrap + uses: nick-invision/retry@v1 + with: + timeout_minutes: 30 + max_attempts: 3 + command: cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} && yarn osd bootstrap + + - name: Test + uses: nick-invision/retry@v1 + with: + timeout_minutes: 30 + max_attempts: 3 + command: cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} && yarn test + + - name: Build Artifact + run: | + cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} + yarn build + + cd build + mkdir -p ./windows-x64/opensearch-dashboards/${{ env.PLUGIN_NAME }} + mv ./${{ env.PLUGIN_NAME }}-*.zip ./windows-x64/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-windows-x64.zip + + cd windows-x64 + curl.exe -LO https://github.com/opensearch-project/dashboards-reports/releases/download/chromium-1.12.0.0/chromium-windows-x64.zip + Expand-Archive -Path 'chromium-windows-x64.zip' + Move-Item -Path "./chromium-windows-x64/.chromium" -Destination "./opensearch-dashboards/${{ env.PLUGIN_NAME }}" + rd chromium-windows-x64.zip + rd chromium-windows-x64 + Compress-Archive -Path "./${{ env.ARTIFACT_NAME }}-*.zip" -Destination "./opensearch-dashboards" + mv ./${{ env.ARTIFACT_NAME }}-*.zip .. + cd .. + - name: Upload Artifact For Windows uses: actions/upload-artifact@v1 with: name: dashboards-reports-windows-x64 - path: ../OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }}/build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-windows-x64.zip + path: OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }}/build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-windows-x64.zip + + macos-build: + runs-on: macos-latest + steps: + - name: Checkout Plugin + uses: actions/checkout@v1 + + - name: Checkout OpenSearch Dashboards + uses: actions/checkout@v1 + with: + repository: opensearch-project/Opensearch-Dashboards + ref: ${{ env.OPENSEARCH_VERSION }} + path: dashboards-reports/OpenSearch-Dashboards + + - name: Get node version + id: versions_step + run: + echo "::set-output name=node_version::$(node -p "(require('./OpenSearch-Dashboards/package.json').engines.node).match(/[.0-9]+/)[0]")" + + - name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: ${{ steps.versions_step.outputs.node_version }} + registry-url: 'https://registry.npmjs.org' + + + - name: Move Dashboards Reports to Plugins Dir + run: mv dashboards-reports OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} + + - name: Add Chromium Binary to Reporting for Testing + run: | + cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} + wget https://github.com/opendistro-for-elasticsearch/kibana-reports/releases/download/chromium-1.12.0.0/chromium-macos-x64.zip + unzip chromium-macos-x64.zip + rm chromium-macos-x64.zip + + - name: OpenSearch Dashboards Plugin Bootstrap + uses: nick-invision/retry@v1 + with: + timeout_minutes: 30 + max_attempts: 3 + command: cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }}; yarn osd bootstrap + + - name: Test + uses: nick-invision/retry@v1 + with: + timeout_minutes: 30 + max_attempts: 3 + command: cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }}; yarn test + + - name: Build Artifact + run: | + cd OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} + yarn build + + cd build + mkdir -p ./macos-x64/opensearch-dashboards/${{ env.PLUGIN_NAME }} + mv ./${{ env.PLUGIN_NAME }}-*.zip ./macos-x64/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-macos-x64.zip + + cd macos-x64 + wget https://github.com/opensearch-project/dashboards-reports/releases/download/chromium-1.12.0.0/chromium-macos-x64.zip + unzip chromium-macos-x64.zip -d ./opensearch-dashboards/${{ env.PLUGIN_NAME }} + zip -ur ./${{ env.ARTIFACT_NAME }}-*.zip ./opensearch-dashboards + mv ./${{ env.ARTIFACT_NAME }}-*.zip .. + cd .. + + - name: Upload Artifact For MacOS x64 + uses: actions/upload-artifact@v1 + with: + name: dashboards-reports-macosx-x64 + path: OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }}/build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}-macos-x64.zip diff --git a/.github/workflows/reports-scheduler-test-and-build-workflow.yml b/.github/workflows/reports-scheduler-test-and-build-workflow.yml index eaec60d8..fc2d9780 100644 --- a/.github/workflows/reports-scheduler-test-and-build-workflow.yml +++ b/.github/workflows/reports-scheduler-test-and-build-workflow.yml @@ -3,7 +3,7 @@ name: Test and Build Reports Scheduler on: [push, pull_request] jobs: - build: + linux-build: strategy: matrix: java: @@ -41,5 +41,87 @@ jobs: - name: Upload Artifacts uses: actions/upload-artifact@v1 with: - name: reports-scheduler + name: reports-scheduler-linux + path: reports-scheduler-builds + + windows-build: + strategy: + matrix: + java: + - 11 + - 17 + runs-on: windows-latest + + steps: + - name: Set up JDK ${{ matrix.java }} + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.java }} + + # reports-scheduler + - name: Checkout Reports Scheduler + uses: actions/checkout@v2 + + # Disable bwc tests since first release + # - name: RunBackwards Compatibility Tests + # run: | + # cd reports-scheduler + # echo "Running backwards compatibility tests ..." + # ./gradlew.bat bwcTestSuite + + - name: Build with Gradle + run: | + cd reports-scheduler + ./gradlew.bat build -x integTest -x jacocoTestReport + + - name: Create Artifact Path + run: | + mkdir -p reports-scheduler-builds + cp -r ./reports-scheduler/build/distributions/*.zip reports-scheduler-builds/ + + - name: Upload Artifacts + uses: actions/upload-artifact@v1 + with: + name: reports-scheduler-windows + path: reports-scheduler-builds + + macos-build: + strategy: + matrix: + java: + - 11 + - 17 + runs-on: macos-latest + + steps: + - name: Set up JDK ${{ matrix.java }} + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.java }} + + # reports-scheduler + - name: Checkout Reports Scheduler + uses: actions/checkout@v2 + + # Disable bwc tests since first release + # - name: RunBackwards Compatibility Tests + # run: | + # cd reports-scheduler + # echo "Running backwards compatibility tests ..." + # ./gradlew bwcTestSuite + + - name: Build with Gradle + run: | + cd reports-scheduler + ./gradlew build -x integTest -x jacocoTestReport + + - name: Create Artifact Path + run: | + mkdir -p reports-scheduler-builds + cp -r ./reports-scheduler/build/distributions/*.zip reports-scheduler-builds/ + + - name: Upload Artifacts + uses: actions/upload-artifact@v1 + with: + name: reports-scheduler-macos path: reports-scheduler-builds diff --git a/dashboards-reports/public/components/main/report_details/__tests__/__snapshots__/report_details.test.tsx.snap b/dashboards-reports/public/components/main/report_details/__tests__/__snapshots__/report_details.test.tsx.snap index a36d7798..7d0b79f6 100644 --- a/dashboards-reports/public/components/main/report_details/__tests__/__snapshots__/report_details.test.tsx.snap +++ b/dashboards-reports/public/components/main/report_details/__tests__/__snapshots__/report_details.test.tsx.snap @@ -192,7 +192,7 @@ exports[` panel render 5 hours recurring component 1`] = `
- Invalid Date -> 10/23/2020, 1:53:35 PM + Invalid Date -> 10/23/2020, 8:53:35 PM
@@ -599,7 +599,7 @@ exports[` panel render on-demand component 1`] = `
- Invalid Date -> 10/23/2020, 1:53:35 PM + Invalid Date -> 10/23/2020, 8:53:35 PM
diff --git a/dashboards-reports/public/components/report_definitions/report_settings/__tests__/__snapshots__/report_settings.test.tsx.snap b/dashboards-reports/public/components/report_definitions/report_settings/__tests__/__snapshots__/report_settings.test.tsx.snap index 4c923442..d348db59 100644 --- a/dashboards-reports/public/components/report_definitions/report_settings/__tests__/__snapshots__/report_settings.test.tsx.snap +++ b/dashboards-reports/public/components/report_definitions/report_settings/__tests__/__snapshots__/report_settings.test.tsx.snap @@ -402,7 +402,7 @@ exports[` panel dashboard create from in-context 1`] = ` data-test-subj="superDatePickerstartDatePopoverButton" title="2020-10-26T20:52:56.382Z" > - Oct 26, 2020 @ 13:52:56.382 + Oct 26, 2020 @ 20:52:56.382 @@ -426,7 +426,7 @@ exports[` panel dashboard create from in-context 1`] = ` data-test-subj="superDatePickerendDatePopoverButton" title="2020-10-27T20:52:56.384Z" > - Oct 27, 2020 @ 13:52:56.384 + Oct 27, 2020 @ 20:52:56.384 @@ -1585,7 +1585,7 @@ exports[` panel display errors on create 1`] = ` data-test-subj="superDatePickerstartDatePopoverButton" title="2020-10-26T20:52:56.382Z" > - Oct 26, 2020 @ 13:52:56.382 + Oct 26, 2020 @ 20:52:56.382 @@ -1609,7 +1609,7 @@ exports[` panel display errors on create 1`] = ` data-test-subj="superDatePickerendDatePopoverButton" title="2020-10-27T20:52:56.384Z" > - Oct 27, 2020 @ 13:52:56.384 + Oct 27, 2020 @ 20:52:56.384 @@ -6506,7 +6506,7 @@ exports[` panel saved search create from in-context 1`] = ` data-test-subj="superDatePickerstartDatePopoverButton" title="2020-10-26T20:52:56.382Z" > - Oct 26, 2020 @ 13:52:56.382 + Oct 26, 2020 @ 20:52:56.382 @@ -6530,7 +6530,7 @@ exports[` panel saved search create from in-context 1`] = ` data-test-subj="superDatePickerendDatePopoverButton" title="2020-10-27T20:52:56.384Z" > - Oct 27, 2020 @ 13:52:56.384 + Oct 27, 2020 @ 20:52:56.384 @@ -7689,7 +7689,7 @@ exports[` panel visualization create from in-context 1`] = ` data-test-subj="superDatePickerstartDatePopoverButton" title="2020-10-26T20:52:56.382Z" > - Oct 26, 2020 @ 13:52:56.382 + Oct 26, 2020 @ 20:52:56.382 @@ -7713,7 +7713,7 @@ exports[` panel visualization create from in-context 1`] = ` data-test-subj="superDatePickerendDatePopoverButton" title="2020-10-27T20:52:56.384Z" > - Oct 27, 2020 @ 13:52:56.384 + Oct 27, 2020 @ 20:52:56.384 diff --git a/dashboards-reports/test/jest.config.js b/dashboards-reports/test/jest.config.js index ec861b87..a8756693 100644 --- a/dashboards-reports/test/jest.config.js +++ b/dashboards-reports/test/jest.config.js @@ -3,7 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -process.env.TZ = 'America/Los_Angeles'; +//@ts-check + +process.env.TZ = 'UTC'; module.exports = { rootDir: '../',