Catatan

Beberapa catatan sebelum mengikuti tutorial ini

  1. Diharapkan sudah mengerti cara menggunakan git

  2. Tahu dasar pengunaan git tag

  3. Tahu dasar penggunaan github actions

  4. Ada bug di image anothrNick/github-tag-action yang ga akan nge-bump version tapi ada solusinya dengan menggunakan image temporary dari alexaybluescape


Auto Semver Tag Github Actions

  1. Buat satu file workflows, di folder .github/workflows/deploy_master.yml
name: Automation Semver Tag & Release  
on:
  push:
    branches:
      - master

jobs:
  create-tag:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout git
      uses: actions/checkout@v2
      with:
        ref: ${{ github.head_ref }}
        fetch-depth: 0

    - name: Bump version and push tag
      uses: anothrNick/github-tag-action@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        WITH_V: true
        DEFAULT_BUMP: none
        RELEASE_BRANCHES: master
        VERBOSE: true
        DRY_RUN: false #activate this for testing
  1. Apabila sebelumnya belum pernah push tag, silahkan push tag terlebih dahulu (anggap saja sebagai first version)
#karena kita akan menggunakan semver
#maka kita akan gunakan 3 digit
#untuk awalan, kita gunakan v1.0.0
#v1.0.0 artinya versi 1 major, 0 minor, 0 patch
git tag v1.0.0

#lalu push
git push origin tag v1.0.0
  1. Lalu kita coba ubah file di repo, lalu commit menggunakan message #major, #minor, #patch
git commit -m "test #patch
Version Tidak Naik

Version Tidak Naik

  1. Seperti yang sudah saya singgung di catatan, untuk sementara kita akan menggunakan image github alternatif
name: Automation Semver Tag & Release  
on:
  push:
    branches:
      - master

jobs:
  create-tag:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout git
      uses: actions/checkout@v2
      with:
        ref: ${{ github.head_ref }}
        fetch-depth: 0

    - name: Bump version and push tag
      # uses: anothrNick/github-tag-action@master
      # it got bug, it doesnt bump tag
      # please check https://github.com/anothrNick/github-tag-action/issues/150#issuecomment-1116742134
      uses: alexeyatbluescape/github-tag-action@bugfix/semver-empty-results
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        WITH_V: true
        DEFAULT_BUMP: none
        RELEASE_BRANCHES: master
        VERBOSE: true
        DRY_RUN: false #activate this for testing

Lalu kita coba commit lagi, kali ini dengan message #minor

git commit -m "#minor test lagi"
Bump Version Sukses!

Bump Version Sukses!

Tags v1.1.0 Otomatis Di buat

Tags v1.1.0 Otomatis Di buat


Auto Semver Tag & Release

Kali ini kita ga akan cuma bikin auto bump tag, tapi akan ada auto release juga. Versi release ini di ambil dari tag terakhir yang di buat

  1. Ubah file deploy_master.yml yang tadi di buat
name: Automation Semver Tag & Release  
on:
  push:
    branches:
      - semver

jobs:
  create-tag:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout git
      uses: actions/checkout@v2
      with:
        ref: ${{ github.head_ref }}
        fetch-depth: 0

    - name: Bump version and push tag
      # uses: anothrNick/github-tag-action@master
      # it got bug, it doesnt bump tag
      # please check https://github.com/anothrNick/github-tag-action/issues/150#issuecomment-1116742134
      uses: alexeyatbluescape/github-tag-action@bugfix/semver-empty-results
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        WITH_V: true
        DEFAULT_BUMP: none
        RELEASE_BRANCHES: semver
        VERBOSE: true
        DRY_RUN: false #activate this for testing

  create-release:
    needs: create-tag
    runs-on: ubuntu-latest
    steps:
    - name: Checkout git
      uses: actions/checkout@v2.2.0
      with:
        fetch-depth: 0 # Required due to the way Git works, without it this action won't be able to find any or the correct tags

    #ngambil latest tag   
    - name: Get previous tag
      id: previoustag
      uses: "WyriHaximus/github-action-get-previous-tag@v1"
      with:
        fallback: 1.0.0 # Optional fallback tag to use when no tag can be found


    - name: Create release
      uses: "marvinpinto/action-automatic-releases@latest"
      with:
        repo_token: "${{ secrets.GITHUB_TOKEN }}"
        automatic_release_tag: "${{ steps.previoustag.outputs.tag }}"
        prerelease: false 
        title: "Release ${{ steps.previoustag.outputs.tag }}"
        #files apa aja yang mau di bawa di release
        files: |
         README.md
  1. Coba push lagi ke repo dengan message #major, #minor atau #patch, maka akan langsung otomatis di buat release.

FYI, di sini saya coba push dengan message #minor, tapi sebelumnya saya sudah menghapus tag v1.1.0, jadi harusnya akan otomatis di buat tag dan release v1.1.0 kembali

2 Workflows (create-tag dan release) di Github Actions

2 Workflows (create-tag dan release) di Github Actions

Log create-release

Log create-release

Tags & Release v1.1.0 Otomatis Di buat

Tags & Release v1.1.0 Otomatis Di buat


Jika kamu merasa tulisan ini bermanfaat & membantu kamu, kamu bisa berdonasi lewat saweria

If you feel this website help you, you can donate at saweria