Skip to content

Commit 2b1189a

Browse files
authored
feat(ci): build JavaScript client utils (#138)
1 parent d950913 commit 2b1189a

File tree

5 files changed

+48
-4
lines changed

5 files changed

+48
-4
lines changed

.github/actions/cache/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ runs:
3030
uses: actions/cache@v2
3131
with:
3232
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/requester-node-http/dist
33-
key: ${{ runner.os }}-1-js-node-requester-${{ hashFiles('clients/algoliasearch-client-javascript/packages/requester-node-http/**') }}
33+
key: ${{ runner.os }}-1-js-requester-node-http-${{ hashFiles('clients/algoliasearch-client-javascript/packages/requester-node-http/**') }}
3434

3535
- name: Restore built JavaScript browser requester
3636
if: ${{ inputs.job == 'cts' }}
3737
uses: actions/cache@v2
3838
with:
3939
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/requester-browser-xhr/dist
40-
key: ${{ runner.os }}-1-js-browser-requester-${{ hashFiles('clients/algoliasearch-client-javascript/packages/requester-browser-xhr/**') }}
40+
key: ${{ runner.os }}-1-js-requester-browser-xhr-${{ hashFiles('clients/algoliasearch-client-javascript/packages/requester-browser-xhr/**') }}
4141

4242
- name: Restore built JavaScript search client
4343
if: ${{ inputs.job == 'cts' }}

.github/actions/setup/action.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ runs:
3838
echo "::set-output name=SCRIPTS_CHANGED::$(git diff --shortstat origin/${{ github.base_ref }}..HEAD -- scripts | wc -l)"
3939
4040
echo "::set-output name=JS_CLIENT_CHANGED::$(git diff --shortstat origin/${{ github.base_ref }}..HEAD -- clients/algoliasearch-client-javascript | wc -l)"
41+
echo "::set-output name=JS_COMMON_CHANGED::$(git diff --shortstat origin/${{ github.base_ref }}..HEAD -- clients/algoliasearch-client-javascript/packages/client-common clients/algoliasearch-client-javascript/packages/requester-browser-xhr clients/algoliasearch-client-javascript/packages/requester-node-http | wc -l)"
4142
echo "::set-output name=JS_TEMPLATE_CHANGED::$(git diff --shortstat origin/${{ github.base_ref }}..HEAD -- templates/javascript | wc -l)"
4243
4344
echo "::set-output name=JAVA_CLIENT_CHANGED::$(git diff --shortstat origin/${{ github.base_ref }}..HEAD -- clients/algoliasearch-client-java-2 | wc -l)"
@@ -80,6 +81,10 @@ runs:
8081
echo "::set-output name=MATRIX::$matrix"
8182
echo "::set-output name=RUN_CLIENT::$run"
8283
84+
if [[ $base_changed == 'true' || steps.diff.outputs.JS_COMMON_CHANGED > 0 ]]; then
85+
echo "::set-output name=RUN_COMMON::true"
86+
fi
87+
8388
- name: Compute the Java client build matrix
8489
id: java-matrix
8590
shell: bash
@@ -127,6 +132,10 @@ outputs:
127132
description: Whether to run js client or not
128133
value: ${{ steps.js-matrix.outputs.RUN_CLIENT }}
129134

135+
RUN_JS_COMMON:
136+
description: Whether to build JS client common folders when RUN_JS is false
137+
value: ${{ steps.js-matrix.outputs.RUN_COMMON }}
138+
130139
JS_MATRIX:
131140
description: Generate the matrix for the Javascript client
132141
value: ${{ steps.js-matrix.outputs.MATRIX }}

.github/workflows/check.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
SPECS_MATRIX: ${{ steps.setup.outputs.SPECS_MATRIX }}
3333

3434
RUN_JS: ${{ steps.setup.outputs.RUN_JS }}
35+
RUN_JS_COMMON: ${{ steps.setup.outputs.RUN_JS_COMMON }}
3536
JS_MATRIX: ${{ steps.setup.outputs.JS_MATRIX }}
3637

3738
RUN_JAVA: ${{ steps.setup.outputs.RUN_JAVA }}
@@ -98,6 +99,39 @@ jobs:
9899
if: steps.cache.outputs.cache-hit != 'true'
99100
run: yarn build:clients javascript ${{ matrix.client.name }}
100101

102+
client_javascript_common:
103+
timeout-minutes: 10
104+
runs-on: ubuntu-20.04
105+
needs:
106+
- setup
107+
- specs
108+
if: ${{ always() && needs.setup.outputs.RUN_JS_COMMON == 'true' }}
109+
strategy:
110+
matrix:
111+
client:
112+
- client-common
113+
- requester-browser-xhr
114+
- requester-node-http
115+
steps:
116+
- uses: actions/checkout@v2
117+
118+
- name: Restore cache
119+
uses: ./.github/actions/cache
120+
with:
121+
job: client
122+
spec: ${{ matrix.client }}
123+
124+
- name: Cache ${{ matrix.client }} client
125+
id: cache
126+
uses: actions/cache@v2
127+
with:
128+
path: '/home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/${{ matrix.client }}/dist'
129+
key: ${{ runner.os }}-1-js-${{ matrix.client }}-${{ hashFiles(format('clients/algoliasearch-client-javascript/packages/{0}/**', matrix.client)) }}
130+
131+
- name: Build ${{ matrix.client }} client
132+
if: steps.cache.outputs.cache-hit != 'true'
133+
run: yarn workspace @algolia/${{ matrix.client }} build
134+
101135
client_java:
102136
runs-on: ubuntu-20.04
103137
timeout-minutes: 10
@@ -172,6 +206,7 @@ jobs:
172206
timeout-minutes: 20
173207
needs:
174208
- client_javascript
209+
- client_javascript_common
175210
- client_java
176211
- client_php
177212

scripts/builds/clients.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,9 @@ fi
2020
# Commands are based on the LANGUAGE
2121
if [[ $LANGUAGE == 'javascript' ]]; then
2222
echo "> Cleaning previous build $GENERATOR..."
23-
2423
yarn workspace $PACKAGE clean
2524

2625
echo "> Bundling $GENERATOR..."
27-
2826
CMD="yarn workspace $PACKAGE build"
2927
elif [[ $LANGUAGE == 'php' ]]; then
3028
# no build needed (for now)

scripts/post-gen/global.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ set -e
66
LANGUAGE=$1
77

88
if [[ $CI ]]; then
9+
echo "Not running post-gen/global on CI for $LANGUAGE"
10+
911
exit 0
1012
fi
1113

0 commit comments

Comments
 (0)