CICD篇-Travis-CI环境搭建

环境准备

  • github账号
  • dockerhub账号
  • Travis-CI账号

开启服务

进入Travis-CI官网开启服务

安装Travis

sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
# 由于众所周知的网络原因,此处可能需要使用到http_proxy
wget http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
tar -xvzf ruby-2.1.5.tar.gz
cd ruby-2.1.5/
./configure --prefix=/usr/local
make
sudo make install

安装

gem install travis

如果网络实在太差,可以使用RubyGems 镜像

gem sources --add https://gems.ruby-china.org/
gem sources --remove https://rubygems.org/
gem sources --remove http://rubygems.org/
gem sources -l

客户端登入

travis login --org
  • 登入失败
root@mikey:/home/mikey# travis login
Outdated CLI version, run `gem install travis`.
Shell completion not installed. Would you like to install it now? |y| y
We need your GitHub login to identify you.
This information will not be sent to Travis CI, only to api.github.com.
The password will not be displayed.Try running with --github-token or --auto if you don't want to enter your password anyway.Username: hhufu
Password for hhufu: ********
Bad credentials. The API can't be accessed using username/password authentication. Please create a personal access token to access this endpoint: http://github.com/settings/tokens
for a full error report, run travis report

解决方法: 可以使用Token进行登入

root@mikey:/home/mikey# travis login --org --github-token 6534404071f94d2be86d6e3e16d691
Outdated CLI version, run `gem install travis`.
Successfully logged in as hhufu!

公钥配置

本地服务生成公钥,一路回车

ssh-keygen

将公钥上传致部署服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub root@47.106.210.184

免密登入测试

ssh root@47.106.210.184

初始化项目

进入项目目录中

travis init --org

输出

/var/lib/gems/2.5.0/gems/travis-1.9.1/lib/travis/tools/system.rb:79: warning: Insecure world writable dir /home/mikey/Devtools in PATH, mode 040777
Outdated CLI version, run `gem install travis`.
Detected repository as hhufu/innovate, is this correct? |yes| yes
Main programming language used: |Ruby|
.travis.yml file created!
not allowed to update service hook for hhufu/innovate

添加秘钥

travis encrypt-file ~/.ssh/id_rsa --add

当在官网查看到有秘钥存在就表示成功了

配置文件

配置文件

matrix:include:- language: node_jsnode_js:- 10.16.1branches:only:- masterinstall:- npm installscript:- npm run build- docker build . -t "$DOCKER_NAME/innovate-admin-vue:latest"addons:ssh_known_hosts:- "$SERVER_IP"after_success:- docker login -u=$DOCKER_NAME -p="$DOCKER_PWD"- docker push $DOCKER_NAME/innovate-admin-vue:latest- chmod 600 ~/.ssh/id_rsa- rsync -az --delete ./docker-compose.yml root@$SERVER_IP:$DOCKER_NAME/innovate-admin-vue/- ssh -o "StrictHostKeyChecking no" -i id_rsa root@$SERVER_IP "cd $DOCKER_NAME/innovate-admin-vue/;docker-compose-f docker-compose.yml pull;docker-compose -f docker-compose.yml up -d;exit"before_install:- openssl aes-256-cbc -K $encrypted_1687bb340939_key -iv $encrypted_1687bb340939_iv  -inid_rsa.enc -out ~/.ssh/id_rsa -d- chmod 600 ~/.ssh/id_rsa- echo -e "Host $SERVER_IP\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config- cd $DOCKER_NAME/innovate-admin-vue- language: javaservices:- dockersudo: requiredbranches:only:- masterscript:- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V- docker build . -t "$DOCKER_NAME/innovate-admin:latest"before_install:- openssl aes-256-cbc -K $encrypted_1687bb340939_key -iv $encrypted_1687bb340939_iv-in id_rsa.enc -out ~/.ssh/id_rsa -d- chmod 600 ~/.ssh/id_rsa- echo -e "Host $SERVER_IP\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config- cd $DOCKER_NAME/innovate-adminafter_success:- docker login -u=$DOCKER_NAME -p="$DOCKER_PWD"- docker push $DOCKER_NAME/innovate-admin:latest- chmod 600 ~/.ssh/id_rsa- rsync -az --delete ./docker-compose.yml root@$SERVER_IP:$DOCKER_NAME/innovate-admin/- ssh -o "StrictHostKeyChecking no" -i id_rsa root@$SERVER_IP "cd $DOCKER_NAME/innovate-admin/;docker-compose-f docker-compose.yml pull;docker-compose -f docker-compose.yml up -d;exit"
notifications:email:- biaogejiushibiao@outlook.comon_success: changeon_failure: always
before_install:
- openssl aes-256-cbc -K $encrypted_1687bb340939_key -iv $encrypted_1687bb340939_iv-in id_rsa.enc -out ~\/.ssh/id_rsa -d

