GitHub + circleCI 自动构建/自动部署 应用

GitHub + circleCI 自动构建/自动部署, 这里略过了单元测试,以部署 laravel 应用为例子

比起 gitlab + ansible + genkins 操作起来节省了很多硬件资源,感谢 微软 免费了 GitHub 私有仓库

1、GitHub 相关

  a、创建 github 仓库(现在可以免费创建私有仓库了,个人项目能满足了)

  b、配置 SSH 公钥,可以走 SSH 渠道免密 拉取代码

2、circleCI 相关

  a、github 登陆 https://circleci.com ,创建一个任务,直接关联 github 的某个仓库

  b、配置此任务构建时 从 GitHub checkout 代码时 的 SSH 凭证,从github 配置的ssh key中选一个即可

  c、配置此任务部署时需要部署的 一对SSH的密钥(随便在哪里生成都行)中的 SSH rsa 私钥,******* 注意 : 将远程服务器需要在 ~/.ssh/authorized_keys 把在circleCI上部署的死要对应的公钥(id_rsa.pub)另起一行追加进去

3、整合代码

  代码中加入.circleci文件夹,并添加配置信息,就简单的实现自动构建和自动部署了

部署后的站点

创建一个仓库并配置部署key

circlrCI 任务后台配置 代码检出需要用到的 github ssh key,直接选一个即可

circleCI 配置能用SSH 私钥登陆远程服务器的 key

circlrCI 配置任务信息

circlrCI 配置任务执行过程中可以执行的脚本

circlrCI 后台能看见任务列表

具体的 构建/部署任务 详情

对于个人站点来说,节省了不少手动操作时间

最后,附上 .circleci 的配置和相关脚本

config.yml

version: 2
jobs:
  build:
    docker:
      - image: circleci/php:7.1-browsers
    working_directory: /tmp/workspace
    steps:
      - run: echo "====================构建开始=============================="
      - checkout
      - restore_cache:
            keys:
            - v1-dependencies-{{ checksum "composer.json" }}
            # 如果没有匹配的缓存则使用最新的缓存
            - v1-dependencies-
      - run: composer install -n --prefer-dist
      # 运行单元测试
#      - run: phpunit
      - persist_to_workspace:
          root: .
          paths:
          - ./*
      - run: echo "====================构建完毕=============================="
  deploy:
    machine:
      timezone:
        Asia/Shanghai # 设置上海时区
      enabled: true
    working_directory: /tmp/workspace
    steps:
      - run: echo "====================部署开始=============================="
      - attach_workspace:
          at: /tmp/workspace
      - run: pwd && ls -al
      - run:
          name: Deploy Over SSH
          command: ./.circleci/deploy-master.sh
      - run: echo "====================部署完毕=============================="

workflows:
  version: 2
  build-and-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master

deploy-master.sh

#!/usr/bin/env bash

user=root
host=xxx.xxx.xxx.xxx
src=`pwd`"/"
des=/data/www/api.www.zjj7.com/
now=`date +"%Y-%m-%d %H:%M:%S"`

rsync -vzrc --delete  --exclude ".git"  --exclude ".env"   --exclude ".circleci"   $src  [email protected]$host:$des

ssh [email protected]$host "sudo chown -R www:www $des"

ssh [email protected]$host "chmod -R 775 $des/bootstrap/cache && chmod -R 775 $des/storage && cd $des && pwd && ls -al"

echo "$now update $host $des code"

原文地址:https://www.cnblogs.com/liugx/p/10339010.html

时间: 2024-11-09 16:53:40

GitHub + circleCI 自动构建/自动部署 应用的相关文章

用Ant实现Java项目的自动构建和部署

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.解压到某个目录(例如E:\apache-ant-1.7.0),即可使用. 添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:\apache-ant-1.7.0. 安装与

用Ant实现Java项目的自动构建和部署【转】

http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html 原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml        本文请勿转载! Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下

用Ant实现Java项目的自动构建和部署(转)

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.解压到某个目录(例如E:"apache-ant-1.7.0),即可使用. 添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-ant-1.7.0

码云Webhook触发Jenkins自动构建 - Jenkins演练(一)

今天自己看着插件文档摸索了一下,实现了git push后Webhook自动触发Jenkins进行代码构建,可通用gitlab.github等平台,中文关于这方面自动部署的文档比较少,所以把我的学习过程记录下来,让其他人少走点弯路. 模拟场景:开发人员在dev分支提交代码后,Jenkins自动构建和部署,非dev分支提交代码不会触发. 实战环境:码云(git.oschina.net).Jenkins(可在公网访问).插件Generic Webhook Trigger 步骤1: 码云新增一个项目,新

使用ant自动构建项目

用Ant实现Java项目的自动构建和部署 原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml        本文请勿转载! Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.

Ant构建和部署项目(转)

原文地址: http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.解压到某个目录(例如E:"apache-ant-1.7.

系统测试——代码质量检查、单元测试、性能测试、自动构建、项目管理

根据软件开发的过程和由细节到外部的顺序,将软件测试划分为5个阶段: 1)代码质量检查:对代码的格式.潜在的Bug进行检查,常用的工具有Checkstyle.PMD.FindBugs: 2)单元测试:对代码的功能进行测试,常用的工具有JUnit.EasyMock: 3)性能测试:对代码的性能进行测试,常用的工具有JMeter.Profiler: 4)自动构建:对代码进行自动构建和持续集成测试.部署,常用的工具有Ant.Maven.CruiseControl: 5)项目管理:对软件测试中的Bug进行

6.jenkins配置构建触发器实现自动构建

通过前文的配置,jenkins能够实现自动远程部署和邮件通知,但是每次都是手动执行构建 通过"构建触发器"配置,可实现自动构建 在项目配置中的"构建触发器"模块可以配置不同策略的自动构建 这里主要介绍"Build periodically"和"Poll SCM" Build periodically:周期进行项目构建(它不care源码是否发生变化) Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就ch

ant+svn+tomcat实现自动构建

前段时间用做了一个简单的web api服务,在调试的过程中感觉到手动发布实在是效率低而且容易出错,于是花点时间搞了一下ant+svn+tomcat的自动构建,效果不错,今天拿出来分享一下. 准备工作 SVN服务器:VisualSVN-Server-2.5.8.msi,这windows下比较好用的一个svn服务端,安装和配置都很简单. Ant: Ant 1.7(我用的比较老的版本). Ant插件:svnant1.3(http://subclipse.tigris.org/svnant.html),