【问题标题】:Generate unique string in Github Actions在 Github Actions 中生成唯一字符串
【发布时间】:2021-06-01 13:11:08
【问题描述】:

我对 Github Actions 中的工作有以下 env 定义:

jobs:
  build-test-deploy:
    runs-on: ubuntu-latest
    env:
      FOO : foobar-${{ github.sha }}
      BAR : BAZ

但是,当重新运行相同的工作流且中间没有任何提交时,github.sha 保持不变。我需要 FOO 对于每次运行都是唯一的(即使从技术上讲是重新运行),独立于提交。

我正在考虑的两个选项:

  • 要么生成随机字符串
  • 或获取当前的 unix 时间戳

我不知道如何在env: 指令的上下文中获取这些值。在steps 中可以使用一些操作,但是如何直接从env 指令中获取这种唯一值呢?

【问题讨论】:

  • 据我所知,您无法从标准的 GitHub Action 上下文中获取日期,因此除了您下面的解决方案之外,我认为没有简单的方法可以做到这一点。请注意,即使重新运行,run_idrun_number 也不是唯一的。

标签: unique github-actions


【解决方案1】:
jobs:
  build-test-deploy:
    runs-on: ubuntu-latest
    env:
      BAR : BAZ

    steps:
      - name: generate FOO unique variable based on timestamp
        run: echo FOO=foobar--$(date +%s) >> $GITHUB_ENV

      - name: other step that needs FOO
        run: echo ${{ env.FOO }}

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 2021-11-05
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2017-02-21
    • 2021-07-08
    相关资源
    最近更新 更多