持续集成
pnpm 可以很容易地用于各种持续集成系统。
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
在 Travis CI,请将此添加到您的 .travis.yml 文件中,使用 pnpm 来安装您的依赖项:
cache:
  npm: false
  directories:
    - "~/.pnpm-store"
before_install:
  - corepack enable
  - corepack prepare pnpm@latest-7 --activate
  - pnpm config set store-dir ~/.pnpm-store
install:
  - pnpm install
Semaphore
在 Semapore上 ,请将此内容添加到 .semaphore/semaphore.yml 文件中,使用 pnpm 来安装和缓存您的依赖:
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-7 --activate
            - checkout
            - cache restore node-$(checksum pnpm-lock.yaml)
            - pnpm install
            - cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)
AppVeyor
在 AppVeyor ,请将此添加您的 appveyor.yml来使用 pnpm 来安装您的依赖项:
install:
  - ps: Install-Product node $env:nodejs_version
  - corepack enable
  - corepack prepare pnpm@latest-7 --activate
  - pnpm install
GitHub Actions
在 GitHub Actions 上,您可以像这样使用 pnpm 安装和缓存您的依赖项 .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: 7
    - 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
使用 actions/setup-node@v2 缓存包依赖项要求您安装版本 6.10+ 的 pnpm。
GitLab CI
在 Gitlab 上,您可以使用 pnpm 来安装和缓存您的依赖项 像这样(在 .gitlab-ci.yml 中):
stages:
  - build
build:
  stage: build
  image: node:14.16.0-buster
  before_script:
    - corepack enable
    - corepack prepare pnpm@latest-7 --activate
    - pnpm config set store-dir .pnpm-store
  script:
    - pnpm install # install dependencies
  cache:
    key:
      files:
        - pnpm-lock.yaml
    paths:
      - .pnpm-store
Bitbucket Pipelines
您可以使用 pnpm 来安装和缓存您的依赖项:
definitions:
  caches:
    pnpm: $BITBUCKET_CLONE_DIR/.pnpm-store
pipelines:
  pull-requests:
    "**":
      - step:
          name: Build and test
          image: node:14.16.0
          script:
            - corepack enable
            - corepack prepare pnpm@latest-7 --activate
            - pnpm install
            - pnpm run build # Replace with your build/test…etc. commands
          caches:
            - pnpm
Azure Pipelines
在 Azure pipeline 中,您可以将以下内容添加到 Azure-Pipelines.yml 中,使用 pnpm 安装和缓存依赖项:
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-7 --activate
      pnpm config set store-dir $(pnpm_config_cache)
    displayName: "Setup pnpm"
  - script: |
      pnpm install
      pnpm run build
    displayName: "pnpm install and build"
CircleCI
在 CircleCI 中,您可以将以下内容添加到 .circleci/config.yml 中,使用 pnpm 安装和缓存依赖项:
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-7 --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
您可以使用 pnpm 来安装和缓存您的依赖项:
pipeline {
    agent {
        docker {
            image 'node:lts-bullseye-slim' 
            args '-p 3000:3000' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'corepack enable'
                sh 'corepack prepare pnpm@latest-7 --activate'
                sh 'pnpm install'
            }
        }
    }
}