Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/.cache_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3
3-test-91
105 changes: 66 additions & 39 deletions .github/actions/cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ runs:
path: ${{ steps.yarn-cache-dir.outputs.dir || '.yarn/cache' }}
key: node-cache-${{ env.CACHE_VERSION }}-yarn-${{ hashFiles('yarn.lock') }}

- name: Install JavaScript dependencies
shell: bash
run: yarn install

# Java setup: used during 'java' generation or 'cts'
- name: Download Java formatter
if: ${{ inputs.language == 'java' || inputs.job == 'cts' }}
Expand Down Expand Up @@ -157,8 +153,7 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-common/**',
'!clients/algoliasearch-client-javascript/packages/client-common/dist'
'clients/algoliasearch-client-javascript/packages/client-common/**'
)}}

- name: Restore built JavaScript node requester
Expand All @@ -169,8 +164,7 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/requester-node-http/**',
'!clients/algoliasearch-client-javascript/packages/requester-node-http/dist'
'clients/algoliasearch-client-javascript/packages/requester-node-http/**'
)}}

- name: Restore built JavaScript browser requester
Expand All @@ -181,8 +175,7 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/requester-browser-xhr/**',
'!clients/algoliasearch-client-javascript/packages/requester-browser-xhr/dist'
'clients/algoliasearch-client-javascript/packages/requester-browser-xhr/**'
)}}

# Restore JavaScript clients: used during 'cts' or 'codegen'
Expand All @@ -195,7 +188,10 @@ runs:
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/algoliasearch/**',
'!clients/algoliasearch-client-javascript/packages/algoliasearch/dist'
'clients/algoliasearch-client-javascript/packages/client-search/**',
'clients/algoliasearch-client-javascript/packages/client-analytics/**',
'clients/algoliasearch-client-javascript/packages/client-personalization/**',
'templates/javascript/**'
)}}

- name: Restore built JavaScript search client
Expand All @@ -206,9 +202,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-search/**',
'!clients/algoliasearch-client-javascript/packages/client-search/dist',
'specs/bundled/search.yml'
'clients/algoliasearch-client-javascript/packages/client-search/src/**',
'clients/algoliasearch-client-javascript/packages/client-search/model/**',
'clients/algoliasearch-client-javascript/packages/client-search/builds/**',
'clients/algoliasearch-client-javascript/packages/client-search/package.json',
'specs/bundled/search.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript recommend client
Expand All @@ -219,9 +218,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/recommend/**',
'!clients/algoliasearch-client-javascript/packages/recommend/dist',
'specs/bundled/recommend.yml'
'clients/algoliasearch-client-javascript/packages/recommend/src/**',
'clients/algoliasearch-client-javascript/packages/recommend/model/**',
'clients/algoliasearch-client-javascript/packages/recommend/builds/**',
'clients/algoliasearch-client-javascript/packages/recommend/package.json',
'specs/bundled/recommend.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript query-suggestions client
Expand All @@ -232,9 +234,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-query-suggestions/**',
'!clients/algoliasearch-client-javascript/packages/client-query-suggestions/dist',
'specs/bundled/query-suggestions.yml'
'clients/algoliasearch-client-javascript/packages/client-query-suggestions/src/**',
'clients/algoliasearch-client-javascript/packages/client-query-suggestions/model/**',
'clients/algoliasearch-client-javascript/packages/client-query-suggestions/builds/**',
'clients/algoliasearch-client-javascript/packages/client-query-suggestions/package.json',
'specs/bundled/query-suggestions.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript personalization client
Expand All @@ -245,9 +250,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-personalization/**',
'!clients/algoliasearch-client-javascript/packages/client-personalization/dist',
'specs/bundled/personalization.yml'
'clients/algoliasearch-client-javascript/packages/client-personalization/src/**',
'clients/algoliasearch-client-javascript/packages/client-personalization/model/**',
'clients/algoliasearch-client-javascript/packages/client-personalization/builds/**',
'clients/algoliasearch-client-javascript/packages/client-personalization/package.json',
'specs/bundled/personalization.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript analytics client
Expand All @@ -258,9 +266,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-analytics/**',
'!clients/algoliasearch-client-javascript/packages/client-analytics/dist',
'specs/bundled/analytics.yml'
'clients/algoliasearch-client-javascript/packages/client-analytics/src/**',
'clients/algoliasearch-client-javascript/packages/client-analytics/model/**',
'clients/algoliasearch-client-javascript/packages/client-analytics/builds/**',
'clients/algoliasearch-client-javascript/packages/client-analytics/package.json',
'specs/bundled/analytics.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript abtesting client
Expand All @@ -271,9 +282,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-abtesting/**',
'!clients/algoliasearch-client-javascript/packages/client-abtesting/dist',
'specs/bundled/abtesting.yml'
'clients/algoliasearch-client-javascript/packages/client-abtesting/src/**',
'clients/algoliasearch-client-javascript/packages/client-abtesting/model/**',
'clients/algoliasearch-client-javascript/packages/client-abtesting/builds/**',
'clients/algoliasearch-client-javascript/packages/client-abtesting/package.json',
'specs/bundled/abtesting.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript insights client
Expand All @@ -284,9 +298,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-insights/**',
'!clients/algoliasearch-client-javascript/packages/client-insights/dist',
'specs/bundled/insights.yml'
'clients/algoliasearch-client-javascript/packages/client-insights/src/**',
'clients/algoliasearch-client-javascript/packages/client-insights/model/**',
'clients/algoliasearch-client-javascript/packages/client-insights/builds/**',
'clients/algoliasearch-client-javascript/packages/client-insights/package.json',
'specs/bundled/insights.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript sources client
Expand All @@ -297,9 +314,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-sources/**',
'!clients/algoliasearch-client-javascript/packages/client-sources/dist',
'specs/bundled/sources.yml'
'clients/algoliasearch-client-javascript/packages/client-sources/src/**',
'clients/algoliasearch-client-javascript/packages/client-sources/model/**',
'clients/algoliasearch-client-javascript/packages/client-sources/builds/**',
'clients/algoliasearch-client-javascript/packages/client-sources/package.json',
'specs/bundled/sources.yml',
'templates/javascript/**'
)}}

- name: Restore built JavaScript predict client
Expand All @@ -310,9 +330,12 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/client-predict/**',
'!clients/algoliasearch-client-javascript/packages/client-predict/dist',
'specs/bundled/predict.yml'
'clients/algoliasearch-client-javascript/packages/client-predict/src/**',
'clients/algoliasearch-client-javascript/packages/client-predict/model/**',
'clients/algoliasearch-client-javascript/packages/client-predict/builds/**',
'clients/algoliasearch-client-javascript/packages/client-predict/package.json',
'specs/bundled/predict.yml',
'templates/javascript/**'
)}}

# Restore Java clients: used during 'cts' or 'codegen'
Expand All @@ -324,8 +347,8 @@ runs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-java-2/**',
'!clients/algoliasearch-client-java-2/target',
'clients/algoliasearch-client-java-2/**',
'specs/bundled/search.yml'
)}}

Expand All @@ -341,3 +364,7 @@ runs:
'clients/algoliasearch-client-php/*',
'specs/bundled/search.yml'
)}}

- name: Install JavaScript dependencies
shell: bash
run: YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install
13 changes: 6 additions & 7 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,8 @@ runs:
matrix=$(./scripts/ci/create-client-matrix.sh javascript $base_changed ${{ steps.diff.outputs.ORIGIN_BRANCH }})

if [[ $algoliasearch_changed == 'true' || $base_changed == 'true' ]]; then
algoliasearch_client='{"name": "algoliasearch","folder": "clients/algoliasearch-client-javascript/packages/algoliasearch"}'

if [[ $matrix == '{"client":["no-run"]}' ]]; then
matrix="{\"client\": [$algoliasearch_client]}"
else
matrix="{\"client\": $(echo $matrix | jq ".client + [$algoliasearch_client]" -c)}"
fi
echo "Running algoliasearch: true"
echo "::set-output name=RUN_ALGOLIASEARCH::true"
fi

if [[ $matrix == '{"client":["no-run"]}' ]]; then
Expand Down Expand Up @@ -185,6 +180,10 @@ outputs:
description: Determine if the `client-javascript` job should run
value: ${{ steps.js-matrix.outputs.RUN_CLIENT }}

RUN_JS_ALGOLIASEARCH:
description: Determine if the `client-javascript-algoliasearch` job should run
value: ${{ steps.js-matrix.outputs.RUN_ALGOLIASEARCH }}

RUN_JS_COMMON:
description: Whether to build JS client common folders when RUN_JS is false
value: ${{ steps.js-matrix.outputs.RUN_COMMON }}
Expand Down
59 changes: 52 additions & 7 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jobs:
SPECS_MATRIX: ${{ steps.setup.outputs.SPECS_MATRIX }}

RUN_JS: ${{ steps.setup.outputs.RUN_JS }}
RUN_JS_ALGOLIASEARCH: ${{ steps.setup.outputs.RUN_JS_ALGOLIASEARCH }}
RUN_JS_COMMON: ${{ steps.setup.outputs.RUN_JS_COMMON }}
JS_MATRIX: ${{ steps.setup.outputs.JS_MATRIX }}

Expand Down Expand Up @@ -118,8 +119,7 @@ jobs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
format('clients/algoliasearch-client-javascript/packages/{0}/**', matrix.client),
format('!clients/algoliasearch-client-javascript/packages/{0}/dist', matrix.client)
format('clients/algoliasearch-client-javascript/packages/{0}/**', matrix.client)
)}}

- name: Build '${{ matrix.client }}' client
Expand Down Expand Up @@ -157,19 +157,63 @@ jobs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
format('{0}/**', matrix.client.folder),
format('!{0}/dist', matrix.client.folder),
format('specs/bundled/{0}.yml', matrix.client.name)
format('{0}/src/**', matrix.client.folder),
format('{0}/model/**', matrix.client.folder),
format('{0}/builds/**', matrix.client.folder),
format('{0}/package.json', matrix.client.folder),
format('specs/bundled/{0}.yml', matrix.client.name),
'templates/javascript/**'
)}}

- name: Generate '${{ matrix.client.name }}' client
if: steps.cache.outputs.cache-hit != 'true' && matrix.client.name != 'algoliasearch'
if: steps.cache.outputs.cache-hit != 'true'
run: yarn cli generate javascript ${{ matrix.client.name }}

- name: Build '${{ matrix.client.name }}' client
if: steps.cache.outputs.cache-hit != 'true'
run: yarn cli build clients javascript ${{ matrix.client.name }}

- name: Show diff for '${{ matrix.client.name }}' client
if: steps.cache.outputs.cache-hit != 'true'
run: git --no-pager diff

client_javascript_algoliasearch:
timeout-minutes: 10
runs-on: ubuntu-20.04
needs: client_javascript
if: |
always() &&
needs.setup.outputs.RUN_JS_ALGOLIASEARCH == 'true' &&
contains(needs.client_javascript.result, 'success') &&
!contains(needs.client_javascript.result, 'failure')
steps:
- uses: actions/checkout@v2

- name: Restore cache
uses: ./.github/actions/cache
with:
job: codegen
language: javascript

- name: Cache 'algoliasearch' client
id: cache
uses: actions/cache@v2
with:
path: clients/algoliasearch-client-javascript/packages/algoliasearch
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
'clients/algoliasearch-client-javascript/packages/algoliasearch/**',
'clients/algoliasearch-client-javascript/packages/client-search/**',
'clients/algoliasearch-client-javascript/packages/client-analytics/**',
'clients/algoliasearch-client-javascript/packages/client-personalization/**',
'templates/javascript/**'
)}}

- name: Build 'algoliasearch' client
if: steps.cache.outputs.cache-hit != 'true'
run: yarn cli build clients javascript algoliasearch

client_java:
runs-on: ubuntu-20.04
timeout-minutes: 10
Expand Down Expand Up @@ -200,8 +244,8 @@ jobs:
key: |
${{ env.CACHE_VERSION }}-${{
hashFiles(
format('{0}/**', matrix.client.folder),
format('!{0}/target', matrix.client.folder),
format('{0}/**', matrix.client.folder),
format('specs/bundled/{0}.yml', matrix.client.name)
)}}

Expand Down Expand Up @@ -260,6 +304,7 @@ jobs:
timeout-minutes: 20
needs:
- client_javascript
- client_javascript_algoliasearch
- client_java
- client_php
if: |
Expand Down