You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript Projen项目中配置自定义GitHub Actions?

如何在TypeScript项目的.projenrc.js中配置自定义GitHub Actions

你之前查阅的文档是针对「构建GitHub Action本身」的项目模板(projen-github-action-typescript),并非普通TypeScript项目添加自定义Actions的指引。普通TypeScriptProject本身就提供了配置GitHub Actions的方法,具体步骤如下:

  • 创建全新自定义Workflow
    获取TypeScriptProject实例后,调用addGitHubWorkflow方法生成新的workflow文件:

    const { TypeScriptProject } = require('projen');
    
    const project = new TypeScriptProject({
      name: 'my-ts-project',
      defaultReleaseBranch: 'main',
      // 其他项目配置项
    });
    
    // 创建名为custom-ci的自定义workflow
    const customCiWorkflow = project.addGitHubWorkflow('custom-ci');
    
  • 配置Workflow触发条件
    通过on方法设置触发时机(比如推送、PR、定时任务等):

    customCiWorkflow.on({
      push: { branches: ['main', 'develop'] },
      pullRequest: { branches: ['main'] },
      schedule: [{ cron: '0 0 * * *' }], // 每日凌晨执行
    });
    
  • 添加Job与执行步骤
    用addJobs方法定义具体的任务和步骤,支持使用官方或第三方Actions:

    customCiWorkflow.addJobs({
      lint-and-test: {
        runsOn: 'ubuntu-latest',
        steps: [
          { uses: 'actions/checkout@v4' },
          { uses: 'actions/setup-node@v4', with: { nodeVersion: '20' } },
          { run: 'npm install' },
          { run: 'npm run lint' },
          { run: 'npm run test' },
          // 可添加自定义步骤,比如上传测试报告、调用私有Action等
        ],
      },
    });
    
  • 修改现有默认Workflow
    如果想调整projen自动生成的默认build/workflow,可通过githubWorkflows.tryFind找到对应实例后修改:

    const buildWorkflow = project.githubWorkflows.tryFind('build');
    if (buildWorkflow) {
      // 给默认build job添加额外步骤
      buildWorkflow.jobs.build.steps.push({
        run: 'echo "自定义步骤执行完成"',
      });
    }
    

完成配置后,执行npx projen命令,projen会自动在.github/workflows目录下生成对应的yaml文件。

内容的提问来源于stack exchange,提问作者user12463073

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:56:05