Integração Contínua
pnpm pode ser facilmente utilizado em vários sistemas de integração contínua.
In all the provided configuration files the store is cached. However, this is not required, and it is not guaranteed that caching the store will make installation faster. So feel free to not cache the pnpm store in your job.
Travis
No Travis CI, você pode usar o pnpm para instalar suas dependências adicionando o seguinte ao arquivo .travis.yml
:
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm config set store-dir ~/.pnpm-store
install:
- pnpm install
Semaphore
No Semaphore, você pode usar o pnpm para instalar e armazenar em cache suas dependências adicionando o seguinte ao arquivo .semaphore/semaphore.yml
:
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-8 --activate
- checkout
- cache restore node-$(checksum pnpm-lock.yaml)
- pnpm install
- cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)
AppVeyor
No AppVeyor, você pode usar o pnpm para instalar suas dependências adicionando o seguinte ao arquivo appveyor.yml
:
install:
- ps: Install-Product node $env:nodejs_version
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm install
GitHub Actions
No GitHub Actions, você pode usar o pnpm para instalar e armazenar em cache suas dependências da seguinte forma (no arquivo .github/workflows/NAME.yml
):
name: pnpm Example Workflow
on:
push:
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [15]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
O cache de dependências de pacotes com actions/setup-node@v2
requer que você instale o pnpm com uma versão 6.10+.
GitLab CI
No GitLab, você pode usar o pnpm para instalar e armazenar em cache suas dependências da seguinte forma (no arquivo .gitlab-ci.yml
):
stages:
- build
build:
stage: build
image: node:16.20.0
before_script:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm config set store-dir .pnpm-store
script:
- pnpm install # install dependencies
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store
Bitbucket Pipelines
Você pode usar o pnpm para instalar e armazenar em cache suas dependências da seguinte forma:
definitions:
caches:
pnpm: $BITBUCKET_CLONE_DIR/.pnpm-store
pipelines:
pull-requests:
"**":
- step:
name: Build and test
image: node:16.20.0
script:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm install
- pnpm run build # Replace with your build/test…etc. commands
caches:
- pnpm
Azure Pipelines
No Azure Pipelines, você pode usar o pnpm para instalar e armazenar em cache suas dependências adicionando o seguinte ao arquivo 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-8 --activate
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"
- script: |
pnpm install
pnpm run build
displayName: "pnpm install and build"
CircleCI
No CircleCI, você pode usar o pnpm para instalar e armazenar em cache suas dependências adicionando o seguinte ao arquivo .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-8 --activate
- run:
name: Install Dependencies
command: |
pnpm install
- save_cache:
name: Save pnpm Package Cache
key: pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
paths:
- node_modules
Jenkins
Você pode usar o pnpm para instalar e armazenar em cache suas dependências da seguinte forma:
pipeline {
agent {
docker {
image 'node:lts-bullseye-slim'
args '-p 3000:3000'
}
}
stages {
stage('Build') {
steps {
sh 'corepack enable'
sh 'corepack prepare pnpm@latest-8 --activate'
sh 'pnpm install'
}
}
}
}