注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
简介
本指南介绍如何使用 Ant 构建系统为 Java 项目创建执行持续集成 (CI) 的工作流程。 您创建的工作流程将允许您查看拉取请求提交何时会在默认分支上导致构建或测试失败; 这个方法可帮助确保您的代码始终是健康的。 您可以扩展 CI 工作流程以从工作流程运行上传构件。
GitHub 托管的运行器具有预安装了软件的工具缓存,包括 Java 开发工具包 (JDK) 和 Ant。 有关 JDK 和 Ant 的软件和预安装版本列表,请参阅“使用 GitHub 托管的运行器”。
先决条件
你应该熟悉 YAML 和 GitHub Actions 的语法。 有关详细信息,请参阅:
建议您对 Java 和 Ant 框架有个基本的了解。 有关详细信息,请参阅 Apache Ant 手册。
在 GitHub Enterprise Server 上使用自托管的运行器
在包含自承载运行器的 GitHub Enterprise Server 上使用设置操作(例如 actions/setup-LANGUAGE
)时,可能需要在无法访问 Internet 的运行器上设置工具缓存。 有关详细信息,请参阅“在未接入互联网的自托管运行器上设置工具缓存”。
使用 Ant 工作流模板
若要快速开始使用,请将工作流模板添加到存储库的 .github/workflows
目录。
GitHub 为 Ant 提供了一个工作流模板,适用于大多数基于 Ant 的 Java 项目。 本指南的后续部分提供了如何自定义此工作流模板的示例。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “操作”。
-
如果存储库中已有工作流,请单击“新建工作流”。
-
“选择工作流”页面显示一系列推荐的工作流模板。 搜索“Java with Ant”。
-
在“Java 与 Ant”工作流上,单击“配置”。
如果未找到“基于 Ant 的 Java”工作流模板,请将以下工作流代码复制到存储库的
.github/workflows
目录中名为ant.yml
的新文件。YAML name: Java CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 11 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' - name: Build with Ant run: ant -noinput -buildfile build.xml
name: Java CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 11 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' - name: Build with Ant run: ant -noinput -buildfile build.xml
-
根据需要编辑工作流。 例如更改 Java 版本。
-
单击“提交更改”。
指定 Java 版本和体系结构
工作流模板将 PATH
设置为包含 OpenJDK 8,用于 x64 平台。 如果要使用不同的 Java 版本或面向不同的体系结构(x64
或 x86
),可以使用 setup-java
操作选择不同的 Java 运行时环境。
例如,要使用由 Adoptium 提供的 11 版本的 JDK,用于 x64 平台,可以使用 setup-java
操作并将 java-version
、distribution
和 architecture
参数配置为 '11'
、'temurin'
和 x64
。
steps: - uses: actions/checkout@v4 - name: Set up JDK 11 for x64 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' architecture: x64
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11 for x64
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
architecture: x64
有关详细信息,请参阅 setup-java
操作。
构建和测试代码
你可以使用与本地相同的命令来构建和测试代码。
工作流模板将运行 build.xml 文件中指定的默认目标。 默认目标通常设置为将类、运行测试和包类设置为其可分发格式,例如 JAR 文件。
如果使用不同的命令来构建项目,或者想要运行不同的目标,则可以指定这些命令。 例如,你可能想要运行在 _build-ci.xml_
文件中配置的 jar
目标。
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Run the Ant jar target run: ant -noinput -buildfile build-ci.xml jar
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Run the Ant jar target
run: ant -noinput -buildfile build-ci.xml jar
将工作流数据打包为构件
构建成功且测试通过后,你可能想要上传生成的 Java 包作为构件。 这会将构建的包存储为工作流程运行的一部分,并允许你下载它们。 构件可帮助你在拉取请求合并之前在本地环境中测试并调试它们。 有关详细信息,请参阅“从工作流存储和共享数据”。
Ant 通常会在 build/jar
目录中创建 JAR、EAR 或 WAR 等输出文件。 可以使用 upload-artifact
操作上传该目录的内容。
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - run: ant -noinput -buildfile build.xml - uses: actions/upload-artifact@v3 with: name: Package path: build/jar
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- run: ant -noinput -buildfile build.xml
- uses: actions/upload-artifact@v3
with:
name: Package
path: build/jar