【问题标题】:Bump date-based tag in GitHub Actions在 GitHub Actions 中添加基于日期的标签
【发布时间】:2022-01-17 09:08:00
【问题描述】:

我正在尝试使用发布标签基于日期的 GitHub Actions 创建 project 的自动发布。我不想使用标准语义版本控制,因为这个项目是另一个使用基于日期的版本控制的项目的分支。我发现了有关在工作流程中获取日期的帖子,并且到目前为止:

name: Publish

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  publish:
    name: Publish release of font files
    runs-on: ubuntu-latest
    steps:
      - name: Create foo file
        run: |
          mkdir cascadios
          > cascadios/foo.txt
          
      - name: Get tag name from date
        id: tag_name
        run: echo "::set-output name=date::$(date +'%y%m.%d')"

      - name: Zip font files
        run: |
          cd cascadios
          zip ../cascadios-${{ steps.tag_name.outputs.date }}.zip *
          cd ..

      - name: Create tag
        uses: mathieudutour/github-tag-action@v6.0
        id: tag_version
        with:
          github_token: ${{ github.token }}
          custom_tag: ${{ steps.tag_name.outputs.date }}

注意:我让它创建一个空白文件来释放以节省 15 分钟的构建时间。

这很好用,直到我在一天内发布了两个版本(例如今天我正在大量测试此工作流程)。我怎样才能得到它,这样我就可以在标签中添加一个动态补丁号,这样就不会引起冲突?一个示例可能类似于 v2112.13.0。

【问题讨论】:

    标签: tags github-actions versioning


    【解决方案1】:

    您可以使用我们的版本控制库 - https://github.com/relizaio/versioning

    然后您可以将版本模式声明为:YYYY.0M.0D.Micro

    然后以下命令将生成一个基本版本:

    docker run --rm relizaio/versioning -s YYYY.0M.0D.Micro
    

    现在,如果您已经有一个版本,比如 2021.12.14.1 并且想要升级它,您可以这样做

    docker run --rm relizaio/versioning -s YYYY.0M.0D.Micro -v 2021.12.14.1 -a bump
    

    如果您在 12 月 14 日调用它,这将产生 2021.12.14.2,如果您在 12 月 15 日调用此命令,则会产生 2021.12.15.0。

    【讨论】:

    • 太酷了!我不知道“CalVer”有一个名字,所以以后要坚持下去。有没有办法格式化使得年月之间没有分隔符?即,YY0M 代表 2112?尝试使用 YY0M 时出现 RuntimeException。
    • 谢谢!该库目前主要依赖于分隔符,我们在自述文件中列出了支持的选项,但我想我可以添加YY0M 和YYYY0M - 应该是微不足道的,今天晚些时候会尝试提交。
    • 那太棒了!谢谢!
    • 此外,虽然这可能是一个重大更改,但可能值得添加一个“静默”分隔符(不显示在输出中)或基于% 进行变量替换,就像使用 Linux date.
    • 现在应该支持 YYOM - 请试一试。关于静音分隔符,我会考虑,但这将是一个很大的变化。因为当我们固定版本时,目前正在积极使用分隔符 - 即您可以将一个 pin 设置为 2112.12.Micro - 它只会在不更改日期的情况下碰撞 Micro(例如 Ubuntu 版本控制,例如当他们发布补丁时)。顺便说一句,如果你想保持联系 - 随时加入 DevOps 社区 Discord - devopscommunity.org - 你总是可以在那里找到我。
    猜你喜欢
    • 2014-03-11
    • 2021-11-05
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    相关资源
    最近更新 更多