< BACK TO BLOG

GitHub Action: Git Tag Check Action

πŸ—“οΈ2022-01-20

κΉƒν—ˆλΈŒ μ›Œν¬ν”Œλ‘œμš°μ—μ„œ ν™œμš©ν•  수 μžˆλŠ” κΉƒν—ˆλΈŒ μ•‘μ…˜ GitHub actions 을 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

μž…λ ₯된 νƒœκ·Έκ°€ κΉƒ git 원격저μž₯μ†Œμ— μ‘΄μž¬ν•˜λŠ”μ§€ μ‘°νšŒν•œ ν›„ 있으면 μž…λ ₯된 νƒœκ·Έλ₯Ό λ°˜ν™˜ν•˜κ³ , 찾을 수 μ—†μœΌλ©΄ 빈 λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•˜λŠ” 단계λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

View on Marketplace: git-tag-check-action μΆœμ‹œ 버전

git-tag-check-action

Overview

버전 관리λ₯Ό ν•  λ•Œ λ²„μ „μ΄λ¦„μœΌλ‘œ git tag λ₯Ό μž‘μ„±ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이 κΉƒν—ˆλΈŒ μ•‘μ…˜μ€ ν˜„μž¬ κΉƒν—ˆλΈŒ μ €μž₯μ†Œμ— μž…λ ₯된 μ΄λ¦„μ˜ νƒœκ·Έκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” μž‘μ—…μ— 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμƒλ˜λŠ” μ‚¬μš©μ²˜:

  • μ›Œν¬ν”Œλ‘œμš°μ—μ„œ ν˜„μž¬ 버젼이 μ‘΄μž¬ν•˜λŠ” 경우 이후 단계λ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šκ²Œ μ„€μ •

Usages

steps:
  - uses: actions/checkout@v2

  - uses: bbonkr/git-tag-check-action@v1.0.5
    id: git_tag_check
    with:
      github_token: ${{ secrets.GITHUB_TOKEN }}
      tag: 'v1.0.0'
  - name: logging found
    if: ${{ steps.git_tag_check.outputs.tag != '' }}
    run: |
      echo "Found tag=${{ steps.git_tag_check.outputs.tag }}"
  - name: logging not found
    if: ${{ steps.git_tag_check.outputs.tag == '' }}
    run: |
      echo "Tag does not exist"   

Inputs

Name Required Description
tag βœ… νƒœκ·Έ, ν™•μΈν•˜λ €λŠ” νƒœκ·Έμž…λ‹ˆλ‹€.
github_token βœ… κΉƒν—ˆλΈŒ PAT, Repo μŠ€μ½”ν”„κ°€ ν•„μš”ν•©λ‹ˆλ‹€.
prefix 버전 μ ‘λ‘μ–΄μž…λ‹ˆλ‹€. 기본값은 '' (빈 λ¬Έμžμ—΄)μž…λ‹ˆλ‹€.

Outputs

Name Description
tag μž…λ ₯된 νƒœκ·Έκ°€ μžˆλŠ” 경우 쑰회된 νƒœκ·Έκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€. μ—†λŠ” 경우 '' (빈 λ¬Έμžμ—΄)μž…λ‹ˆλ‹€.

Review

GitHub Action with typescript

node.js 기반으둜 λ™μž‘ν•˜κ³ , Typescript둜 μž‘μ„±λœ μ•‘μ…˜μž…λ‹ˆλ‹€.

처음 μž‘μ„±ν•˜λŠ” μ•‘μ…˜μ΄λΌ, μ–΄λ–»κ²Œ μž‘μ„±ν•˜λŠ”μ§€ μ–΄λ–»κ²Œ κ²Œμ‹œν•˜λŠ”μ§€ 확인을 ν•˜κΈ° μœ„ν•΄ GitHub: actions/typescript-action ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

dist/index.js

μ•‘μ…˜ 싀행에 μ‚¬μš©λ˜λŠ” μ‹œμž‘μ μž…λ‹ˆλ‹€.

ν’€ 리쿼슀트 μž‘μ„± λ˜λŠ” κΈ°λ³Έ 브랜치둜 컀밋을 μ „μ†‘ν•˜κΈ°μ „μ— ncc build 둜 dist/ λ””λ ‰ν„°λ¦¬μ˜ νŒŒμΌλ“€μ„ λ‹€μ‹œ μž‘μ„±ν•˜κ³ , μ»€λ°‹ν•œ ν›„ ν’€ λ¦¬ν€˜μŠ€νŠΈ μž‘μ„± λ˜λŠ” 원격 μ €μž₯μ†Œμ— 컀밋을 μ „μ†‘ν•˜λŠ” 방식을 μ‚¬μš©ν•˜μ•  ν•˜λŠ” κ²ƒμœΌλ‘œ μƒκ°λ©λ‹ˆλ‹€. npm run package 슀크립트둜 싀행이 μ€€λΉ„λ˜μ–΄μ Έ μžˆμŠ΅λ‹ˆλ‹€.

src/main.ts

κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” μ½”λ“œμ˜ μ‹œμž‘μ μž…λ‹ˆλ‹€.

@actions/core νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•΄μ„œ κΉƒν—ˆλΈŒ μ•‘μ…˜μ— ν•„μš”ν•œ μž…λ ₯, 좜λ ₯을 κ΅¬ν˜„ν•©λ‹ˆλ‹€.

@actions/github νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•΄μ„œ GitHub μ €μž₯μ†Œ μ•‘μ„ΈμŠ€(Octokit)λ₯Ό κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

GitHub Actions

κΉƒν—ˆλΈŒ μ›Œν¬ν”Œλ‘œμš°κ°€ 미리 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

check-dist, test 두 개의 μ›Œν¬ν”Œλ‘œμš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

check-dist λŠ” dist/ 디렉터리에 μžˆλŠ” μ‹œμž‘μ  μ½”λ“œλ“€μ΄ ν˜„μž¬ μ½”λ“œλ‘œ λ‹€μ‹œ μž‘μ„±λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” μ›Œν¬ν”„λ‘œμš°λ‘œ μƒκ°λ©λ‹ˆλ‹€.

그런데, 둜컬 μž₯μΉ˜μ—μ„œ 맀번 λ‹€μ‹œ μž‘μ„±ν•΄μ„œ 컀밋을 원격 μ €μž₯μ†Œμ— μ „μ†‘ν–ˆλŠ”λ°, μ›Œν¬ν”Œλ‘œμš°κ°€ μ‹€ν–‰λ˜λŠ” μž₯μΉ˜μ—μ„œ λΉŒλ“œμ™€ 차이점이 발견되고 μžˆμ–΄ 항상 였λ₯˜ λ°œμƒμœΌλ‘œ μ’…λ£Œλ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ’€ 더 확인해봐야할 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.

test μ›Œν¬ν”Œλ‘œμš°λŠ” λΉŒλ“œλ₯Ό ν™•μΈν•˜κ³ , λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λŠ” λ“±μ˜ μž‘μ—…μ΄ μ‹€ν–‰λ˜λŠ” μž‘μ—…κ³Ό μž‘μ„±λœ κΉƒν—ˆλΈŒ μ•‘μ…˜μ„ μ‹€ν–‰ν•΄μ„œ λ™μž‘μ„ ν™•μΈν•˜λŠ” μž‘μ—…μœΌλ‘œ κ΅¬μ„±λ˜μ–΄μ Έ μžˆμŠ΅λ‹ˆλ‹€.

GitHub Repository


Profile picture

Pon Cheol Ku (ꡬ본철)

Software developer

Other sites

If does not find interesting topic, you might visit other site on below link.

Β© 2024, Built with Gatsby