diff --git a/.github/workflows/build_and_test_workflow.yml b/.github/workflows/build_and_test_workflow.yml index f9e54b445373..3a3399a66a8a 100644 --- a/.github/workflows/build_and_test_workflow.yml +++ b/.github/workflows/build_and_test_workflow.yml @@ -45,6 +45,18 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g + + - name: Configure Yarn Cache + run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- - name: Run bootstrap run: yarn osd bootstrap @@ -103,14 +115,23 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g - # https://github.com/yarnpkg/yarn/issues/8242#issuecomment-776561223 - # Increase network timeout for Windows, retry once if bootstrap fails - - name: Run bootstrap + - name: Configure Yarn Cache run: | - yarn cache clean - yarn config set network-timeout 1000000 -g - yarn osd bootstrap || yarn osd bootstrap + echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $env:GITHUB_ENV + echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- + + - name: Run bootstrap + run: yarn osd bootstrap || yarn osd bootstrap - name: Run linter id: linter @@ -164,6 +185,18 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g + + - name: Configure Yarn Cache + run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- - name: Setup chromedriver run: node scripts/upgrade_chromedriver.js @@ -223,17 +256,26 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g + + - name: Configure Yarn Cache + run: | + echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $env:GITHUB_ENV + echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- - name: Setup chromedriver run: node scripts/upgrade_chromedriver.js - # https://github.com/yarnpkg/yarn/issues/8242#issuecomment-776561223 - # Increase network timeout for Windows, retry once if bootstrap fails - name: Run bootstrap - run: | - yarn cache clean - yarn config set network-timeout 1000000 -g - yarn osd bootstrap || yarn osd bootstrap + run: yarn osd bootstrap || yarn osd bootstrap - name: Build plugins run: node scripts/build_opensearch_dashboards_platform_plugins --no-examples --workers 10 @@ -291,6 +333,18 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g + + - name: Configure Yarn Cache + run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- - name: Get package version run: | @@ -347,6 +401,20 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g + + - name: Configure Yarn Cache + run: | + echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $env:GITHUB_ENV + echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- - name: Get package version run: | @@ -401,6 +469,18 @@ jobs: run: | npm uninstall -g yarn npm i -g yarn@1.22.10 + yarn config set network-timeout 1000000 -g + + - name: Configure Yarn Cache + run: echo "YARN_CACHE_LOCATION=$(yarn cache dir)" >> $GITHUB_ENV + + - name: Initialize Yarn Cache + uses: actions/cache@v3 + with: + path: ${{ env.YARN_CACHE_LOCATION }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + yarn- - name: Get package version run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a65499044b5..755ab6460f1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [Vis Builder] Add redux store persistence ([#3088](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3088)) - [Multi DataSource] Improve test connection ([#3110](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3110)) - [Vis Builder] Add app filter and query persistence without using state container ([#3100](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3100)) +- [Optimizer] Increase timeout waiting for the exiting of an optimizer worker ([#3193](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3193)) ### 🐛 Bug Fixes @@ -93,6 +94,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Add Windows CI workflows ([#2966](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2966)) - Add automatic selection of the appropriate version of chrome driver to run functional tests ([#2990](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2990)) - Add recording of functional test artifacts if they fail ([#3190](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3190)) +- Improve yarn's performance in workflows by caching yarn's cache folder ([#3194](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3194)) ### 📝 Documentation diff --git a/packages/osd-optimizer/src/worker/run_worker.ts b/packages/osd-optimizer/src/worker/run_worker.ts index e41c917a883a..2997444eb0ef 100644 --- a/packages/osd-optimizer/src/worker/run_worker.ts +++ b/packages/osd-optimizer/src/worker/run_worker.ts @@ -78,11 +78,13 @@ const exit = (code: number) => { setTimeout(() => { send( workerMsgs.error( - new Error('process did not automatically exit within 5 seconds, forcing exit') + new Error( + `process did not automatically exit within 15 seconds (previous code: ${code}); forcing exit...` + ) ) ); process.exit(1); - }, 5000).unref(); + }, 15000).unref(); }; // check for connected parent on an unref'd timer rather than listening