对于现有很多持续集成工具来讲,功能越来越高级,使用了 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. Java实现 LeetCode 9 回文数

    9. 回文数 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false ...

  2. Java实现 蓝桥杯 历届试题 横向打印二叉树

    问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树时,则把该节点放入那个位置. 比如,10 8 5 7 ...

  3. Java实现 蓝桥杯 历届试题 城市建设

    问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修.市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他. C市中有n个比较重要的地点,市长希望这些地点重点被考虑.现在 ...

  4. java实现第三届蓝桥杯机器人行走

    机器人行走 [编程题](满分18分) 某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). ...

  5. Java实现第九届蓝桥杯星期一

    星期一 整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一? (不要告诉我你不知道今天是星期几) 注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字. 解: ...

  6. CSS 简介/特点/优势/给特定浏览器提供不同样

    1.CSS简介 CSS全称Cascading Style Sheet,可译为“层叠样式表”或“级联样式表”,通常称为CSS样式或者样式表.CSS是一些纯文本内容,文件格式为.css. 2.CSS特点 ...

  7. css3图片防止变形

    1.object-fit 由于图片原始大小都不一样,强行设定大小值会导致拉伸,如果不设定大小则参差不齐. 之前我们大多数用的 大多数都是利用background-size: cover 来避免对图片造 ...

  8. DevOps系列——Jenkins/Gitlab自动打包部署

    前面只说了DevOps的两个基础组件Jenkins和GitLab,客官也不要着急,我们玩就玩的深入一点,Gitlab和Jenkins的各种配置和 插件很多,也够啃一阵子的,不要照着操作一通就感觉万事大 ...

  9. 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台

    背景 从传统运维到容器化的 Docker Swarm 编排,从 Docker Swarm 转向 Kubernetes,然后在 Kubernetes 运行 SpringCloud 微服务全家桶,到最终拥 ...

  10. [源码解析] Flink的groupBy和reduce究竟做了什么

    [源码解析] Flink的groupBy和reduce究竟做了什么 目录 [源码解析] Flink的groupBy和reduce究竟做了什么 0x00 摘要 0x01 问题和概括 1.1 问题 1.2 ...