name: Test and Build OpenSearch Dashboards Reports on: [pull_request, push] env: PLUGIN_NAME: reportsDashboards ARTIFACT_NAME: reports-dashboards OPENSEARCH_VERSION: 'main' OPENSEARCH_PLUGIN_VERSION: 3.0.0.0 jobs: linux-build: runs-on: ubuntu-latest steps: - name: Checkout OpenSearch Dashboards uses: actions/checkout@v1 with: repository: opensearch-project/Opensearch-Dashboards ref: ${{ env.OPENSEARCH_VERSION }} 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 # Need to use bash to avoid having a windows/linux specific step 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: Checkout Plugin uses: actions/checkout@v1 with: path: OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} - name: OpenSearch Dashboards Plugin Bootstrap uses: nick-fields/retry@v1 with: timeout_minutes: 30 max_attempts: 3 command: yarn osd bootstrap - name: Test uses: nick-fields/retry@v1 with: timeout_minutes: 30 max_attempts: 3 command: yarn test --coverage - name: Upload coverage uses: codecov/codecov-action@v1 with: flags: dashboards-report directory: ./OpenSearch-Dashboards/plugins/ token: ${{ secrets.CODECOV_TOKEN }} - name: Build Artifact run: | yarn build mv ./build/*.zip ./build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip - name: Upload Artifact For Linux uses: actions/upload-artifact@v1 with: name: dashboards-reports-linux path: ./build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip windows-build: runs-on: windows-latest steps: # 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: 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 # Need to use bash to avoid having a windows/linux specific step 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: Checkout Plugin uses: actions/checkout@v1 with: path: OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} - name: OpenSearch Dashboards Plugin Bootstrap uses: nick-fields/retry@v1 with: timeout_minutes: 30 max_attempts: 3 command: yarn osd bootstrap - name: Test uses: nick-fields/retry@v1 with: timeout_minutes: 30 max_attempts: 3 command: yarn test - name: Build Artifact run: | yarn build mv ./build/*.zip ./build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip - name: Upload Artifact For Windows uses: actions/upload-artifact@v1 with: name: dashboards-reports-windows path: ./build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip macos-build: runs-on: macos-latest steps: - name: Checkout OpenSearch Dashboards uses: actions/checkout@v1 with: repository: opensearch-project/Opensearch-Dashboards ref: ${{ env.OPENSEARCH_VERSION }} 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 # Need to use bash to avoid having a windows/linux specific step 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: Checkout Plugin uses: actions/checkout@v1 with: path: OpenSearch-Dashboards/plugins/${{ env.PLUGIN_NAME }} - name: OpenSearch Dashboards Plugin Bootstrap uses: nick-fields/retry@v1 with: timeout_minutes: 30 max_attempts: 3 command: yarn osd bootstrap - name: Test uses: nick-fields/retry@v1 with: timeout_minutes: 30 max_attempts: 3 command: yarn test - name: Build Artifact run: | yarn build mv ./build/*.zip ./build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip - name: Upload Artifact For MacOS uses: actions/upload-artifact@v1 with: name: dashboards-reports-macosx path: ./build/${{ env.ARTIFACT_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip