【问题标题】:GitHub Actions - How clean up unchanged/uncommited files before upload to SFTP ServerGitHub Actions - 如何在上传到 SFTP 服务器之前清理未更改/未提交的文件
【发布时间】:2022-01-23 09:24:08
【问题描述】:

我正在尝试配置一个 GitHub Action 以将我的应用程序部署到 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/SFTP-Deploy-Action@v1.0
        with:
          username: 'deploy_user'
          server: 'server_ip'
          ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
          local_path: './www/*'
          remote_path: '/www'
          args: '-o ConnectTimeout=10'

【问题讨论】:

    标签: github yaml github-actions


    【解决方案1】:

    要列出在给定提交中更新/提交的所有文件,您可以使用以下命令:

    $ git diff-tree --no-commit-id --name-only -r $GITHUB_SHA
    index.html
    src/application.js
    

    然后您可以使用它来删除所有不在此列表中的文件。这需要一些 bash 挖掘。我能想到的一种技巧是让 tmp dir 复制更新的文件并仅上传这些文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      相关资源
      最近更新 更多