det*_*ama 4 azure azure-pipelines next.js pnpm
在我的 Nextjs 项目中,我想使用 Azure Pipelines 创建管道。但我的项目使用pnpm包管理器。我读过 pnpm 文档,只知道 Travis、Semaphore、AppVeyor、GitHub Actions、Gitlab CI 和 Bitbucket Pipelines。没有 Azure Pipelines 文档。
有谁知道如何实现这个?
我为 Azure 管道中的管道创建了自己的配方。
任何反馈都会有用
azure-pipelines.yml
variables:
pnpm_config_cache: $(Pipeline.Workspace)/.pnpm-store
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: Cache@2
inputs:
key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml'
path: $(pnpm_config_cache)
displayName: Cache pnpm
- task: Cache@2
inputs:
key: next | $(Agent.OS) | pnpm-lock.yaml
path: "$(System.DefaultWorkingDirectory)/.next/cache"
displayName: "Cache .next/cache"
- script: |
curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"
- script: |
pnpm install
pnpm run build
displayName: "pnpm install and build"
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: "."
includeRootFolder: false
archiveType: "zip"
archiveFile: "$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip"
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: "$(Build.ArtifactStagingDirectory)"
ArtifactName: "drop"
publishLocation: "Container"
Run Code Online (Sandbox Code Playgroud)
azure-pipelines.yml
variables:
pnpm_config_cache: $(Pipeline.Workspace)/.pnpm-store
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: Cache@2
inputs:
key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml'
path: $(pnpm_config_cache)
displayName: Cache pnpm
- script: |
curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"
- script: |
pnpm install
pnpm run build
displayName: "pnpm install and build"
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: "."
includeRootFolder: false
archiveType: "zip"
archiveFile: "$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip"
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: "$(Build.ArtifactStagingDirectory)"
ArtifactName: "drop"
publishLocation: "Container"
Run Code Online (Sandbox Code Playgroud)