代码之家  ›  专栏  ›  技术社区  ›  Luca D'Amico

使用GitHub工作流将上周的所有提交推送到master

  •  -1
  • Luca D'Amico  · 技术社区  · 2 年前

    我想创建一个GitHub工作流来显示上周(当前日期和当前日期减去7天之间)推送到master的所有提交。

    到目前为止,这是我的想法:

    1. 获取当前日期:这很容易,而且已经得到了答复 here

    2. 从当前日期减去7天:我还不知道如何以一致的方式做到这一点。

    3. 获取这两个日期之间的提交列表:这可以很容易地通过 git log 命令如所述 here ,但是如何在GitHub工作流Yaml中转换?

    我能就第2点和第3点提出一些建议吗?或者,如果有什么更简单的方法可以实现我的需求,请告诉我。

    0 回复  |  直到 2 年前
        1
  •  1
  •   marc_s    2 年前

    我找到了一个适合我需求的解决方案,这也要感谢@phd的评论。

    我会把它写在这里,这样未来的用户就可以从中受益。

    首先,我发现了一个很好的应用程序,名为 act 这允许您在本地测试github工作流脚本(而不需要创建大量的提交来测试脚本)。

    工作脚本如下:

    name: GH-Workflow-Test
    
    on:
      push:
    
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
        - name: Checkout
          uses: actions/checkout@v3
          with:
            fetch-depth: '0'
    
        - name: Get Weekly Commits
          run: |
            echo 'WEEKLY_COMMITS<<EOF' >> $GITHUB_ENV
            git log --format=%B --since=7.days >> $GITHUB_ENV
            echo 'EOF' >> $GITHUB_ENV
    
        - name: Print Commits List
          run: echo ${{ env.WEEKLY_COMMITS }}
    

    EDIT:无需“tr”命令即可更新代码。不要忘记设置获取深度:“0”,否则您将只能检索最后一次提交。