我想使用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
但是我收到一条错误消息。做这个的最好方式是什么? :)
答案 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