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

GitHub Actions中如何执行模板仓库内的通用脚本(无需手动导入)?

解决GitHub Action模板脚本跨仓库执行问题

以下几种方法可以不用手动导入仓库,直接拉取模板仓库中的脚本执行:

1. 拉取模板仓库到指定路径

在流水线中先通过actions/checkout把模板仓库拉取到当前工作目录的子文件夹,然后直接引用该路径下的脚本:

steps:
  - name: 拉取模板仓库
    uses: actions/checkout@v4
    with:
      repository: <你的模板仓库全称,比如username/template-repo>
      path: template-repo
      ref: main # 模板仓库的目标分支
      # 如果是私有仓库,需添加token参数:
      # token: ${{ secrets.TEMPLATE_REPO_PAT }}
  - name: 执行模板脚本
    run: ./template-repo/.github/scripts/test.sh

注意:私有仓库需要提前在应用仓库的Secrets中配置具有模板仓库读取权限的PAT(个人访问令牌)

2. 封装为自定义GitHub Action

把模板脚本封装成独立的自定义Action,应用仓库直接调用即可自动处理路径问题:

  • 调整模板仓库结构,新增Action配置文件:
    Template Repo
    - .github/actions/run-test/action.yaml
    - .github/scripts/test.sh
    
  • 编写action.yaml内容:
    name: 'Run Test Script'
    runs:
      using: 'composite'
      steps:
        - name: 执行测试脚本
          run: ${{ github.action_path }}/../scripts/test.sh
          shell: bash
    
  • 应用仓库中调用该Action:
    steps:
      - name: 使用模板测试Action
        uses: <你的模板仓库全称>/.github/actions/run-test@main
    

这种方式的优势是模板脚本更新后,应用仓库只需更新Action的分支/标签即可同步,无需修改路径。

3. 直接拉取单个脚本文件

如果脚本是公开的,可通过curl或wget直接拉取脚本文件到当前工作目录:

steps:
  - name: 拉取模板脚本
    run: |
      curl -O https://raw.githubusercontent.com/<你的模板仓库全称>/main/.github/scripts/test.sh
      chmod +x test.sh
  - name: 执行脚本
    run: ./test.sh

私有仓库需在URL中拼接PAT:https://${{ secrets.TEMPLATE_REPO_PAT }}@raw.githubusercontent.com/...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:42:02