Github Actions是由Github供给的CI/CD服务,它对公共库房是免费的。关于私有库房,每个GitHub账户都能取得必定的免费时间和存储空间,这取决于账户运用的产品。

在这篇博文中,你将学习如何为根据Maven的Java项目运转JUnit 5测验创立一个简略的作业流,以及如安在README.md文件中增加构建状况徽章。

这是Ewelina Fiedorowicz的客座文章,她是一位雄心勃勃的初级Java程序员,对新技术持开放态度,巴望接受新挑战。

目录

  • 问题
  • 解决方案
  • 作业流语法介绍

    • 第1步:检查资源库
    • 第2步:设置JDK 14
    • 第3步:缓存Maven包
    • 第4步:用Maven运转测验
  • 徽章
  • 摘要
  • 源代码
  • 参考文献

问题

在每个push ,用Maven在Java项目中运转JUnit 5测验,并缓存下载的依靠项,以加速后续运转速度。

解决方案

TL;DR

完好的作业流程,由一个包括四个进程的作业组成,用于在Java项目顶用Maven运转JUnit测验的自动化进程。

name: tests
on: push
jobs:
  run_tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the repository
        uses: actions/checkout@v2
      - name: Set up JDK 14
        uses: actions/setup-java@v1
        with:
          java-version: 14
      - name: Cache Maven packages
        uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2
      - name: Run tests with Maven
        run: mvn -B test --file pom.xml

作业流语法介绍

作业流文件运用YAML语法,扩展名为.yml.yaml 。一切作业流文件都必须放在项目根部的.github/workflows 目录中。

你能够创立自己完全定制的作业流,也能够运用Github社区供给的动作。你能够在Github Marketplace中找到它们)。

作业流程由以下部分组成。

  • name (可选):一个作业流名称,将显现在版别库的动作页面上。
  • on (必需的):一个触发作业流的事件( , , , 等等)。你能够指定一个或多个事件,也能够界说要运转的分支或标签。作业流也能够运用cron语法进行调度。push pull request page build
  • env (可选):环境变量。它们能够为整个作业流程、单个作业或某个进程设置。主张运用Github Secrets来向作业流传递令牌或隐秘。隐秘是加密的环境变量,只露出给选定的举动。

在Github Actions文档中了解更多关于存储隐秘的信息。

  • jobs (至少需求一个):它是一个要在运转器上执行的实际使命列表。每个作业必须有一个仅有的标识符,并可能包括几个特点,例如。

    • runs-on (需求):你能够挑选一种机器来运转使命(Windows、Linux或macOS)或你自己的运转器。
    • steps:一连串的使命。每个进程能够是一个简略的shell指令,也能够是一个由各种进程组成的举动。一个动作能够在你自己的资源库、任何其他公共资源库或Docker注册表中界说。有些动作需求输入,能够运用with 关键字来传递。

作业流程的语法能够在Github Actions文档中找到。

第1步:签出版别库

榜首步是签出版别库。为了做到这一点,请运用checkout 动作。

- name: Checkhout the repository
  uses: actions/checkout@v2

第2步:设置JDK 14

要装备 Java 环境,运用setup-java 动作。您能够挑选各种Java版别,包括major、minor和early access。

- name: Set up JDK 14
  uses: actions/setup-java@v1
  with:
    java-version: 14

第3步:缓存Maven包

运用Github社区供给的cache 动作来缓存下载的依靠项和构建输出。Path参数界说了要缓存或康复的运转器上的文件途径。Key参数用于查找缓存。假如没有匹配,将创立一个新的缓存条目,并在途径目录下用所供给的密钥保存。Restore-keys参数是可选的,包括一个备选密钥的列表。

- name: Cache Maven packages
  uses: actions/cache@v2
  with:
    path: ~/.m2
    key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
    restore-keys: ${{ runner.os }}-m2

第四步:用Maven运转测验

最终,运用mvn 指令来运转测验。

- name: Test with Maven
  run: mvn -B test --file pom.xml

徽章

在README.md文件中增加徽章是一种很好的方式,能够向版别库访问者展现你的项目构建正确,一切测验都通过了。

要取得一个作业流的徽章,只需将以下URL中的占位符替换为相关信息。留意,<WORKFLOW_NAME>是在.yml文件的榜首行界说的名字,它不必定是文件名。


要在项目中增加一个徽章,请按以下方式包好徽章的链接,并粘贴在README.md文件的顶部。

![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2a86718351e4445dbb9ec55879512512~tplv-k3u1fbpfcp-zoom-1.image)

徽章将在提交和推送更改到版别库后出现。

总结

作业流成功触发后,你会在Github库房的举动页面中看到日志和结果。Github Actions运用退出代码来界说一个动作是通过还是失败。任何非零的退出代码都被认为是失败。

源代码

这篇文章的源代码能够在Github上找到。

参考文献

  • 用JUnit 5测验Spring Boot
  • Github举动
  • Github徽章
  • Github的隐秘