对于现有很多持续集成工具来讲,功能越来越高级,使用了 Coding 有大半年时间,越发觉好用,特别是没钱续费服务器时,找到了新的羊毛。

一、众多持续集成工具

  现在可用的持续集成工具繁多,各大云服务商都推出了持续集成,甚至是一定条件内都是免费使用。比如 Azure 提供每个月 1800 分钟的免费时长,支持单项目并行构建,GitHub的GitHubActions,华为云的 DevCloud,阿里云的云效,腾讯云与 Coding 合作的Coding.DevOps 等等。在此推荐一波 Codinghttps://coding.net/

  对于个人开发者而言,能够薅到羊毛,是最为实在的。最近,自己买的的两台羊毛机将到期,没钱续费,并且看到各大云服务商的提供的各种福利,干脆放弃自己搭建持续集成服务。特别是半年前开始接触到 Coding,看到其中许多 Azure 的影子,并且上手后发现很好用(关键是免费),当时只是想要提供的制品库功能用来保存 Docker 镜像(源于 TencentHub 服务的关闭)。

  Coding提供5人以下免费,每周200次持续集成次数,每次限时30分钟,并行任务数1个。  

二、Coding 的使用

1、注册团队账号,填写团队域名,5 人以下团队免费。

2、建立项目,选择模板,提供了各种场景下需要的模板,都是在完整模板上依据功能精简的,不管选择哪个模板,都可以通过功能开关获取到所有功能。 

  选择第二个项目模板,等会更改功能开关获取其他功能。填写项目名称,如 StarCity.Standard

3、配置功能开关,开放更多功能。

  左下角选择并点击项目设置,跳转到设置页面中。

  选择功能开关 Tab,开放更多功能,这些操作和 Azure 中的操作都是差不多的。本次只选择持续集成和制品库,其他关闭。

三、项目搭建及基础配置

1、首先在代码仓库中新建项目,对于代码仓库的选择随意,我更倾向于使用 Gitee,当然也可直接使用 Coding 提供的代码仓库。此处新建了一个仓库方便对照: https://gitee.com/530521314/StarCity.Standard.git

2、新建 AspNetCore 并增加 Dockerfile,整理成常用的目录形式。增加 gitignore、Dockerfile。

  注意:此处 Dockerfile 中我使用腾讯云 Hub 中的一个源,方便构建镜像。 

3、新建制品库,用来保存持续集成后我们需要的目标产物。依据具体用途选择仓库及权限范围。

4、开始配置持续集成,

  点击构建计划,新建计划配置,开始进行持续集成基础配置工作。

  选择持续集成模板,Coding 提供了十几种模板类型,但是没得 AspNetCore 的模板,选择自定义模板,进行配置,当然,已有的这些模板可以点进去看看,学习其中的配置方式。

  配置自定义模板,选择 Gitee 中的代码仓库,注意需要按照提示配置 OAuth,此处主要是依赖 Jenkinsfile 的完成持续集成功能。通过在 Coding 中配置 Jenkinsfile 减少对项目内的倾入(我个人更喜欢这种方式)。

  点击设置按钮,跳转配置 Jenkinsfile 内容。

四、配置 Jenkinsfile

  对于配置 Jenkinsfile内容,Coding 提供了两种方式,直接图形化配置生成 Jenkinsfile 与文本化配置。两种方式可切换使用,内容保持中立。(我更推荐方式二,方式一不太中意)。

方式一:提供了图形化编辑器来构建流程配置。其中对于开始与检出两个步骤,直接忽视,从第三个自定义构建过程开始构建需要的流程。

  点击自定义构建过程,右侧弹出具体配置弹框。本次使用指定 Dockerfile 来构建镜像。其中 Dockerfile 文件名称指定的是项目中 Dockerfile 的相对位置。Dockerfile 所在文件夹是针对于 Build Context 来讲,我们所期望的是针对于整个项目,因此直接使用.(点)。

方式二:使用文本编辑器方式手动构建。此时先忘记方式一的配置,重新开始配置。

1、构建:通过使用环境变量填充具体参数,对于 env 需要的参数在环境变量中进行配置。

  配置环境变量名称及默认值,其中有些如 PROJECT_NAME 等环境变量在该构建计划的系统参数中,无需配置。 

2、推送:通过将构建环节的产物推送到制品库中。增加 Stage,其中需要的环境变量已在构建中配置完毕,并且部分新增加的环境变量为系统变量,无需配置,推送环节也就搞定了。

3、保存并开始构建。

  可点击当前构建记录,查看具体构建过程。如构建过程某环节出问题,则整个构建结束。

  构建全部通过,构建环节顺利完成,对于构建过程还可以增加更多,如单元测试步骤等,本次不添加。 

4、查看构建产物,点击制品库,查看刚推送过来的镜像。

5、在项目设置中,有些方便我们去调用外部服务的功能。如WebHook,在产物构建完毕,可以回调CD服务器,完成后续部署操作,很是方便,当然如果使用其他更高级的编排工具如K8S,则直接忽视吧。

Coding提供了更多丰富的功能可待挖掘,如邮件通知等,这些都可配置齐全。

