使用Gitlab Pipeline将数据推送到ftpserver

Daa*_*k44 6 gitlab gitlab-ci

我想使用Gitlab管道部署到ftp服务器。我尝试了这段代码:

deploy: // You can name your task however you like
    stage: deploy
    only:
        - master
        deploy:
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息。做这个的最好方式是什么?:)

小智 8

然后在您的.gitlab-ci.yml文件中添加以下代码。

variables:
  HOST: "example.com"
  USERNAME: "yourUserNameHere"
  PASSWORD: "yourPasswordHere"

deploy:
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
    - lftp -c "set ftp:ssl-allow no; open -u $USERNAME,$PASSWORD $HOST; mirror -Rnev ./ ./public_html --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
  only:
    - master
Run Code Online (Sandbox Code Playgroud)

上面的代码会将Gitlab存储库中所有最近修改的文件推送到FTP服务器根目录下的public_html文件夹中。

只需使用您的FTP凭证更新变量HOST,USERNAME和PASSWORD并将此文件提交到Gitlab存储库,就可以了。

现在,每当您在master分支中进行更改时,Gitlab都会自动将您的更改推送到远程FTP服务器。

  • 我建议不要将您的凭据放入 yml 文件中,因为它可能会暴露。相反,请转到“设置”->“CI/CD”->(单击)“变量”-> 在其中设置“主机”、“密码”和“用户名”变量。然后,您可以像您提到的那样在 yml 文件中引用它们,但是这样,您就不会冒暴露它们的风险。 (8认同)

Daa*_*k44 6

知道了 :)

  image: mwienk/docker-git-ftp


    deploy_all:
      stage: deploy
      script:
        - git config git-ftp.url "ftp://xx.nl:21/web/new.xxx.nl/public_html"
        - git config git-ftp.password "xxx"
        - git config git-ftp.user "xxxx"
        - git ftp init
        #- git ftp push  -m "Add new content"

      only:
        - master
Run Code Online (Sandbox Code Playgroud)