【问题标题】:Extract POM version, for a job from Github Actions提取 POM 版本,用于来自 Github Actions 的作业
【发布时间】:2020-10-16 02:39:01
【问题描述】:

我正在尝试使用 Github Actions 进行测试以自动构建我的 docker 容器。

在我的 POM 中,我使用 JIB 创建的 docker 映像的版本,我从我的项目版本中提取它。

<groupId>io.xxx.my-proyect</groupId>
<artifactId>my-proyect</artifactId>
<version>0.2.0-SNAPSHOT</version>
<name>my-proyect</name>
 ...

<plugin>
 <groupId>com.google.cloud.tools</groupId>
 ....
   <to>
    <image>XXX/my-proyect:${version}</image>
   </to>
 </plugin>

Github 操作:

- name: package
      run: ./mvnw package jib:dockerBuild
    - name: push
      run:  docker push xxx/my-proyect:VERSION (<-- Extract from version property of my POM)

任何人都知道怎么做。

【问题讨论】:

    标签: github-actions jib


    【解决方案1】:

    你可以问Mavenusing maven-help-plugin

    mvn help:evaluate -Dexpression=project.version -q -DforceStdout
    

    如果该命令没有打印任何内容(因为-q 抑制了包括评估版本在内的所有输出),那么可能是因为使用的maven-help-plugin 太旧了。如果是这样,您可以像这样固定版本:

    mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout
    

    或者,您可以将版本 3.2.0 固定在您的 pom.xml 或父级 pom.xml(如果适用)中。

    请注意,运行 Maven 命令总是需要一些时间,因此它可能会增加几秒钟的构建时间。传递 --offline 可能会有所帮助(如果有效(或可能没有那么多))。


    或者,您可以运行 jib:build 而不是 jib:dockerBuild 让 Jib 直接推送到 xxx/my-project:VERSION。查看您的 YAML,似乎没有任何充分的理由运行 jib:dockerBuild 后跟 docker push。在这种情况下使用 jib:build 将大大缩短您的构建时间,因为 Jib 在推送到本地 Docker 守护程序时会失去很多性能优化。


    UDPATE:另外,除非您使用 Jib 的 &lt;containerizingMode&gt;packaged 配置,否则您不需要 mvn packagemvn compile jib:... 就足够了(而且速度稍快)。

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2020-07-19
      • 2021-04-03
      • 2021-11-12
      • 2021-05-13
      • 2023-02-15
      • 2021-08-28
      • 2022-07-10
      • 2021-06-18
      相关资源
      最近更新 更多