我在 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 }}
checkout
操作文档有几个示例演示如何获取特定文件。
- 使用:actions/checkout@v3 和: 稀疏结帐: .- 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
是一个文件列表,路径用空格分隔,相对于存储库的根目录。这也可以是一个文件夹,该操作将递归地提取所有文件。