我正在嘗試配置一個 GitHub 操作來將我的應用程式部署到 SFTP 檔案。
我的應用程式有 6700 個檔案,我只想上傳更改/提交的檔案。
如何在上傳到 SFTP 之前洗掉未更改和/或未提交的檔案?
這樣,我的一次檔案修改部署將比上傳 6k 檔案快得多。
name: CI
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy Job
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Deploy files
uses: wlixcc/[email protected]
with:
username: 'deploy_user'
server: 'server_ip'
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
local_path: './www/*'
remote_path: '/www'
args: '-o ConnectTimeout=10'
uj5u.com熱心網友回復:
要列出在給定提交中更新/提交的所有檔案,您可以使用以下命令:
$ git diff-tree --no-commit-id --name-only -r $GITHUB_SHA
index.html
src/application.js
然后您可以使用它來洗掉不在此串列中的所有檔案。這需要一些bash挖掘。我能想到的一個技巧是讓 tmp dir 復制更新的檔案并只上傳這些檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391444.html
上一篇:多個環境的GitHub操作