根据自己项目需要来进行编写,更多选项参考官方文档

提交部署

提交代码即可完成自动部署工作

参考资料

官方文档
持续集成服务 Travis CI 教程

如果安装过程中有问题可以扫描下发二维码联系我

CICD篇-Travis-CI环境搭建相关推荐

  1. cesium 页面截图_Cesium开发入门篇 | 02Cesium开发环境搭建及第一个示例

    01 开发环境准备 利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React.Vue.AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍 ...

  2. 【网络安全学习】渗透测试篇01-DVWA靶场环境搭建教程

    渗透测试:通过经授权的模拟攻击,发现存在的漏洞,并以此对网络.主机.应用及数据的安全性进行评估. 靶场作用:在合法的环境下进行网络安全学习与演练 目录 为什么写这篇文章? 介绍及注意事项 环境搭建 1 ...

  3. 程序猿编程课堂 Python学习之入门篇1:环境搭建与第一个程序

    前言: Python作为目前比较热门的编程语言,其简单和简洁的语法使它成为一种非常好的通用编程语言,它是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),并且随着版本的不断更新和 ...

  4. 第1篇:Python 环境搭建

    千里之行始于足下,今天我们先来学习 Python 环境搭建. Python 介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型.高级编程.通用型编 ...

  5. 华为Atlas200DK开发从零开始1.番外篇——Win10开发环境搭建,直连Atlas200DK开发板

    目录 前言 环境搭建前准备 Windows10上的软件准备 硬件准备 Win10直连Atlas200DK 检查USB虚拟网卡状态 设置Atlas200DK的USB网卡IP(重要) 将Win10网络共享 ...

  6. 【谷粒商城基础篇】基础环境搭建

    谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== 项目简介与分布式概念(第一.二章) 基础环境搭建(第三章) ===整合SpringCloud=== 整合 ...

  7. stm32f4 hal 4位数码管_STM32裸机开发基础篇01开发环境搭建(HAL库)

    前言 众所周知,在32位单片机中,STM32占有重要市场份额,其社区活动频繁,网上相关资料也比较多,无论是学习入门,还是工作使用,都无疑是极好的选择,本节开始,我们将学习如何使用STM32,首先,我们 ...

  8. Python之路【第一篇】:环境搭建

    虚拟机安装 下载VMwareWorkstation以及centos,安装完VMwareWorkstation,创建一个虚拟机,然后在新创建的虚拟机上运行centos linux环境搭建 公司开发使用l ...

  9. cesium 页面截图_Cesium开发入门篇 | 02开发环境搭建及第一个示例

    开发环境准备 利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React.Vue.AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍.本次 ...

  10. Java 编程预热篇:JavaSE 环境搭建和 IDE的安装

    知识点: JDK 概述 JDK 全称 Java Development Toolkit,是 Java 语言开发工具包.JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runti ...

最新文章

  1. 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...
  2. 零基础学习java------day7------面向对象
  3. 使用Speedment 3.0.17及更高版本简化了事务
  4. The Model Driven Software Network
  5. 最大子序和(Leetcode第53题)
  6. 怎么配置宝塔linux环境,宝塔面板linux怎么安装
  7. 你知道吗?还有比自回归方式更快更好的序列生成!
  8. 动态规划-最长不下降子序列
  9. PRML第三章3.2
  10. 一个手机用c网可以打开网站切换到g网就打不开_推荐一些设计师常用网站!!!...
  11. OpenSesame for Mac(ae项目格式编辑插件)
  12. 【commons-beanutils专题】003- PropertyUtils 专题
  13. Binder机制原理
  14. smb协议讲解_SMB协议详解 - 人之为学,如饮河海,大饮则大盈,小饮则小盈 - OSCHINA - 中文开源技术交流社区...
  15. Ignite 架构全面解析
  16. 《开源软件架构》--nginx架构概述
  17. 物体识别基本原理及其Python实现
  18. japanhr日语小工具 日文汉字转平假名-japankana
  19. 第一行代码-第二版(郭霖著)笔记(初识Android)
  20. Android 8.0 手机亮灭屏

热门文章

  1. 解决“error C1083: 无法打开包括文件: “HPSocket.h”: No such file or directory”
  2. 手提电脑无法管理计算机,细说笔记本键盘无法输入怎么办
  3. linux佳能打印机服务,Canon LBP2900打印机安装Linux驱动的经验:已在Deepin中成功
  4. Quartu编写D触发器
  5. 用asp.net写的一个购物网站
  6. MATLAB基础语法之蒙特卡罗模拟_1(布丰投针)
  7. 34. 进程管理之优先级,nice,renice,Priority
  8. Ubuntu开机一直卡在[OK] Started GNOME Display Manager处,解决方案!
  9. 深度学习经历过程(caffe学习过程)
  10. Facebook账户 “ 解封、防封、养号 ” 知识要点,已收藏!