美文网首页
gitlab-CI中使用tag作为版本号硬编译进程序中

gitlab-CI中使用tag作为版本号硬编译进程序中

作者: sunix | 来源:发表于2018-12-14 15:46 被阅读0次

    在使用gitlab过程中,我发现如果能直接将gitlab的tag与自动生成的软件版本做成一致的话,在后续的维护上会更加方便.于是研究了一番如何将tag作为版本号硬编译进程序中的方法.主要是一下几个方面:

    • 在gitlab-ci.yml中,通过

        only:
            - tags
      

    指定只对tag生效

    • gitlab-ci.yml中内置 $CI_COMMIT_REF_NAME 得到当前的tag

    使用c++

    • 生成version.h文件,在gitlab-ci.yml中

        - echo "#pragma once" > inc/version.h
        - echo "#define __VERSION__  \"$CI_COMMIT_REF_NAME\"" >> inc/version.h
      
    • 在代码中通过 #include "version.h" 并使用 __VERSION__ 宏来操作版本号

    使用go

    可以使用类似c++的方式,生成version.go文件来实现,也可以编译命令中直接修改源文件中指定的值,比如:

    version.go中:

    package version
    
    var Version = "unknown"
    

    那么在gitlab-ci.yml中就可以

    go build -ldflags "-X version.Version '$CI_COMMIT_REF_NAME\'"
    

    即可将Version修改为当前tag

    相关文章

      网友评论

          本文标题:gitlab-CI中使用tag作为版本号硬编译进程序中

          本文链接:https://www.haomeiwen.com/subject/ayyghqtx.html