@aws-blocks/pipeline

中文文档
0.2.4发布于 2026/11/02Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 22.5万

用于 AWS 块的 CI/CD 管道构造

中文使用文档
文档目录5 节
  1. 使用量
  2. 每阶段部署后步骤 postStage (中文(简体) )
  3. 控制合成运行时间
  4. 固定一个特定的节点.js版本
  5. 选择退出节点.js 22 默认值

@aws- blocks/ 管道

CDK 管道基于 CI/CD 为 AWS Blocks 应用程序所构建.

每分支创建一款自移代码Pipeline V2. 每个管道:

  • 通过 AWS 编码连接从 GitHub 调取来源( OAuth, 无符号)
  • 运行合成步骤( 安装 +) cdk synth(中文(简体) )
  • 如果管道定义发生变化, 则自移动
  • 在可选的人工核准和烘烤时间的情况下部署到订购的阶段

使用量

import { Pipeline } from '@aws-blocks/pipeline';

new Pipeline(stack, 'Pipeline', {
  source: {
    repo: 'my-org/my-app',
    connectionArn: 'arn:aws:codeconnections:us-east-1:123456789012:connection/abc',
  },
  branches: [
    {
      branch: 'main',
      stages: [
        { name: 'beta' },
        { name: 'prod', requireApproval: true, config: { domain: 'myapp.com' } },
      ],
    },
  ],
  stageFactory: (scope, stageConfig) => {
    new MyAppStack(scope, 'App', { env: stageConfig.env });
  },
});

对于ASync级工厂(例如, BlocksStack.create()),使用静态 Pipeline.create() 方法代替 new Pipeline()。 。 。 .

每阶段部署后步骤postStage(中文(简体) )

可选 postStage 道具运行 a 第二阶段 在一个阶段之后 部署——例如,一个消耗阶段部署产出的步骤。 被援引 每个部署阶段和返回步骤随该阶段的后部署而相接 动作 :

import { Duration } from 'aws-cdk-lib';
import { CodeBuildStep } from 'aws-cdk-lib/pipelines';

new Pipeline(stack, 'Pipeline', {
  source: { repo: 'my-org/my-app', connectionArn: '...' },
  branches: [{ branch: 'main', stages: [{ name: 'beta' }, { name: 'prod', bakeTime: Duration.minutes(10) }] }],
  stageFactory: (scope, stageConfig) => new MyAppStack(scope, 'App', { env: stageConfig.env }),
  postStage: ({ stage, stageConfig, source }) => [
    new CodeBuildStep(`Smoke-${stageConfig.name}`, {
      input: source, // the resolved pipeline source — see below
      env: { STAGE: stageConfig.name },
      commands: ['npm ci', 'npm run smoke'],
    }),
  ],
});

钩子收到一个 PostStageContext数字 :

  • stage - CDK软件 Stage 返回步骤的附加.
  • stageConfig 整个阶段的配置,包括: env (舞台的目标) ; 读取,使一个员额步骤针对同一账户/区域.
  • source - 那个 已解决的管道源文件集 这个舞台的分会. 用它来做一步 input 因此该步骤会与已经检查完的源头相悖. 这被曝光了 所以一个打电话的人 永远不用走 构造树和 字符串匹配内部阶段 ID 以重新发现源头( 它悄悄地打开) 任何内部重命名).

顺序 bakeTime。 。 。 . 当一个舞台同时出现 postStage 步骤和a bakeTime{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}烤肉的脚步是用来 取决于 舞台后的步骤,如此烘焙 只有在它们完成而不是平行赛车之后才能开始。 正在返回 undefined (或 [])没有添加任何内容,使合成与管道相同 没有钩子.

控制合成运行时间

合成步骤的代码构建运行时间可以通过 synth.partialBuildSpec。 。 。 . 它接受三种形式:

  • 录取 (单位:千美元)undefined:合成步骤宣布Node.js 22为运行时间. 这是默认和推荐路径 .
  • null: 明确选择退出。 没有 partialBuildSpec 被注入,所以 已合成的构建 spec 包含无 runtime-versions 块。 用这个带 自己的运行时间(例如通过 synth.installCommands或依赖 构建图像的内置运行时间 .
  • A 类 BuildSpec:作为-is使用,取代了节点.js 22默认.

固定一个特定的节点.js版本

import { BuildSpec } from 'aws-cdk-lib/aws-codebuild';

new Pipeline(stack, 'Pipeline', {
  // ...
  synth: {
    partialBuildSpec: BuildSpec.fromObject({
      phases: { install: { 'runtime-versions': { nodejs: 20 } } },
    }),
  },
});

选择退出节点.js 22 默认值

过 null 完全压制注入的运行时间并自行管理:

new Pipeline(stack, 'Pipeline', {
  // ...
  synth: {
    partialBuildSpec: null,
    installCommands: ['n 20'], // or rely on the build image's default runtime
  },
});

版本与发布记录

@aws-blocks/pipeline 共发布 9 个版本,首次发布于 2026/06/20;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.4latest2026/11/025 天前
0.0.0-canary.esql-canary.c93c81b.1791235863canary-esql-canary2026/10/061 个月前
0.2.32026/10/051 个月前
0.0.0-canary.esql-canary.f7f39ac.17909891272026/10/031 个月前
0.0.0-canary.ci-publish-canary-npm.f53dfdc.1790988617canary-ci-publish-canary-npm2026/10/031 个月前
0.2.22026/09/181 个月前

关于 @aws-blocks/pipeline 的常见问题

@aws-blocks/pipeline 是什么?

用于 AWS 块的 CI/CD 管道构造

如何安装 @aws-blocks/pipeline?

在项目目录运行 npm install @aws-blocks/pipeline,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.6.0)、aws-cdk-lib(^2.257.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-blocks/pipeline 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-blocks/pipeline 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aws-blocks/pipeline 可以商用吗?

@aws-blocks/pipeline 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-blocks/pipeline 的下载量有多少?

根据 npm 官方下载统计,@aws-blocks/pipeline 在 2026/10/07 – 2026/11/05 这 30 天内被下载 225,259 次,日均约 7,509 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-blocks/pipeline 还在维护吗?

最新版本 0.2.4 发布于 2026/11/02(5 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/06/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。