Skip to content

Commit

Permalink
feat: enable windows and macos build (#504) (#511)
Browse files Browse the repository at this point in the history
Signed-off-by: Derek Ho <dxho@amazon.com>
  • Loading branch information
derek-ho committed Oct 20, 2022
1 parent 82be162 commit 3f66415
Show file tree
Hide file tree
Showing 5 changed files with 246 additions and 24 deletions.
160 changes: 149 additions & 11 deletions .github/workflows/dashboards-reports-test-and-build-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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
86 changes: 84 additions & 2 deletions .github/workflows/reports-scheduler-test-and-build-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Test and Build Reports Scheduler
on: [push, pull_request]

jobs:
build:
linux-build:
strategy:
matrix:
java:
Expand Down Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ exports[`<ReportDetails /> panel render 5 hours recurring component 1`] = `
<dd
class="euiDescriptionList__description"
>
Invalid Date -&gt; 10/23/2020, 1:53:35 PM
Invalid Date -&gt; 10/23/2020, 8:53:35 PM
</dd>
</dl>
</div>
Expand Down Expand Up @@ -599,7 +599,7 @@ exports[`<ReportDetails /> panel render on-demand component 1`] = `
<dd
class="euiDescriptionList__description"
>
Invalid Date -&gt; 10/23/2020, 1:53:35 PM
Invalid Date -&gt; 10/23/2020, 8:53:35 PM
</dd>
</dl>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand All @@ -426,7 +426,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand Down Expand Up @@ -1585,7 +1585,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand All @@ -1609,7 +1609,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand Down Expand Up @@ -6506,7 +6506,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand All @@ -6530,7 +6530,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand Down Expand Up @@ -7689,7 +7689,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand All @@ -7713,7 +7713,7 @@ exports[`<ReportSettings /> 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
</button>
</div>
</div>
Expand Down
4 changes: 3 additions & 1 deletion dashboards-reports/test/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -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: '../',
Expand Down

0 comments on commit 3f66415

Please sign in to comment.