Yev*_*ych 21 python github github-actions
我在组织(比如 ORG)中有 2 个私有 GitHub 存储库(比如 A 和 B)。存储库 A 在requirements.txt
以下位置具有存储库 B :
-e git+git@github.com:ORG/B.git#egg=B
Run Code Online (Sandbox Code Playgroud)
我对 A (in .github/workflows/test.yml
)有以下工作流程:
name: Python package
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install requirements
run: |
pip install -r requirements.txt
- name: Test with pytest
run: |
pytest ./tests
Run Code Online (Sandbox Code Playgroud)
由于 B 是私有的,因此安装失败。
如果他们在同一组织中,是否可以在此工作流中测试 A 时安装 B?如何?
Nat*_*ram 100
由于访问令牌绑定到一个帐户并对其所有私有存储库具有写入权限,因此这是一个非常糟糕的解决方案。
相反,请使用部署密钥。
部署密钥只是可用于克隆存储库的 SSH 密钥。
设置完成后,您可以在 GitHub Action 的 SSH Agent 中设置私钥。无需导入第三方 GitHub Action,2-liner 就足够了。
eval `ssh-agent -s`
ssh-add - <<< '${{ secrets.PRIVATE_SSH_KEY }}'
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
我在这里ssh-add
找到了这个命令。
小智 12
我是这样做的!
- uses: actions/checkout@v1
with:
repository: organization_name/repo_name
token: ${{ secrets.ACCESS_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
您需要提供一个有效的令牌,您可以按照本指南生成它
使用部署密钥您可以执行以下操作
- uses: actions/checkout@v2
with:
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
repository: organization_name/repo_name
Run Code Online (Sandbox Code Playgroud)
为此,您需要
SSH_PRIVATE_KEY
您无需签出两次,只需提供pip
访问存储库 B 的TOKEN 即可。
- name: Install requirements
run: |
git config --global url."https://${{ secrets.ACESS_TOKEN }}@github".insteadOf https://github
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7396 次 |
最近记录: |