【问题标题】:Flutter: Running flutter pub get in github actions with private dependenciesFlutter:在具有私有依赖项的 github 操作中运行 flutter pub get
【发布时间】:2020-10-14 20:19:25
【问题描述】:

我正在使用通过 ssh 访问在 Github 中私人托管的插件。在 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

但命令仍然失败。我做错了什么,还有其他方法可以让这个命令获取私钥吗?

【问题讨论】:

    标签: flutter github continuous-integration continuous-deployment github-actions


    【解决方案1】:

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

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

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

    注意:由于 VM 上的 OpenSSH 版本,OPENSSH 格式(密钥以 -----BEGIN OPENSSH PRIVATE KEY----- 开头)可能无法正常工作。请改用 PEM 格式(以 -----BEGIN RSA PRIVATE KEY----- 开头)。为了将您的密钥内联转换为 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 }}
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 2020-10-23
      • 1970-01-01
      • 2020-07-17
      • 2017-01-29
      • 2019-10-19
      • 2020-07-10
      • 2020-11-13
      • 2018-08-09
      相关资源
      最近更新 更多