本指南介绍如何使用 Ant 构建系统为 Java 项目创建执行持续集成 (CI) 的工作流程。 您创建的工作流程将允许您查看拉取请求提交何时会在默认分支上导致构建或测试失败; 这个方法可帮助确保您的代码始终是健康的。 您可以扩展 CI 工作流程以从工作流程运行上传构件。
GitHub 托管的运行器有工具缓存预安装的软件,包括 Java Development Kits (JDKs) 和 Ant。 有关软件以及 JDK 和 Ant 预安装版本的列表,请参阅 GitHub 托管的运行器的规格。
您应该熟悉 YAML 和 GitHub Actions 的语法。 更多信息请参阅:
建议您对 Java 和 Ant 框架有个基本的了解。 更多信息请参阅“Apache Ant 手册”。
GitHub 提供有 Ant 工作流程模板,应该适用于大多数基于 Ant 的 Java 项目。 更多信息请参阅 Ant 工作流程模板。
要快速开始,您可以在创建新工作流程时选择预配置的 Ant 模板。 更多信息请参阅“GitHub Actions 快速入门”。
您也可以通过在仓库的 .github/workflow 目录中创建新文件来手动添加此工作流程。
YAMLname: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Ant
run: ant -noinput -buildfile build.xml
此工作流程执行以下步骤:
checkout 步骤在运行器上下载仓库的副本。
setup-java 步骤配置 Java 1.8 JDK。
“使用 Ant 构建”步骤以非交互模式运行 build.xml 中的默认目标。
在创建构建和测试工作流程时,默认工作流模板是很好的起点,然后您可以自定义模板以满足项目的需求。
初学者工作流程模板使用 GitHub 托管的 ubuntu-latest 运行器将作业配置为在 Linux 上运行。 您可以更改 runs-on 键,让您的作业在其他操作系统上运行。 例如,您可以使用 GitHub 托管的 Windows 运行器。
runs-on: windows-latest
或者,您可以在 GitHub 托管的 macOS 运行器上运行。
runs-on: macos-latest
您还可以在 Docker 容器中运行作业,或者提供在自己的基础架构上运行的自托管运行器。 更多信息请参阅“GitHub Actions 的工作流程语法”。
初学者工作流程模板将 PATH 设置为包含 OpenJDK 8,用于 x64 平台。 如果要使用不同的 Java 版本或面向不同的架构(x64 或 x86),您可以使用 setup-java 操作选择不同的 Java 运行时环境。
例如,要使用 9.0.4 版本的 JDK,用于 x64 平台,您可以使用 setup-java 操作,将 java-version 和 architecture 参数配置为 '9.0.4' 和 x64。
YAMLsteps:
- uses: actions/checkout@v2
- name: Set up JDK 9.0.4 for x64
uses: actions/setup-java@v1
with:
java-version: '9.0.4'
architecture: x64
更多信息请参阅 setup-java 操作。
您可以使用与本地相同的命令来构建和测试代码。
初学者工作流程将运行 build.xml 文件中指定的默认目标。 默认目标通常设置为将类、运行测试和包类设置为其可分发格式,例如 JAR 文件。
如果使用不同的命令来构建项目,或者想要运行不同的目标,则可以指定这些命令。 例如,您可能想要运行在 build-ci.xml 文件中配置的 jar 目标。
YAMLsteps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Run the Ant jar target
run: ant -noinput -buildfile build-ci.xml jar
构建成功且测试通过后,您可能想要上传生成的 Java 包作为构件。 这会将构建的包存储为工作流程运行的一部分,并允许您下载它们。 构件可帮助您在拉取请求合并之前在本地环境中测试并调试它们。 更多信息请参阅“使用构件持久化工作流程”。
Ant 通常会在 build/jar 目录中创建 JAR、EAR 或 WAR 等输出文件。 您可以使用 upload-artifact 操作上传该目录的内容。
YAMLsteps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
- run: ant -noinput -buildfile build.xml
- uses: actions/upload-artifact@v2
with:
name: Package
path: build/jar