From 03cd36408fd7e87b9d1c095272fa8b3bcbc3c13b Mon Sep 17 00:00:00 2001 From: Joshua Li Date: Thu, 25 Jan 2024 21:24:28 +0000 Subject: [PATCH] update workflow and readme Signed-off-by: Joshua Li --- .../cypress-e2e-gantt-chart-test.yml | 36 ++++----- .../workflows/ftr-e2e-gantt-chart-test.yml | 7 +- .github/workflows/lint.yml | 28 +++---- .github/workflows/test-and-build-workflow.yml | 77 +++++++++---------- DEVELOPER_GUIDE.md | 10 +-- 5 files changed, 70 insertions(+), 88 deletions(-) diff --git a/.github/workflows/cypress-e2e-gantt-chart-test.yml b/.github/workflows/cypress-e2e-gantt-chart-test.yml index 3a4c260..39163c2 100644 --- a/.github/workflows/cypress-e2e-gantt-chart-test.yml +++ b/.github/workflows/cypress-e2e-gantt-chart-test.yml @@ -25,37 +25,34 @@ jobs: uses: actions/setup-java@v1 with: java-version: ${{ matrix.jdk }} - - - name: Checkout Plugin - uses: actions/checkout@v2 - name: Download OpenSearch uses: peternied/download-file@v2 with: url: https://artifacts.opensearch.org/snapshots/core/opensearch/${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/opensearch-min-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT-linux-x64-latest.tar.gz - + - name: Extract OpenSearch run: | tar -xzf opensearch-*.tar.gz rm -f opensearch-*.tar.gz shell: bash - + - name: Run OpenSearch run: | /bin/bash -c "./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/bin/opensearch &" sleep 30 shell: bash - + - name: Check OpenSearch Running on Linux if: ${{ runner.os != 'Windows'}} run: curl http://localhost:9200/ shell: bash - + - name: Show OpenSearch Logs if: always() run: cat ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/logs/opensearch.log shell: bash - + - name: Checkout OpenSearch Dashboards uses: actions/checkout@v2 with: @@ -67,9 +64,10 @@ jobs: cypress test - - name: Install Gantt Chart to Opensearch Dashboards Plugins Dir - run: | - mv gantt-chart ./OpenSearch-Dashboards/plugins + - name: Checkout Plugin + uses: actions/checkout@v2 + with: + path: OpenSearch-Dashboards/plugins/dashboards-visualizations - id: tool-versions run: | @@ -97,7 +95,7 @@ jobs: run: | yarn osd bootstrap working-directory: OpenSearch-Dashboards - + - name: Run Opensearch Dashboards with Gantt Chart Installed run: | nohup yarn start --no-base-path --no-watch | tee dashboard.log & @@ -118,29 +116,29 @@ jobs: run: | npx cypress install shell: bash - working-directory: OpenSearch-Dashboards/plugins/gantt-chart + working-directory: OpenSearch-Dashboards/plugins/dashboards-visualizations - name: Get Cypress version id: cypress_version run: | echo "::set-output name=cypress_version::$(cat ./package.json | jq '.dependencies.cypress' | tr -d '"')" - working-directory: OpenSearch-Dashboards/plugins/gantt-chart + working-directory: OpenSearch-Dashboards/plugins/dashboards-visualizations - name: Run Cypress tests run: | yarn cypress:run --browser chrome --headless --spec '.cypress/integration/${{ matrix.testgroups }}/*' - working-directory: OpenSearch-Dashboards/plugins/gantt-chart - + working-directory: OpenSearch-Dashboards/plugins/dashboards-visualizations + - name: Capture failure screenshots uses: actions/upload-artifact@v1 if: failure() with: name: cypress-screenshots-${{ matrix.os }} - path: OpenSearch-Dashboards/plugins/gantt-chart/.cypress/screenshots - + path: OpenSearch-Dashboards/plugins/dashboards-visualizations/.cypress/screenshots + - name: Capture test video uses: actions/upload-artifact@v1 if: failure() with: name: cypress-videos-${{ matrix.os }} - path: OpenSearch-Dashboards/plugins/gantt-chart/.cypress/videos + path: OpenSearch-Dashboards/plugins/dashboards-visualizations/.cypress/videos diff --git a/.github/workflows/ftr-e2e-gantt-chart-test.yml b/.github/workflows/ftr-e2e-gantt-chart-test.yml index 23d568f..dde2a82 100644 --- a/.github/workflows/ftr-e2e-gantt-chart-test.yml +++ b/.github/workflows/ftr-e2e-gantt-chart-test.yml @@ -67,9 +67,10 @@ jobs: cypress test - - name: Install Gantt Chart to Opensearch Dashboards Plugins Dir - run: | - mv gantt-chart ./OpenSearch-Dashboards/plugins + - name: Checkout Plugin + uses: actions/checkout@v2 + with: + path: OpenSearch-Dashboards/plugins/dashboards-visualizations - id: tool-versions run: | diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5f5995a..1bed4a8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -12,9 +12,6 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout Plugin - uses: actions/checkout@v2 - - name: Checkout OpenSearch Dashboards uses: actions/checkout@v2 with: @@ -22,9 +19,10 @@ jobs: ref: ${{ env.OPENSEARCH_DASHBOARDS_VERSION }} path: OpenSearch-Dashboards - - name: Install Gantt Chart to Opensearch Dashboards Plugins Dir - run: | - mv gantt-chart ./OpenSearch-Dashboards/plugins + - name: Checkout Plugin + uses: actions/checkout@v2 + with: + path: OpenSearch-Dashboards/plugins/dashboards-visualizations - name: Get node and yarn versions working-directory: ${{ env.WORKING_DIR }} @@ -46,7 +44,7 @@ jobs: npm i -g yarn@${{ steps.versions_step.outputs.yarn_version }} - name: Bootstrap the plugin - working-directory: OpenSearch-Dashboards/plugins/gantt-chart + working-directory: OpenSearch-Dashboards/plugins/dashboards-visualizations run: yarn osd bootstrap - name: Get list of changed files using GitHub Action @@ -63,18 +61,12 @@ jobs: - name: Lint Changed Files run: | - jq -r '.[]' ${HOME}/files_modified.json ${HOME}/files_added.json | sort | uniq > /tmp/changed_files.txt - CHANGED_FILES=$(cat /tmp/changed_files.txt) - echo "These are the changed files: $CHANGED_FILES" + CHANGED_FILES=($(jq -r '.[]' ${HOME}/files_modified.json ${HOME}/files_added.json | grep '.\+.\(js\|ts\|tsx\)$' | sort -u)) if [[ -n "$CHANGED_FILES" ]]; then - echo "Linting changed files..." - while IFS= read -r file; do - if [[ $file =~ ^gantt-chart/.+\.(js|ts|tsx)$ ]]; then - echo "linting file $file" - yarn lint "../$file" - fi - done < /tmp/changed_files.txt + echo 'These are the changed files:' + printf '%s\n' "${CHANGED_FILES[@]}" + yarn lint "${CHANGED_FILES[@]}" else echo "No matched files to lint." fi - working-directory: OpenSearch-Dashboards/plugins/gantt-chart + working-directory: OpenSearch-Dashboards/plugins/dashboards-visualizations diff --git a/.github/workflows/test-and-build-workflow.yml b/.github/workflows/test-and-build-workflow.yml index ae3fe08..10e1356 100644 --- a/.github/workflows/test-and-build-workflow.yml +++ b/.github/workflows/test-and-build-workflow.yml @@ -25,38 +25,36 @@ jobs: options: --user root steps: - - name: Checkout Plugin - uses: actions/checkout@v2 - - name: Checkout OpenSearch Dashboards uses: actions/checkout@v2 with: repository: opensearch-project/Opensearch-Dashboards ref: ${{ env.OPENSEARCH_VERSION }} - path: dashboards-visualizations/OpenSearch-Dashboards + path: OpenSearch-Dashboards - - name: Move Gantt Chart to Plugins Dir - run: | - mv gantt-chart ./dashboards-visualizations/OpenSearch-Dashboards/plugins + - name: Checkout Plugin + uses: actions/checkout@v2 + with: + path: OpenSearch-Dashboards/plugins/dashboards-visualizations - name: Plugin Bootstrap / stylelint / test run: | chown -R 1000:1000 `pwd` - cd dashboards-visualizations/OpenSearch-Dashboards/ + cd OpenSearch-Dashboards/ su `id -un 1000` -c "source $NVM_DIR/nvm.sh && nvm use && node -v && yarn -v && - cd ./plugins/gantt-chart && + cd ./plugins/dashboards-visualizations && whoami && yarn osd bootstrap && yarn lint:style && yarn test --coverage" - name: Upload coverage uses: codecov/codecov-action@v1 with: - directory: ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + directory: ./OpenSearch-Dashboards/plugins/dashboards-visualizations token: ${{ secrets.CODECOV_TOKEN }} - name: Build Artifact run: | chown -R 1000:1000 `pwd` - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations su `id -un 1000` -c "source $NVM_DIR/nvm.sh && nvm use && node -v && yarn -v && yarn build" mv ./build/*.zip ./build/${{ env.PLUGIN_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip @@ -64,14 +62,12 @@ jobs: uses: actions/upload-artifact@v1 with: name: gantt-chart-ubuntu - path: ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart/build + path: ./OpenSearch-Dashboards/plugins/dashboards-visualizations/build windows-build: runs-on: windows-latest steps: - - name: Checkout Plugin - uses: actions/checkout@v2 # Enable longer filenames for windows - name: Enable longer filenames run: git config --system core.longpaths true @@ -81,47 +77,48 @@ jobs: with: repository: opensearch-project/Opensearch-Dashboards ref: ${{ env.OPENSEARCH_VERSION }} - path: dashboards-visualizations/OpenSearch-Dashboards + path: OpenSearch-Dashboards + + - name: Checkout Plugin + uses: actions/checkout@v2 + with: + path: OpenSearch-Dashboards/plugins/dashboards-visualizations - name: Setup Node uses: actions/setup-node@v3 with: - node-version-file: './dashboards-visualizations/OpenSearch-Dashboards/.nvmrc' + 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('./dashboards-visualizations/OpenSearch-Dashboards/package.json').engines.yarn") + 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: Move Gantt Chart to Plugins Dir - run: | - mv gantt-chart ./dashboards-visualizations/OpenSearch-Dashboards/plugins - - name: Plugin Bootstrap run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn osd bootstrap - name: Run Stylelint run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn lint:style - name: Test run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn test - name: Build Artifact run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn build mv ./build/*.zip ./build/${{ env.PLUGIN_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip @@ -129,62 +126,60 @@ jobs: uses: actions/upload-artifact@v1 with: name: gantt-chart-windows - path: ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart/build + path: ./OpenSearch-Dashboards/plugins/dashboards-visualizations/build macos-build: runs-on: macos-latest steps: - - name: Checkout Plugin - uses: actions/checkout@v2 - - name: Checkout OpenSearch Dashboards uses: actions/checkout@v2 with: repository: opensearch-project/Opensearch-Dashboards ref: ${{ env.OPENSEARCH_VERSION }} - path: dashboards-visualizations/OpenSearch-Dashboards + path: OpenSearch-Dashboards + + - name: Checkout Plugin + uses: actions/checkout@v2 + with: + path: OpenSearch-Dashboards/plugins/dashboards-visualizations - name: Setup Node uses: actions/setup-node@v3 with: - node-version-file: './dashboards-visualizations/OpenSearch-Dashboards/.nvmrc' + 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('./dashboards-visualizations/OpenSearch-Dashboards/package.json').engines.yarn") + 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: Move Gantt Chart to Plugins Dir - run: | - mv gantt-chart ./dashboards-visualizations/OpenSearch-Dashboards/plugins - - name: Plugin Bootstrap run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn osd bootstrap - name: Run Stylelint run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn lint:style - name: Test run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn test - name: Build Artifact run: | - cd ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart + cd ./OpenSearch-Dashboards/plugins/dashboards-visualizations yarn build mv ./build/*.zip ./build/${{ env.PLUGIN_NAME }}-${{ env.OPENSEARCH_PLUGIN_VERSION }}.zip @@ -192,6 +187,6 @@ jobs: uses: actions/upload-artifact@v1 with: name: gantt-chart-macos - path: ./dashboards-visualizations/OpenSearch-Dashboards/plugins/gantt-chart/build + path: ./OpenSearch-Dashboards/plugins/dashboards-visualizations/build diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 3ebf0ad..fc31cb3 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -11,12 +11,8 @@ So you want to contribute code to this project? Excellent! We're glad you're her 1. cd into the OpenSearch Dashboards source code directory. 1. Check out this package from version control into the `plugins` directory. ``` -rm plugins -r -git clone git@github.com:opensearch-project/dashboards-visualizations.git plugins --no-checkout cd plugins -echo 'gantt-chart/*' >> .git/info/sparse-checkout -git config core.sparseCheckout true -git checkout main +git clone git@github.com:opensearch-project/dashboards-visualizations.git ``` 6. Run `yarn osd bootstrap` inside `OpenSearch-Dashboards` directory. @@ -26,7 +22,7 @@ Ultimately, your directory structure should look like this: . ├── OpenSearch Dashboards │ └── plugins -│ └── gantt-chart +│ └── dashboards-visualizations ``` @@ -57,4 +53,4 @@ The Github workflow in [`backport.yml`](.github/workflows/backport.yml) creates with an appropriate label `backport ` is merged to main with the backport workflow run successfully on the PR. For example, if a PR on main needs to be backported to `1.x` branch, add a label `backport 1.x` to the PR and make sure the backport workflow runs on the PR along with other checks. Once this PR is merged to main, the workflow will create a backport PR -to the `1.x` branch. \ No newline at end of file +to the `1.x` branch.