Flutter :运行 Flutter pub 获取具有私有依赖项的 github 操作



我正在使用在Github中私下托管的插件,并具有ssh访问权限。在 Github 操作中运行flutter pub get时,此命令将失败。我遵循了一个使用部署密钥的教程,并尝试了这个:

jobs:
build:
runs-on: ubuntu-18.04
steps:
-   uses: actions/checkout@v1
-   name: Setup SSH Keys and known_hosts
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add - <<< "${{ secrets.SSH_PRIVATE_KEY }}"
-   name: Some task that fetches dependencies
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: flutter pub get

还尝试过:

- uses: webfactory/ssh-agent@v0.4.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Fetch flutter dependencies
run: flutter pub get

但是命令仍然失败。我做错了什么,有没有另一种方法可以让这个命令获取私钥?

您可以使用此操作添加 ssh 密钥。

https://github.com/marketplace/actions/install-ssh-key

在存储库的机密中插入私钥和已知主机。

注意:OPENSSH 格式(密钥以 -----BEGIN OPENSSH PRIVATE KEY----- 开头(可能由于虚拟机上的 OpenSSH 版本而不起作用。请改用 PEM 格式(以 -----开始 RSA 私钥-----开头(。为了将您的密钥内联转换为 PEM 格式,只需使用 ssh-keygen -p -m PEM -f ~/.ssh/id_rsa。

您可以使用以下方法获取已知主机:

ssh-keyscan github.com

在此之后,将 ssh 添加到您的工作流程中:

- uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}

我希望这能帮助你

相关内容

最新更新