[英]Gitlab pipeline deploy using rsync
我正在尝试部署当前 git 存储库的所有内容(包括分支和提交)并使用 rsync 将其部署到远程服务器。
现在我有一个 gitlab-ci 文件,其中包含以下内容:
image: ubuntu:18.04
.init_development_ssh: &init_development_ssh |
eval $(ssh-agent -s)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
ssh-add <(echo "$STAGING_PRIVATE_KEY")
.tag: &tag
tags:
- pixel-rp
stages:
- lint
- deploy
linting code:
# Use the LUA image
image: mhndev/docker-lua
<<: *tag
stage: lint
before_script:
- luarocks install luacheck
script: luacheck fx-server-data
allow_failure: true
deploy to testing:
<<: *tag
stage: deploy
before_script:
- apt -y update && apt -y upgrade && apt install -y openssh-client rsync sshpass
- *init_development_ssh
script:
- sshpass -p "$SSH_PASS" -e "ssh -p 2222" rsync -rav --exclude='.git/' --exclude='.gitlab-ci.yml' --delete-excluded /builds/pixel-rp/pixel-server/ user@IP:/home/user/FXServer/server-data/
我得到的错误是
> Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename Take password to use from file
-d number Use number as file descriptor for getting password
-p password Provide password as argument (security unwise)
-e Password is passed as env-var "SSHPASS"
With no parameters - password will be taken from stdin
-P prompt Which string should sshpass search for to detect a password prompt
-v Be verbose about what you're doing
-h Show help (this screen)
-V Print version information
At most one of -f, -d, -p or -e should be used
Conflicting password source
现在我不是 linux 专家,但要记住的“必需”参数如下:
任何知道我如何获取所有内容(不包括某些文件)并将其“推送”到我的远程服务器作为“连续交付”的人?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.