Integrasi Berkelanjutan (CI)
pnpm dapat dengan mudah dipakai di berbagai Sistem Integrasi Berkelanjutan.
Di semua file konfigurasi yang disediakan, penyimpanan di-cache. Namun, hal ini tidak wajib, dan tidak ada jaminan bahwa penyimpanan cache akan membuat instalasi lebih cepat. Jadi jangan ragu untuk tidak menyimpan pnpm store dalam job Anda.
Travis
Pada Travis CI, Anda dapat menggunakan pnpm untuk menginstal dependensi anda dengan menambahkan file .travis.yml
kedalamnya dengan:
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm config set store-dir ~/.pnpm-store
install:
- pnpm install
Semaphore
Pada Semaphore, Anda dapat menggunakan pnpm untuk menginstal dan caching dependensi Anda dengan menambahkan ini ke file .semaphore/semaphore.yml
Anda:
version: v1.0
name: Semaphore CI pnpm example
agent:
machine:
type: e1-standard-2
os_image: ubuntu1804
blocks:
- name: Install dependencies
task:
jobs:
- name: pnpm install
commands:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- checkout
- cache restore node-$(checksum pnpm-lock.yaml)
- pnpm install
- cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)
AppVeyor
Pada AppVeyor, Anda dapat menggunakan pnpm untuk menginstal dependensi Anda dengan menambahkan ini ke appveyor.yml
Anda:
install:
- ps: Install-Product node $env:nodejs_version
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm install
Github Actions
Di GitHub Actions, Anda dapat menggunakan pnpm untuk menginstal dan caching dependensi Anda seperti ini (termasuk dalam .github/workflows/NAME.yml
):
name: pnpm Example Workflow
on:
push:
jobs:
build:
runs-on: ubuntu-22.04
strategy:
matrix:
node-version: [20]
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
GitLab CI
Di GitLab, Anda dapat menggunakan pnpm untuk menginstal dan caching dependensi Anda seperti ini (termasuk dalam .gitlab-ci.yml
):
stages:
- build
build:
stage: build
image: node:18.17.1
before_script:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm config set store-dir .pnpm-store
script:
- pnpm install # install dependencies
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store
Bitbucket Pipeline
Anda dapat menggunakan pnpm untuk menginstal dan menyimpan dependensi Anda:
definitions:
caches:
pnpm: $BITBUCKET_CLONE_DIR/.pnpm-store
pipelines:
pull-requests:
"**":
- step:
name: Build and test
image: node:18.17.1
script:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm install
- pnpm run build # Replace with your build/test…etc. commands
caches:
- pnpm
Azure Pipelines
Di Azure Pipelines, Anda dapat menggunakan pnpm untuk menginstal dan caching dependensi Anda dengan menambahkan ini ke azure-pipelines.yml
:
variables:
pnpm_config_cache: $(Pipeline.Workspace)/.pnpm-store
steps:
- task: Cache@2
inputs:
key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml'
path: $(pnpm_config_cache)
displayName: Cache pnpm
- script: |
corepack enable
corepack prepare pnpm@latest-9 --activate
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"
- script: |
pnpm install
pnpm run build
displayName: "pnpm install and build"
CircleCI
Di CircleCI, Anda dapat menggunakan pnpm untuk menginstal dan caching dependensi Anda dengan menambahkan ini ke .circleci/config.yml
:
version: 2.1
jobs:
build: # this can be any name you choose
docker:
- image: node:18
resource_class: large
parallelism: 10
steps:
- checkout
- restore_cache:
name: Restore pnpm Package Cache
keys:
- pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
- run:
name: Install pnpm package manager
command: |
corepack enable
corepack prepare pnpm@latest-9 --activate
pnpm config set store-dir .pnpm-store
- run:
name: Install Dependencies
command: |
pnpm install
- save_cache:
name: Save pnpm Package Cache
key: pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
paths:
- .pnpm-store
Jenkins
Anda dapat menggunakan pnpm untuk memasang dan caching dependensi Anda:
pipeline {
agent {
docker {
image 'node:lts-bullseye-slim'
args '-p 3000:3000'
}
}
stages {
stage('Build') {
steps {
sh 'corepack enable'
sh 'corepack prepare pnpm@latest-9 --activate'
sh 'pnpm install'
}
}
}
}