如何在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
相关产品推荐
相关产品推荐

