CICD - Caching between jobs and stages

Hi,
I have a JavaScript project with NPM packages, my first job is building the modules (NPM install) and I expect those modules will be available for all other jobs in later stages.
From some reason node_modules available in some of the jobs and lack from others. another worth mention fact is that retry on the same job sometimes do work and node_modules are available.
According to the job output the cache is draw successfully (Successfully extracted cache).

Our project use local runner version 10.0.1.

This is my gitlab-ci.yml file:

image: trion/ng-cli-e2e:1.4.2

stages:

  • build
  • deploy
  • test

build_job:
stage: build
script:
- pwd
- npm config set strict-ssl false -g
- npm install
cache:
untracked: true
key: “$CI_COMMIT_REF_NAME”
paths:
- node_modules/
lint_job:
stage: test
script:
- pwd
- ./node_modules/@angular/cli/bin/ng lint
cache:
untracked: true
key: “$CI_COMMIT_REF_NAME”
paths:
- node_modules/
policy: pull
unit_test_job:

stage: test
Linux 64-bit with Node.js 6.x’
script:
- pwd
- ./node_modules/@angular/cli/bin/ng test --log-level debug --single-run=true --browsers ChromeHeadless --watch=false
cache:
untracked: true
key: “$CI_COMMIT_REF_NAME”
paths:
- node_modules/
policy: pull
e2e_job:
stage: test
script:
- ./node_modules/@angular/cli/bin/ng e2e --environment mock
cache:
untracked: true
key: “$CI_COMMIT_REF_NAME”
paths:
- node_modules/
policy: pull
deploy_review:
stage: deploy
script:
- echo “Deploy a review app”

environment:
name: review/$CI_COMMIT_REF_NAME
url: http://XXX.XXXX.com/XXX/$CI_COMMIT_REF_NAME
only:
- branches
except:
- master
cache:
untracked: true
key: “$CI_COMMIT_REF_NAME”
paths:
- node_modules/
policy: pull

10X in Advance.
Niro