Catatan
Beberapa catatan sebelum mengikuti tutorial ini
-
Diharapkan sudah mengerti cara menggunakan git
-
Tahu dasar pengunaan git tag
-
Tahu dasar penggunaan github actions
-
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
- 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
- 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
- Lalu kita coba ubah file di repo, lalu commit menggunakan message #major, #minor, #patch
git commit -m "test #patch

Version Tidak Naik
- 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!

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
- 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
- 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

Log create-release

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