在 Github 操作中部署到 FTP 服务器不起作用

Deploying to FTP server in Github Actions does not work

正如标题所说,通过 Github 操作部署到 FTP 服务器对我来说不起作用。我已经尝试使用一些操作来完成此操作 (FTP-Deploy and ftp-action),但 FTP-Deploy 只是保持 运行 零星的

curl: (7) Failed to connect to ftpservername.com port 21: Connection timed out

消息和 ftp-action 保留了 运行 任何输出。注意:服务器可用,我使用 Filezilla 连接并传输了一些文件,没有任何问题。

之后我尝试使用 lftp,这是我在本地 Ubuntu 机器上使用的命令

lftp -c "open -u username,password ftpservername.com; mirror -R locfolder remote/remotefolder"

文件传输成功,但在 Github 操作中使用时会产生以下输出:

---- Connecting to ftpservername.com (123.456.789.123) port 21

mkdir `remote/remotefolder' [Connecting...]

**** Socket error (Connection timed out) - reconnecting

---- Closing control socket

---- Connecting to ftpservername.com (123.456.789.123) port 21

我尝试将 ftp:ssl-allowssl:verify-certificate 都设置为 false,但这没有产生任何结果。另外,我没有访问服务器的权限,所以无法查看服务器日志。

这是工作流程文件:

name: Test

on:
  push:
    branches: [master]
jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repo
      uses: actions/checkout@v2
  
    - name: Setup Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.x'

    - name: Install pip
      run: python -m pip install --upgrade pip

    - name: Install packages
      run: |
        sudo apt install lftp
        sudo apt install expect
  
    .
    .
    .
    - name: FTP Deploy
      run: |
        echo Starting...
        unbuffer lftp -c "debug; set ftp:ssl-allow false; set ssl:verify-certificate false; open -u username,${{ secrets.PASSWORD }} ftpservername.com; mirror -R -v locfolder remote/remotefolder"
        echo Done transferring files.

感谢任何帮助,谢谢!

发现问题,托管服务阻止了 IP 地址(因为它是国外的 IP 地址)。在设置 self-hosted 运行器并将运行器的 IP 列入白名单后,一切正常。