我在 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 }}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句