使用Gitlab Pipeline将数据推送到ftpserver

问题描述 投票:3回答:4

我想使用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

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

gitlab gitlab-ci
4个回答
7
投票

然后在.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存储库,您就可以了。

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


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

1
投票

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

deploy:
  stage: deploy
  only:
    - master

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

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
© www.soinside.com 2019 - 2024. All rights reserved.