在 Jenkins 中构建 Eclipse 开发的 Android 项目

本文只是对之前的资料进行一个整理与汇总,毕竟已经 9102 年了,大概已经没有不用 Android Studio 开发的 Android 项目了 :doge:。

问题

Android Studio 与早期 Eclipse 所使用的构建脚本语言不同,Eclipse 是 Ant,Android Studio 则使用 Gradle,两者均是通过调用 Android SDK 进行编译构建。

但是很多时候 Eclipse 开发的 Android 项目代码在仅有 Android 编译环境中,通过 CLI 命令调用 Ant 脚本构建时却无法编译成功。

原因是 Eclipse 中默认使用 Java 编译器并非 Oracle JDK/OpenJDK 而是 Eclipse 的 Eclipse Java development tools (JDT) 中的 Eclipse Compiler for Java (ECJ),正是编译器的差异造成了这些问题。

[阅读全文]

使用 Jenkins Blue Ocean 构建 Android 项目

Blue Ocean 是 Jenkins 推出的一套新的 UI,对比经典 UI 更具有现代化气息。2017 年 4 月 James Dumay 在博客上正式推出了 Blue Ocean 1.0

兼容 Blue Ocean 的 Jenkins 版本只需要安装插件即可使用,对于已经在使用 Pipeline 构建的 Jenkins Job 基本可以无缝切换到新 UI。

以构建 Android 项目为例,学习如何使用 Jenkins Blue Ocean 与 Pipeline,示例项目可以在 GitHub 上查看:

https://github.com/TomCzHen/jenkins-android-sample

[阅读全文]

用 Gradle 处理 Android 签名配置

公司 Android 项目终于由 Eclipse 迁移到 Android Studio 上了,需要将之前在 Jenkins 上的构建任务修改一下支持 gradle 构建。 出于信息安全需要,开发人员不掌握生产环境使用的签名证书,但是 Jenkins 构建时需要自动的使用生产签名证书进行打包签名。

[阅读全文]

使用 SaltStack 在 Windows 服务器上发布 Web 应用 - Part 1

由于公司业务发生变化,之前单纯的使用 SVN 仓库钩子发布、更新 IIS 站点无法满足新的需求。对比 Ansible、Puppet、SaltStack 之后选择了 SaltStack 作为运维工具。

选择 SaltStack 的原因如下:

  • Puppet 使用 Ruby,而 Ansible 和 SaltStack 使用 Python。人生苦短,我选 Python, Pass。
  • Ansible 是 agent-less 方案,通过 WinRM(Windows Remote Management) 来支持 Windows 管理。恩,稍微看了下 WinRM 的认证方案,太麻烦,Pass。

由于篇幅较长,所以分为两部分,第一部分是完成部署 SaltStack,实现使用命令行来发布更新。第二部分使用 Jenkinssalt-api,实现自动持续集成。

[阅读全文]