使用Gitlab Pipeline将数据推送到ftpserver

时间:2018-04-03 14:01:57

标签: 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

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

4 个答案:

答案 0 :(得分:4)

然后在.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

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

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

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

答案 1 :(得分:2)

知道了:)

  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

答案 2 :(得分:1)

试试这个。 Gitlab中有一个CI Lint工具,可以帮助解决格式错误。 linter显示错误,即附加的deploy语句。

deploy:
  stage: deploy
  only:
    - master

  script:
    - apt-get update -qq && apt-get install -y -qq lftp

答案 3 :(得分:0)

我用这个

deploy:
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
    - lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -v ./ $FTP_DESTINATION --reverse --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
  environment:
    name: production
  only:
    - master