2020-07-05,望技术有成后能回来看见自己的脚步

AspNetCore&Coding持续集成的更多相关文章

  1. 基于 CODING 的 Spring Boot 持续集成项目

    本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...

  2. 使用 CODING 进行 Hexo 项目的持续集成

    本文作者:CODING 用户 - 廖石荣 关于持续集成的概念 持续集成指的是,频繁地(一天多次)将代码集成到主干. 持续集成的过程 如图所示: CI 过程:代码编写 -> 源代码库(GitHub ...

  3. 基于 CODING 轻松搞定持续集成

    点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...

  4. 拥抱自动化,CODING 2.0 持续集成全新上线

    在文章开始前,做一个小调查,在您的软件项目中集成一行新代码平均需要花多长时间? 15 分钟 一小时 半天 一天及以上 注意这里的集成是指将源码放在一起,并验证源码可以作为一个一致.运行可靠的软件的过程 ...

  5. 持续集成之 Spring Boot 实战篇

    本文作者: CODING 用户 - 何健 这次实战篇,我们借助「CODING 持续集成」,实现一个简单的 Spring Boot 项目从编码到最后部署的完整过程.本教程还有 B 站视频版,帮助读者更好 ...

  6. 一分钟开始持续集成之旅系列之:C 语言 + Makefile

    作者:CODING - 朱增辉 前言 make 工具非常强大,配合 makefile 文件可以实现软件的自动化构建,但是执行 make 命令依然需要经历手动输入执行.等待编译完成.将目标文件转移到合适 ...

  7. AspNetCore&云效Flow持续集成

    如今有了越来越多的持续集成工具,给的个人开发者的福利也是很足了,如无必要,自建工具有时只是作为练手了. 众多持续集成工具 现在可用的持续集成工具繁多,各大云服务商都推出了持续集成,甚至是一定条件内都是 ...

  8. 持续集成 自动化构建、测试、部署您的Coding代码

    持续集成(Continuous Integration)指的是,频繁地(一天多次)将代码集成到主干. 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量. 它的核心措施是,代码集成到主干之前, ...

  9. CODING 敏捷实战系列课第四讲:从头搭建持续集成 DevOps 流水线

    <从头搭建持续集成 DevOps 流水线>由资深敏捷教练.极限编程学院高级讲师.CODING 特邀敏捷顾问李小波老师主讲,将基于 CODING 展示如何编写 Jenkinsfile 搭建 ...

随机推荐

  1. akka-typed(4) - EventSourcedBehavior in action

    前面提到过,akka-typed中较重要的改变是加入了EventSourcedBehavior.也就是说增加了一种专门负责EventSource模式的actor, 最终和其它种类的actor一道可以完 ...

  2. Firewalld 的基本使用

    RHEL 7 系统中集成了多款防火墙管理工具,其中 firewalld(Dynamic Firewall Manager of Linux systems,Linux 系统的动态防火墙管理器)服务是默 ...

  3. JNI_day01

    C语言简介 system()是提供C语言调用系统命令的函数 C语言基本数据类型 C语言中的整数类型:char/short/int/long C中使用ASCII保存字符,所以char所占用的字节数为1 ...

  4. js高阶函数filter、map、reduce

    // 高阶函数 filter/map/reduce // filter中的回调函数有一个要求:必须返回一个boolean值, // 当返回true时,函数内部会自动将这次回调的 n 加入到新的数组中 ...

  5. HashMap常问面试题整理

    去面试时,hashmap总是被经常问的问题,下面总结了几道关于hashmap的问题. 1.hashmap的主要参数都有哪些? 2.hashmap的数据结构是什么样子的?自己如何实现一个hashmap? ...

  6. spring源码解读-ioc

    本系列博客结合我的理解,对spring的ioc进行简单分析,欢迎大家批评指正. beanfactory 我们从beanfactory开始,beanfactory是最根部的容器,描述了整个ioc的一些规 ...

  7. <VCC笔记>VCC简介与安装

    最近在学校跟着老师参与了一个代码验证的工作,需要使用Microsoft Research(微软学术)开发的VCC工具,是开源的,托管在Codeplex上.这东西英语资料极其少,中文资料基本没有.我只能 ...

  8. [CF696D]Legen...

    题目   点这里看题目. 分析   首先对于模式串建立 AC 自动机,并且计算出每个状态\(p\)的贡献总和\(con(p)\).   考虑一个朴素的 DP :   \(f(i,p)\):当前串长度为 ...

  9. 网页元素居中的n种方法

    导语:元素居中对齐在很多场景看上去很和谐很漂亮.除此之外,对于前端开发面试者的基础也是很好的一个考察点.下面跟着作者的思路,一起来看下吧. 场景分析 一个元素,它有可能有背景,那我要它的背景居中对齐 ...

  10. 小师妹学JVM之:JVM的架构和执行过程

    目录 简介 JVM是一种标准 java程序的执行顺序 JVM的架构 类加载系统 运行时数据区域 执行引擎 总结 简介 JVM也叫Java Virtual Machine,它是java程序运行的基础,负 ...