From 801075cfda2da5b5feb1019d6324f3b7642163fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Wed, 5 Jan 2022 18:38:13 +0100 Subject: [PATCH 1/6] chore(ci): fix built client cache --- .github/actions/cache/action.yml | 10 +++++----- .github/workflows/check.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/actions/cache/action.yml b/.github/actions/cache/action.yml index 23227a8400..f6c129622d 100644 --- a/.github/actions/cache/action.yml +++ b/.github/actions/cache/action.yml @@ -16,35 +16,35 @@ runs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-search/dist - key: ${{ runner.os }}-js-client-search-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/dist/**') }} - name: Restore built JavaScript recommend client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/recommend/dist - key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/dist/**') }} - name: Restore built JavaScript personalization client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-personalization/dist - key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/dist/**') }} - name: Restore built JavaScript analytics client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-analytics/dist - key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/dist/**') }} - name: Restore built Java client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target - key: ${{ runner.os }}-java-client-${{ hashFiles('**/pom.xml') }} + key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/target/**') }} # setup yarn - name: Get yarn cache directory path diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index a2ee8194f2..7ba3fc2b31 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -112,7 +112,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-search/dist - key: ${{ runner.os }}-js-client-search-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/dist/**') }} client_javascript_recommend: runs-on: ubuntu-20.04 @@ -134,7 +134,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/recommend/dist - key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/dist/**') }} client_javascript_perso: runs-on: ubuntu-20.04 @@ -156,7 +156,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-personalization/dist - key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/dist/**') }} client_javascript_analytics: runs-on: ubuntu-20.04 @@ -178,7 +178,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-analytics/dist - key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('yarn.lock') }} + key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/dist/**') }} client_java_search: runs-on: ubuntu-20.04 @@ -202,7 +202,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target - key: ${{ runner.os }}-java-client-${{ hashFiles('**/pom.xml') }} + key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/target/**') }} cts: runs-on: ubuntu-20.04 From 861e58d3be64e95578c61a55310773cc7fd49bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Thu, 6 Jan 2022 09:35:25 +0100 Subject: [PATCH 2/6] hash on generated folder, not dist --- .github/actions/cache/action.yml | 10 +++++----- .github/workflows/check.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/actions/cache/action.yml b/.github/actions/cache/action.yml index f6c129622d..f2c109b5d8 100644 --- a/.github/actions/cache/action.yml +++ b/.github/actions/cache/action.yml @@ -16,35 +16,35 @@ runs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-search/dist - key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/dist/**') }} + key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/**') }} - name: Restore built JavaScript recommend client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/recommend/dist - key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/dist/**') }} + key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/**') }} - name: Restore built JavaScript personalization client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-personalization/dist - key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/dist/**') }} + key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/**') }} - name: Restore built JavaScript analytics client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-analytics/dist - key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/dist/**') }} + key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/**') }} - name: Restore built Java client if: ${{ inputs.job == 'cts' }} uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target - key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/target/**') }} + key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/**') }} # setup yarn - name: Get yarn cache directory path diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 7ba3fc2b31..a04a14d8cc 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -112,7 +112,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-search/dist - key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/dist/**') }} + key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/**') }} client_javascript_recommend: runs-on: ubuntu-20.04 @@ -134,7 +134,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/recommend/dist - key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/dist/**') }} + key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/**') }} client_javascript_perso: runs-on: ubuntu-20.04 @@ -156,7 +156,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-personalization/dist - key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/dist/**') }} + key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/**') }} client_javascript_analytics: runs-on: ubuntu-20.04 @@ -178,7 +178,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-analytics/dist - key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/dist/**') }} + key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/**') }} client_java_search: runs-on: ubuntu-20.04 @@ -202,7 +202,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target - key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/target/**') }} + key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/**') }} cts: runs-on: ubuntu-20.04 From 7b6f445e1b26042f0e3fd763c0a336805434b841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Thu, 6 Jan 2022 09:47:49 +0100 Subject: [PATCH 3/6] call cash before generating --- .github/workflows/check.yml | 60 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index a04a14d8cc..f7a4cdeee9 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -102,18 +102,18 @@ jobs: - name: Restore cache uses: ./.github/actions/cache - - name: Generate search client - run: yarn generate javascript search - - - name: Build search client - run: yarn build:clients javascript search - - name: Cache search client uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-search/dist key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/**') }} + - name: Generate search client + run: yarn generate javascript search + + - name: Build search client + run: yarn build:clients javascript search + client_javascript_recommend: runs-on: ubuntu-20.04 needs: [specs_recommend] @@ -124,18 +124,18 @@ jobs: - name: Restore cache uses: ./.github/actions/cache - - name: Generate recommend client - run: yarn generate javascript recommend - - - name: Build recommend client - run: yarn build:clients javascript recommend - - name: Cache recommend client uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/recommend/dist key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/**') }} + - name: Generate recommend client + run: yarn generate javascript recommend + + - name: Build recommend client + run: yarn build:clients javascript recommend + client_javascript_perso: runs-on: ubuntu-20.04 needs: [specs_perso] @@ -146,18 +146,18 @@ jobs: - name: Restore cache uses: ./.github/actions/cache - - name: Generate personalization client - run: yarn generate javascript personalization - - - name: Build personalization client - run: yarn build:clients javascript personalization - - name: Cache personalization client uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-personalization/dist key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/**') }} + - name: Generate personalization client + run: yarn generate javascript personalization + + - name: Build personalization client + run: yarn build:clients javascript personalization + client_javascript_analytics: runs-on: ubuntu-20.04 needs: [specs_analytics] @@ -168,18 +168,18 @@ jobs: - name: Restore cache uses: ./.github/actions/cache - - name: Generate analytics client - run: yarn generate javascript analytics - - - name: Build analytics client - run: yarn build:clients javascript analytics - - name: Cache analytics client uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-analytics/dist key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/**') }} + - name: Generate analytics client + run: yarn generate javascript analytics + + - name: Build analytics client + run: yarn build:clients javascript analytics + client_java_search: runs-on: ubuntu-20.04 needs: [specs_search] @@ -192,18 +192,18 @@ jobs: with: job: java - - name: Generate search client - run: yarn generate java search - - - name: Build search client - run: yarn build:clients java search - - name: Cache built clients uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/**') }} + - name: Generate search client + run: yarn generate java search + + - name: Build search client + run: yarn build:clients java search + cts: runs-on: ubuntu-20.04 needs: From 3b42468546263e96b287394ae256fe111dc544ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Thu, 6 Jan 2022 09:52:33 +0100 Subject: [PATCH 4/6] fix java cache path --- .github/actions/cache/action.yml | 2 +- .github/workflows/check.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/cache/action.yml b/.github/actions/cache/action.yml index f2c109b5d8..c6a0db5f33 100644 --- a/.github/actions/cache/action.yml +++ b/.github/actions/cache/action.yml @@ -44,7 +44,7 @@ runs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target - key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/**') }} + key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-java-2/**') }} # setup yarn - name: Get yarn cache directory path diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index f7a4cdeee9..730e74ccea 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -196,7 +196,7 @@ jobs: uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target - key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-javascript/algoliasearch-client-java-2/**') }} + key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-java-2/**') }} - name: Generate search client run: yarn generate java search From 2c1d67a63cf311ae5b90172721ead95a64d58efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Thu, 6 Jan 2022 09:56:32 +0100 Subject: [PATCH 5/6] skip steps on cache hit? --- .github/workflows/check.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 730e74ccea..83cecf9a00 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -103,15 +103,18 @@ jobs: uses: ./.github/actions/cache - name: Cache search client + id: cache uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-search/dist key: ${{ runner.os }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/client-search/**') }} - name: Generate search client + if: steps.cache.outputs.cache-hit != 'true' run: yarn generate javascript search - name: Build search client + if: steps.cache.outputs.cache-hit != 'true' run: yarn build:clients javascript search client_javascript_recommend: @@ -125,15 +128,18 @@ jobs: uses: ./.github/actions/cache - name: Cache recommend client + id: cache uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/recommend/dist key: ${{ runner.os }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/recommend/**') }} - name: Generate recommend client + if: steps.cache.outputs.cache-hit != 'true' run: yarn generate javascript recommend - name: Build recommend client + if: steps.cache.outputs.cache-hit != 'true' run: yarn build:clients javascript recommend client_javascript_perso: @@ -147,15 +153,18 @@ jobs: uses: ./.github/actions/cache - name: Cache personalization client + id: cache uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-personalization/dist key: ${{ runner.os }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/client-personalization/**') }} - name: Generate personalization client + if: steps.cache.outputs.cache-hit != 'true' run: yarn generate javascript personalization - name: Build personalization client + if: steps.cache.outputs.cache-hit != 'true' run: yarn build:clients javascript personalization client_javascript_analytics: @@ -169,15 +178,18 @@ jobs: uses: ./.github/actions/cache - name: Cache analytics client + id: cache uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-analytics/dist key: ${{ runner.os }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/client-analytics/**') }} - name: Generate analytics client + if: steps.cache.outputs.cache-hit != 'true' run: yarn generate javascript analytics - name: Build analytics client + if: steps.cache.outputs.cache-hit != 'true' run: yarn build:clients javascript analytics client_java_search: @@ -193,15 +205,18 @@ jobs: job: java - name: Cache built clients + id: cache uses: actions/cache@v2 with: path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2/target key: ${{ runner.os }}-java-client-${{ hashFiles('clients/algoliasearch-client-java-2/**') }} - name: Generate search client + if: steps.cache.outputs.cache-hit != 'true' run: yarn generate java search - name: Build search client + if: steps.cache.outputs.cache-hit != 'true' run: yarn build:clients java search cts: From 2e96ac4de2889a834d14c107d9cd540ca3a6018d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Thu, 6 Jan 2022 10:02:07 +0100 Subject: [PATCH 6/6] fix RUN_CTS --- .github/actions/setup/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index e5686cc817..58dc08e778 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -97,4 +97,4 @@ outputs: # cts variables RUN_CTS: description: 'Determine if the `cts` job should run' - value: ${{ github.ref_name == 'main' || steps.diff.outputs.GITHUB_ACTIONS_CHANGED > 0 || steps.diff.outputs.SPECS_CHANGED > 0 || steps.diff.outputs.CTS_CHANGED > 0 || steps.diff.outputs.JS_CLIENT_CHANGED > 0 || steps.diff.outputs.JS_TEMPLATE_CHANGED > 0 || steps.diff.outputs.JAVA_CLIENT_CHANGED > 0 || steps.diff.outputs.JAVA_TEMPLATE_CHANGED > 0 }} + value: ${{ github.ref_name == 'main' || steps.diff.outputs.GITHUB_ACTIONS_CHANGED > 0 || steps.diff.outputs.SPECS_CHANGED > 0 || steps.diff.outputs.TESTS_CHANGED > 0 || steps.diff.outputs.JS_CLIENT_CHANGED > 0 || steps.diff.outputs.JS_TEMPLATE_CHANGED > 0 || steps.diff.outputs.JAVA_CLIENT_CHANGED > 0 || steps.diff.outputs.JAVA_TEMPLATE_CHANGED > 0 }}