Skip to content

Commit 7881fe4

Browse files
authored
DEV: Cache node_modules for the linux build pipeline (#283)
* format pipeline
1 parent f5f071f commit 7881fe4

File tree

2 files changed

+63
-44
lines changed

2 files changed

+63
-44
lines changed

.github/workflows/pipeline-build-linux.yml

Lines changed: 54 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -22,57 +22,67 @@ jobs:
2222
environment: ${{ inputs.environment }}
2323

2424
steps:
25-
- uses: actions/checkout@v4
26-
# SSH
27-
# - name: Setup tmate session
28-
# uses: mxschmitt/action-tmate@v3
29-
# with:
30-
# detached: true
25+
- uses: actions/checkout@v4
26+
# SSH
27+
# - name: Setup tmate session
28+
# uses: mxschmitt/action-tmate@v3
29+
# with:
30+
# detached: true
3131

32-
- name: Setup Node
33-
uses: actions/[email protected]
34-
with:
35-
node-version: '20.15'
32+
- name: Setup Node
33+
uses: actions/[email protected]
34+
with:
35+
node-version: '20.15'
3636

37-
- name: Install dependencies for root package.js
38-
run: yarn install --frozen-lockfile
37+
- name: Cache Yarn dependencies
38+
uses: actions/cache@v4
39+
with:
40+
path: |
41+
~/.cache/yarn
42+
node_modules
43+
key: ${{ runner.os }}-yarn-root-${{ hashFiles('yarn.lock', 'package.json') }}
44+
restore-keys: |
45+
${{ runner.os }}-yarn-root-
3946
40-
- name: Download backend
41-
uses: ./.github/actions/download-backend
47+
- name: Install dependencies for root package.js
48+
run: yarn install --frozen-lockfile
4249

43-
- name: Configure Environment Variables
44-
run: |
45-
{
46-
echo "RI_SEGMENT_WRITE_KEY=${{ env.RI_SEGMENT_WRITE_KEY }}"
47-
echo "RI_CLOUD_IDP_AUTHORIZE_URL=${{ env.RI_CLOUD_IDP_AUTHORIZE_URL }}"
48-
echo "RI_CLOUD_IDP_TOKEN_URL=${{ env.RI_CLOUD_IDP_TOKEN_URL }}"
49-
echo "RI_CLOUD_IDP_REVOKE_TOKEN_URL=${{ env.RI_CLOUD_IDP_REVOKE_TOKEN_URL }}"
50-
echo "RI_CLOUD_IDP_REDIRECT_URI=${{ env.RI_CLOUD_IDP_REDIRECT_URI }}"
51-
echo "RI_CLOUD_IDP_ISSUER=${{ env.RI_CLOUD_IDP_ISSUER }}"
52-
echo "RI_CLOUD_IDP_CLIENT_ID=${{ env.RI_CLOUD_IDP_CLIENT_ID }}"
53-
echo "RI_CLOUD_IDP_GOOGLE_ID=${{ env.RI_CLOUD_IDP_GOOGLE_ID }}"
54-
echo "RI_CLOUD_IDP_GH_ID=${{ env.RI_CLOUD_IDP_GH_ID }}"
55-
echo "RI_FEATURES_CLOUD_ADS_DEFAULT_FLAG=${{ env.RI_FEATURES_CLOUD_ADS_DEFAULT_FLAG }}"
56-
echo "RI_APP_TYPE=${{ env.RI_APP_TYPE }}"
57-
} >> "${{ env.envFile }}"
50+
- name: Download backend
51+
uses: ./.github/actions/download-backend
5852

59-
- name: Build linux package (production)
60-
if: inputs.environment == 'production'
61-
run: |
62-
yarn package:prod --target linux-x64 --out ${packagePath}
53+
- name: Configure Environment Variables
54+
run: |
55+
{
56+
echo "RI_SEGMENT_WRITE_KEY=${{ env.RI_SEGMENT_WRITE_KEY }}"
57+
echo "RI_CLOUD_IDP_AUTHORIZE_URL=${{ env.RI_CLOUD_IDP_AUTHORIZE_URL }}"
58+
echo "RI_CLOUD_IDP_TOKEN_URL=${{ env.RI_CLOUD_IDP_TOKEN_URL }}"
59+
echo "RI_CLOUD_IDP_REVOKE_TOKEN_URL=${{ env.RI_CLOUD_IDP_REVOKE_TOKEN_URL }}"
60+
echo "RI_CLOUD_IDP_REDIRECT_URI=${{ env.RI_CLOUD_IDP_REDIRECT_URI }}"
61+
echo "RI_CLOUD_IDP_ISSUER=${{ env.RI_CLOUD_IDP_ISSUER }}"
62+
echo "RI_CLOUD_IDP_CLIENT_ID=${{ env.RI_CLOUD_IDP_CLIENT_ID }}"
63+
echo "RI_CLOUD_IDP_GOOGLE_ID=${{ env.RI_CLOUD_IDP_GOOGLE_ID }}"
64+
echo "RI_CLOUD_IDP_GH_ID=${{ env.RI_CLOUD_IDP_GH_ID }}"
65+
echo "RI_FEATURES_CLOUD_ADS_DEFAULT_FLAG=${{ env.RI_FEATURES_CLOUD_ADS_DEFAULT_FLAG }}"
66+
echo "RI_APP_TYPE=${{ env.RI_APP_TYPE }}"
67+
} >> "${{ env.envFile }}"
6368
64-
- name: Build linux package (staging)
65-
if: inputs.environment == 'staging'
66-
run: |
67-
sed -i "s/^RI_APP_FOLDER_NAME=.*/RI_APP_FOLDER_NAME='.redis-for-vscode-stage'/" ${{ env.envFile }}
68-
yarn package:stage --target linux-x64 --out ${packagePath}
69+
- name: Build linux package (production)
70+
if: inputs.environment == 'production'
71+
run: |
72+
yarn package:prod --target linux-x64 --out ${packagePath}
6973
70-
- uses: actions/upload-artifact@v4
71-
name: Upload extension artifact
72-
with:
73-
name: linux-build
74-
path: |
75-
release/redis-for-*.vsix
74+
- name: Build linux package (staging)
75+
if: inputs.environment == 'staging'
76+
run: |
77+
sed -i "s/^RI_APP_FOLDER_NAME=.*/RI_APP_FOLDER_NAME='.redis-for-vscode-stage'/" ${{ env.envFile }}
78+
yarn package:stage --target linux-x64 --out ${packagePath}
79+
80+
- uses: actions/upload-artifact@v4
81+
name: Upload extension artifact
82+
with:
83+
name: linux-build
84+
path: |
85+
release/redis-for-*.vsix
7686
7787
env:
7888
envFile: '.env'

.github/workflows/tests-e2e-linux.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ jobs:
3636
name: linux-build
3737
path: ./release
3838

39+
- name: Cache E2E Yarn dependencies
40+
uses: actions/cache@v4
41+
with:
42+
path: |
43+
tests/e2e/node_modules
44+
key: ${{ runner.os }}-yarn-e2e-${{ hashFiles('tests/e2e/yarn.lock', 'tests/e2e/package.json') }}
45+
restore-keys: |
46+
${{ runner.os }}-yarn-e2e-
47+
3948
- name: Setup e2e tests
4049
working-directory: ./tests/e2e
4150
run: |

0 commit comments

Comments
 (0)