提取POM版本,用于Github Actions中的作业

我正在尝试使用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)

任何人都知道如何做。

iCMS 回答:提取POM版本,用于Github Actions中的作业

您可以问Maven using 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的<containerizingMode>packaged配置,否则不需要mvn packagemvn compile jib:...就足够了(并且速度稍快)。

本文链接:https://www.f2er.com/2057908.html

大家都在问