Github Actions .Net 设置传输

布宾加

我在 github 上有一个 CI 工作流,用于将我的代码复制并部署到远程服务器。但是,当我调整单个文件时,它会复制每个文件,而不仅仅是更改的文件。我的工作流程如下:

name: CI

on:
  workflow_dispatch:
  push:
    branches:
    - release    

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '5.0.x'
    - name: Dotnet Publish
      run: dotnet publish . -c Release -o deploy
    - name: Copy via ssh
      uses: garygrossgarten/github-action-scp@release
      with:
        local: /home/runner/work/Repo-Name/Project-Name/deploy/
        remote: ${{ secrets.REMOTE_TARGET }}
        host: ${{ secrets.REMOTE_HOST }}
        username: ${{ secrets.REMOTE_USER }}
        privateKey: ${{ secrets.REMOTE_SSH_KEY }}
    - name: Run SSH command
      uses: garygrossgarten/github-action-ssh@release
      with:
        command: sudo systemctl restart project-name
        host: ${{ secrets.REMOTE_HOST }}
        username: ${{ secrets.REMOTE_USER }}
        privateKey: ${{ secrets.REMOTE_SSH_KEY }}

我已经看到了只从 github 存储库中获取更改文件的方法,但没有看到如何在发布后获取更改的文件。如果有帮助,很少更改的额外内容大致分为依赖包和 JS 文件。有大约 400 个文件要复制,单独删除这两组文件将使我减少到只有大约 30 个文件。

布宾加
    steps:
    - uses: actions/checkout@v1
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '5.0.x'
    - name: Dotnet Publish
      run: dotnet publish . -c Release -o deploy
    - name: Copy files via ssh rsync
      uses: trendyminds/github-actions-rsync@master
      with:
        RSYNC_OPTIONS: -avzr --delete --exclude node_modules --exclude '.git*'
        RSYNC_TARGET: ${{ secrets.REMOTE_TARGET }}
        RSYNC_SOURCE: /deploy/
      env:
        SSH_PRIVATE_KEY: ${{ secrets.REMOTE_SSH_KEY }}
        SSH_USERNAME: ${{ secrets.REMOTE_USER }}
        SSH_HOSTNAME: ${{ secrets.REMOTE_HOST }}   
    - name: Run SSH command
      uses: garygrossgarten/github-action-ssh@release
      with:
        command: sudo systemctl restart project-name
        host: ${{ secrets.REMOTE_HOST }}
        username: ${{ secrets.REMOTE_USER }}
        privateKey: ${{ secrets.REMOTE_SSH_KEY }}

我最终使用了这个动作,它至少比我之前的动作快 15 倍。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章