使用 GitHub Actions 自动获取推送的分支名称并提交提交(commit)的方法(使用 Node.js)

首先

通过进行本文中所述的解释,可能可以提高在存储库中存在多个生产分支时的Github Actions设置的效率。

我主要负责SRE工作,其中在使用Node.js的电子商务网站中,有一个任务是使用多个正式分支作为仓库的结构,以master为基础进行开发和运营类似于master的电子商务网站的任务。

在这个任务中,由于主要分支不断增加,每次都需要创建 GitHub Actions 的 yml 文件,这样做很麻烦。因此,我想办法自动获取推送的分支名称,并将其提交。终于成功地创建了一个很好的 yml 文件,现在我想分享给大家。

在一般的Git代码库中,通常会像分割主分支和开发分支一样进行切割,然后通过拉取请求合并开发分支,因此很少会出现有多个生产分支的情况。但是,通过更改本文中介绍的yml配置,可以自动获取开发分支的分支名称并进行处理。希望这可以给你提供一些参考。

使用的库(使用的程式库)

在这篇文章中,我们使用了stefanzweifel/git-auto-commit-action的yml来自动提交。
这个库可以在Github Actions中轻松实现自动提交。
链接

配置文件

這是一個設定檔案。專為Node.js建構而製,但稍微修改後也可用於其他專案。稍後會進行解說。

name: node js CI

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js
      uses: actions/setup-node@v2
      env:
        BRANCH: "${GITHUB_REF#refs/heads/}"
    - run: |
        npm i
        npm run build --if-present
    - name: Commit output
      uses: stefanzweifel/git-auto-commit-action@v4.2.0
      with:
        commit_message: "自動ビルド:${{github.sha}}"
        branch: ${{ env.BRANCH }}

解释一下。首先,我们使用
on:
push:

让工作流适用于所有推送操作。

接下来是这一部分。在这里,我们设置了环境变量传入的分支名称和提交消息。
通过BRANCH: “${GITHUB_REF#refs/heads/}”,我们获取了被推送的分支名称。
在这里设置的环境变量可以通过env.~进行引用。

env:
        BRANCH: "${GITHUB_REF#refs/heads/}"

然后在这里自动提交。
声明使用uses的stefanzweifel/git-auto-commit-action@v4.2.0
通过commit_message: “自动构建:${{github.sha}}”设置提交消息。
使用${{github.sha}}引用提交ID。
提交消息将变为自动构建:自动构建:015a2b~的样子。
我认为在提交消息中包含ID可以更容易地查看后面的内容,所以我尝试加入了它。
如果不需要,也可以将其设置为”自动构建”。

在这里,我们使用{{ env.BRANCH }}分支设置并提交了push的分支。在这里我们引用了先前获取并设置为环境变量的分支。

- name: Commit output
      uses: stefanzweifel/git-auto-commit-action@v4.2.0
      with:
        commit_message: "自動ビルド:${{github.sha}}"
        branch: ${{ env.BRANCH }}

关于Node.js的编写

对于此name部分和npm命令,如果不使用nodejs,可以将其更改为适用于nodejs的命令,这样就可以了。

– run: |
npm install
npm run build –if-present

总结

获取上述推送的分支名称并进行提交和推送的yml文件。
您可以在下面提供的我的存储库中进行操作验证,以确认其运行方式,就像playground一样。
https://github.com/KouWakai/github-actions-test

请参考

广告
将在 10 秒后关闭
bannerAds