Post

github action add-and-commit, included update application version

github action은 여러 plugin들을 제공해주는데, PR내에 특정 label을 추가할 떄, 자동으로 application version을 update해주고 commit을 추가해주는 방법에 대해 알아보았다.

​

다행스럽게도 이런 기능을 이미 구현된 plugin이 존재했고, 이 plugin을 추가해서 version update하고 commit을 추가하는 github action을 작성해보았다.

​

앞서 task 정의는 아래 링크를 통해 확인할 수 있다.

https://blog.naver.com/kkforgg/223197409843

Gradle extract function and gradle version management

gradle project의 버전 관리에 대해 작성합니다. 구조 gradle version을 major, minor, patch로 구조로 나…

add&commit plugin

https://github.com/marketplace/actions/add-commit

Add & Commit - GitHub Marketplace

Automatically commit changes made in your workflow run directly to your repo

​

name: version-update
run-name: check version update
on:
  pull_request:
    types:
      - labeled
env:
  GITHUB_WORKFLOW_URL: ${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}
jobs:
  update-project-version:
    runs-on: self-hosted
    steps:
      - name: checkout
        uses: actions/checkout@v3
        with:
          ref: ${{ github.event.pull_request.head.ref }}
      - name: setup jdk 17
        uses: actions/setup-java@v2
        with:
          java-version: '17'
          distribution: 'adopt'
      - name: Setup gradle
        uses: gradle/gradle-build-action@v2.4.2
      - name: execute gradle major version update
        if: contains(github.event.pull_request.labels.*.name, 'major')
        run: ./gradlew --no-daemon --no-parallel major-version-update
      - name: execute gradle minor version update
        if: contains(github.event.pull_request.labels.*.name, 'minor')
        run: ./gradlew --no-daemon --no-parallel minor-version-update
      - name: execute gradle patch version update
        if: contains(github.event.pull_request.labels.*.name, 'patch')
        run: ./gradlew --no-daemon --no-parallel patch-version-update
      - name: add commit of major version update
        if: contains(github.event.pull_request.labels.*.name, 'major')
        uses: EndBug/add-and-commit@v9
        with:
          committer_name: github-actions[bot]
          committer_email: ${{github.author_email}}
          message: "major version update"
          add: '.'
          push: true
          commit: --signoff
          force: true
      - name: add commit of minor version update
        if: contains(github.event.pull_request.labels.*.name, 'minor')
        uses: EndBug/add-and-commit@v9
        with:
          committer_name: github-actions[bot]
          committer_email: ${{github.author_email}}
          message: "minor version update"
          add: '.'
          push: true
          commit: --signoff
          force: true
      - name: add commit of patch version update
        if: contains(github.event.pull_request.labels.*.name, 'patch')
        uses: EndBug/add-and-commit@v9
        with:
          committer_name: github-actions[bot]
          committer_email: ${{github.author_email}}
          message: "patch version update"
          add: '.'
          push: true
          commit: --signoff
          force: true

​

This article is licensed under CC BY 4.0 by the author.