पाठ 10 / 23

Caching और Matrix Builds

Dependency caching से GitHub Actions तेज़ करें और build matrix से कई Node versions या operating systems पर test करें।

Dependencies cache करें

Package manager का store cache करने से हर run पर dependencies दोबारा download नहीं करनी पड़तीं। setup-node यह आपके लिए कर सकता है।

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-node@v4
    with:
      node-version: 22
      cache: npm          # restores ~/.npm keyed by package-lock.json
  - run: npm ci
  - run: npm test

Build matrix

Matrix एक ही job को कई संयोजनों पर parallel चलाता है।

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
        node: [20, 22]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: "${{ matrix.node }}" }
      - run: npm ci && npm test

Caches को lockfile hash पर key करें ताकि dependencies बदलने पर वे ताज़ा हों। Matrix run time गुणा करता है, इसलिए केवल वे संयोजन रखें जिन्हें आप सच में support करते हैं।

त्वरित जाँच

त्वरित जाँच: Build matrix क्या करता है?

  • Runs a job across several combinations in parallel
  • Encrypts secrets
  • Deploys to production
  • Deletes caches
Answer

Runs a job across several combinations in parallel — हर matrix संयोजन अपना job run बन जाता है।