drone 0.8.8 集成gogs 进行ci/cd 处理
drone 是一个不错的基于容器的ci/cd 工具,运行简单,同时插件也挺多,基本常见的轻量级的任务都是可以搞定的
环境准备
使用docker in docker
- docker-compose 文件
version: '3'
services:
gogs:
image: gogs/gogs
ports:
- "10022:22"
- "3000:3000"
volumes:
- ./data/gogs:/data
depends_on:
- mysql
drone-db:
image: mysql:5.7.16
volumes:
- ./gogs/mysql:/var/lib/mysql
ports:
- 3309:3306
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: dalongrong
MYSQL_DATABASE: drone
MYSQL_USER: drone
MYSQL_PASSWORD: dalongrong
TZ: Asia/Shanghai
mysql:
image: mysql:5.7.16
volumes:
- ./drone-db/mysql:/var/lib/mysql
ports:
- 3308:3306
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: dalongrong
MYSQL_DATABASE: gogs
MYSQL_USER: gogs
MYSQL_PASSWORD: dalongrong
TZ: Asia/Shanghai
drone-server:
image: drone/drone:0.8.8
ports:
- "8000:8000"
volumes:
- ./drone:/var/lib/drone/
environment:
- DRONE_OPEN=true
- DRONE_HOST=http://10.6.197.9:8000 ## drone server 访问地址
- DRONE_DEBUG=true
- DRONE_DATABASE_DRIVER=mysql
- DRONE_DATABASE_DATASOURCE=root:dalongrong@tcp(drone-db:3306)/drone?parseTime=true
- DRONE_GOGS=true
- DRONE_GOGS_URL=http://gogs:3000
- DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw
- DRONE_SECRET=ALQU2M0KdptXUdTPKcEw
drone-agent:
image: drone/agent:0.8.8
depends_on:
- drone-server
environment:
- DRONE_SERVER=drone-server:9000
- DRONE_SECRET=ALQU2M0KdptXUdTPKcEw
- DRONE_DEBUG=true
- DOCKER_HOST=tcp://docker-bind:2375
docker-bind:
image: docker:dind
privileged: true
command: --storage-driver=overlay ## docker 文件存储的类型,需要结合操作系统,或者选择默认
- 启动并配置gogs
配置比较简单,参考界面提示进行操作就可以了
docker-compose up -d
- 效果
配置drone 构建的项目
- 项目添加.drone.yml
pipeline:
frontend:
image: node:9
commands:
- echo 'this is a demo app'
- echo 'demoapp'
- 登陆drone 启用构建
说明,因为都是本地环境,会有一个webhook url 的问题,drone 调用api 写入的是localhost:8000 造成webhook 无法生效,可以参考如下配置
进入到gogs 项目
修改代码并测试
- 修改gogs git 仓库代码
很简单,随便修改几个文件就可以了 - 效果
参考资料
https://0-8-0.docs.drone.io/install-for-gogs/
https://0-8-0.docs.drone.io/installation/
drone 0.8.8 集成gogs 进行ci/cd 处理的更多相关文章
- 自建Git服务Gogs和CI/CD服务Drone
自建Git服务Gogs和CI/CD服务Drone 项目:https://gogs.io Gogs运行 docker run -d --name=gogs -p 10022:22 -p 10088:30 ...
- 手把手详解持续集成之GitLab CI/CD
一.环境准备 首先需要有一台 GitLab 服务器,然后需要有个项目:这里示例项目以 Spring Boot 项目为例,然后最好有一台专门用来 Build 的机器,实际生产中如果 Build 任务不频 ...
- Docker——Jenkins + Git + Registry构建自动化持续集成环境(CI/CD)
前言 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD). 本文基于Jenkins+Docker+G ...
- Gitea 与 Jenkins 的集成实践,打造你的专属 CI/CD 系统
前言 Gitea 是一个用于代码托管的轻量级单体程序,它能与现有的经典应用集成,诸如代码分析工具 SonarQube.持续集成工具 Drone.Jenkins 以及用于工单管理的客户端插件(VSCod ...
- 超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
在2018年年初,Jenkins X首次发布,它由Apache Groovy语言的创建者Jame Strachan创建.Jenkins X 是一个高度集成化的 CI/CD 平台,基于 Jenkins ...
- k8s-jenkins x CI/CD 动态创建slave---01
jenkins CI/CD(动态创建slave)简述: 由于之前管理kubernetes集群应用发布,用的是Gitlab-CI,用作开发环境管理还可以,生产环境管理发布,缺点太多,打包速度很慢.研究新 ...
- GitLab CI/CD的官译【原】
CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...
- 好代码是管出来的——使用GitHub实现简单的CI/CD
软件开发一般来说是一项团队作业,在本系列文章开始就提到过软件的编码是由一个团队“并行”完成的,为了保证编码任务正常完成,首先引入版本控制工具来完成代码管理,为了保证代码质量引入了代码分析器以及代码测试 ...
- 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
什么是CI/CD 持续集成(Continous Intergration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每 ...
随机推荐
- DevExpress WinForms使用教程:WinForms Fluent Design和Acrylic Effects
在先前的版本发布中,宣布支持Fluent Design Form和Acrylic effects——旨在复制Microsoft下一代UI metaphor的新功能.本文主要介绍如何实现此功能,并明确说 ...
- Chrome浏览器录屏扩展插件
Chrome浏览器录屏扩展插件,可以录制网页操作或者桌面操作.生成MP4 Loom https://chrome.google.com/webstore/detail/loom-video-recor ...
- 安装和配置HyperServer
总述 安装和配置HyperServer非常简单.直接. uniGUI安装程序在.. \uniGUI\HyperServer\bin\文件夹(\bin64\用于64位二进制文件)下分发了HyperSer ...
- 【git学习笔记】
一.查看git的配置文件 1.在项目下,有一个.git的隐藏文件 2.config为git的配置文件 3.查看config :branch表示分支,此配置文件表示当前有两个分支NNU和master,一 ...
- ORACLE提示表名无效
在创建ORACLE数据库时,创建表 提示表名无效 请查看数据库表名是否出现了小写字母或者关键字,如USER
- CNN 参数计算
CNN 时间计算复杂度与空间复杂度 即,连续个数与参数个数, 每一个连接都意味着一个计算, 每一个参数都意味一个存储单元. 只计算主要部分. CNN局部连接与权值共享 如图所示: 全连接:如左图所示, ...
- 【转载】 深度学习总结:用pytorch做dropout和Batch Normalization时需要注意的地方,用tensorflow做dropout和BN时需要注意的地方,
原文地址: https://blog.csdn.net/weixin_40759186/article/details/87547795 ------------------------------- ...
- JavaScript ES6格式化字符串方法
js想要动态更新文本内容,在ES5中没有格式化字符串的方法,在ES6中是有字符串格式化的方法的. 使用左上角数字1旁边的符号定义字符串.先定义好需要拼接的字符串,在字符串内部使用 ${变量名} 进行拼 ...
- MySQL中的存储过程和函数使用详解
一.对待存储过程和函数的态度 在实际项目中应该尽量少用存储过程和函数,理由如下: 1.移植性差,在MySQL中的存储过程移植到sqlsever上就不一定可以用了. 2.调试麻烦,在db中报一个错误和在 ...
- Java单链表简单实现* @version 1.0
package com.list; /** * 数据结构与算法Java表示 * @version 1.0 * @author 小明 * */ public class MyLinkedList { p ...