如何使用 github actions 从远程存储库签出单个文件夹/文件

问题描述 投票:0回答:1

我在 Windows 上使用 github actions runner。

我尝试了以下方法,仅从远程存储库中的

scripts
内的分支
betech
中检出名为
mm365
current-folder\betech
文件夹;但它会检查整个存储库内容。

  - name: Checkout just the scripts folder
    uses: actions/checkout@v3
    with:
      repository: mytech/betech
      ref: mm365
      path: betech
      token: ${{ secrets.MYGITHUBTOKEN }}

  - name: Configure Sparse Checkout   
    run: |
      echo "scripts/*" >> .git/info.sparse-checkout
      git read-tree -mu HEAD
    working-directory: betech

    env:
      token: ${{ secrets.MYGITHUBTOKEN }}
      secrets: inherit 

这是稀疏文件

cat betech\.git\info.sparse-checkout

scripts/*

您能否建议我如何仅签出脚本文件夹或任何单个文件[如果逻辑相对不同]

*** 更新:*** 我绑定了下面的答案并且它有效。

  - name: Checkout just the scripts folder
    uses: actions/checkout@v3
    with:
      repository: mytech/betech
      ref: mm365
      path: betech
      sparse-checkout: |
        scripts
      sparse-checkout-cone-mode: false
      token: ${{ secrets.MYGITHUBTOKEN }}
git github repository github-actions git-checkout
1个回答
6
投票

checkout
操作文档有几个示例演示如何获取特定文件。

仅获取根文件

- 使用:actions/checkout@v3
  和:
    稀疏结帐: . 

仅获取根文件以及.github和src文件夹

- uses: actions/checkout@v3
  with:
    sparse-checkout: |
      .github
      src

仅获取单个文件

- uses: actions/checkout@v3
  with:
    sparse-checkout: |
      README.md
    sparse-checkout-cone-mode: false

您还可以使用

checkout-files
操作 仅签出某些文件和/或文件夹。此操作使用 Github REST API 下载存储库内容

- name: Checkout files
  uses: Bhacaz/checkout-files@v2
  with:
   files: package.json

这里

files
是一个文件列表,路径用空格分隔,相对于存储库的根目录。这也可以是一个文件夹,该操作将递归地提取所有文件。

© www.soinside.com 2019 - 2024. All rights reserved.