github-actions - git : Using actions/checkout@v2 instead of appleboy/ssh-action@master to clone repository to a server

标签 github-actions git-checkout

我正在尝试将存储库从 GitHub 克隆到远程服务器。
我的解决方案使用 appleboy/ssh-action GitHub 操作正在运行,但有人告诉我可以使用 来实现相同的操作操作/结帐@v2 GitHub 操作。
我试图改变 - 用途:值为 操作/结帐@V2 ` 但是代码不起作用。
我找不到任何关于如何使用 的模板操作/结帐@v2 .任何建议将不胜感激。

name: deploy to a server on push

on:
  push:
    branches: [ master ]

jobs:
  deploy-to-server:
    runs-on: ubuntu-latest
    steps:

  - uses: appleboy/ssh-action@master 
    with:
      host: 123.132.123.132
      username: tomas
      key: ${{ secrets.PRIVATE_KEY }}
      port: 59666
      script:
        git clone https://github.com/Tomas-R/website.git

最佳答案

作为 actions/checkout@v2 的文档说

This action checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.


   steps:
      - name: Checkout the repo
        uses: actions/checkout@v2
        with: 
          # This will create a directory named `my-repo` and copy the repo contents to it
          # so that you can easily upload it to your remote server
          path: my-repo
要将此 checkout 的 repo 复制到远程服务器,您可以使用 scp命令如下。
   # Runs a set of commands using the runners shell
     - name: Upload repo to remote server
       env:
           SSH_AUTH_SOCK: /tmp/ssh_agent.sock
       run: |
         ssh-agent -a $SSH_AUTH_SOCK > /dev/null
         ssh-add - <<< "${{ secrets.PRIVATE_KEY }}"
         scp -o StrictHostKeyChecking=no -r -P 59666 my-repo tomas@123.132.123.132:/target/directory
通过使用上述命令,我们,
  • 开始ssh-agent并将其绑定(bind)到已知位置。
  • 将私钥从 key 导入 ssh-agent。
  • my-repo 复制内容到远程服务器上的目标目录。

  • 这样,私钥永​​远不会被写入磁盘/被暴露。
    还有另一种更简单的方法来运行 scp使用 Copy via ssh GitHub 操作。
       - name: Copy folder content recursively to remote
         uses: garygrossgarten/github-action-scp@release
         with:
           local: my-repo
           remote: ~/target/directory
           host: 123.132.123.132
           port: 59666
           username: tomas
           privateKey: ${{secrets.PRIVATE_KEY}}
    

    关于github-actions - git : Using actions/checkout@v2 instead of appleboy/ssh-action@master to clone repository to a server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68132791/

    相关文章:

    github-actions - 如何检查 github 操作条件中的标签

    git - checkout 新分支后是否需要 `pull`?

    git - 在 Windows 上 checkout HEAD(和变体)时奇怪的 Git 行为

    android - 如何在本地 repo 中切换 android 版本?

    git - 将特定提交中的文件 check out 到不同的目录

    node.js - 如何在 GitHub Actions/Workflows 配置中安装 imagemagick 和其他自制软件依赖项?

    GitHub 操作 API : Get view workflow run history

    Azure应用程序部署错误: Resource doesn't exist

    github - 如何使用 GitHub 操作自动请求某人的评论?

    git - 如何 pull 入非当前分支?