我觉得自己正试图从Github上的主分支实现CI,使用Travis-CI并将构建的文件推送到我的服务器上。
我正在尝试的概述:
我已经使它几乎工作了,似乎是某种类型的权限问题(即使我没有得到任何构建错误)
Travis成功运行主推,找到部署脚本,并在没有任何问题的情况下运行。它以最后的0退出,构建为绿色。但是当我ssh检查以确保应用更改时 - 没有什么看起来不同。
看起来Travis正在构建自己的容器,但实际的盒子没有得到更新。
这是我的.travis.yml文件:
sudo: required
language: node_js
node_js:
- "stable"
script:
- /bin/true
deploy:
- provider: script
skip_cleanup: true
script: >-
wget http://example.com/scripts/deploy_script.sh;
chmod +x deploy_script.sh;
sh ./deploy_script.sh theme;
on:
branch: master
这是我的deploy_script.sh:
#!/usr/bin/env bash
readonly SELF="$(basename $0)"
readonly SCRIPT_PATH="$(dirname $0)"
readonly REAL_PATH="$(cd "$(dirname "$1")"; pwd)"
readonly DATE=`date +%Y-%m-%d`
usage() {
cat <<EOF
Usage:
$SELF <theme | cms>
Script to deploy headband theme for grav cms
EOF
}
cms() {
cd /path/to/cms
echo "Updating CMS ... can add a current date here or what not" >> /tmp/$DATE-deploy.log
composer install --no-dev -o
}
theme() {
cd ./themes/headband
pwd
echo "Updating Theme ... can add a current date here or what not" >> /tmp/$DATE-deploy.log
rm -rf ./node_modules >> /tmp/$DATE-deploy.log
echo "REMOVED NODE MODULES FOLDER"
npm cache clean >> /tmp/$DATE-deploy.log
echo "NPM CACHE CLEANED ... ... ... ... ... "
npm install --save >> /tmp/$DATE-deploy.log
echo "npm installed ... moving on ..."
npm update >> /tmp/$DATE-deploy.log
echo "NPM UPDATED ... ... ... ..."
gulp >> /tmp/$DATE-deploy.log
echo "GULP TASK COMPLETED ... ... ... ..."
}
# Exit if user input is < 1 params
if [ "$#" -lt "1" ]; then
usage
exit 2
fi
# Check for $action anything else echo usage
while [ "$#" -gt 0 ]; do
action="$1"
case $action in
cms)
cms
exit 0
;;
theme)
theme
exit 0
;;
*)
usage
exit 2
;;
esac
done
usage
exit 2
如果有人能指出我正确的方向,这将是惊人的。
答案 0 :(得分:0)
因此,经过多次尝试失败后,我在服务器端使用scp
和sans部署脚本时已成功部署(尽管仍希望通过该路由清理.yml)
目前由于没有压缩或存档需要一些时间,但是如果有人可以提供帮助,那将是非常棒的。否则将在以后更新。
我也试图让rsync
工作但不仅仅是。
这是最终的.travis.yml文件,它从构建目录
部署所有文件sudo: required
language: node_js
node_js:
- stable
script:
- "/bin/true"
addons:
ssh_known_hosts:
- <ip-of-server>
after_success:
- openssl aes-256-cbc -K $encrypted_<secret>_key -iv $encrypted_<secret>_iv -in deploy_rsa.enc -out /tmp/deploy_rsa -d
- eval "$(ssh-agent -s)"
- chmod 600 /tmp/deploy_rsa
- ssh-add /tmp/deploy_rsa
deploy:
- provider: script
skip_cleanup: true
script: cd <build-directory> && rm -rf dist/ node_modules/ && npm install && gulp
on:
branch: master
- provider: script
skip_cleanup: true
script: scp -P <port> -r <directory-to-deploy> <user>@<server-ip>:<deploy-directory>
on:
branch: master