From f7ac7a67defbbc41cdd5125df11fe9fa18e4ef65 Mon Sep 17 00:00:00 2001
From: Seungmin <39687846+peter-j0y@users.noreply.github.com>
Date: Fri, 26 Jan 2024 14:18:36 +0900
Subject: [PATCH] handling case that not have version name label
---
README.md | 8 ++++----
src/control_multi_version.py | 7 ++++++-
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index e491345..614ac1c 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# 안드로이드 다중 버전 관리
-여러 빌드 환경을 가지고 있는 안드로이드 프로젝트의 경우, 빌드 환경별 VersionCode와 VersionName을 관리해야 하는 경우가 있습니다. 이 액션을 이용하면 원하는 빌드 환경(최대 3개까지 지원)의 버전을 선택해 관리할 수 있습니다.
+여러 빌드 환경을 가지고 있는 안드로이드 프로젝트의 경우, 빌드 환경별 VersionCode와 VersionName을 관리해야 하는 경우가 있습니다. 이 액션을 이용하면 원하는 빌드 환경(최대 4개까지 지원)의 버전을 선택해 관리할 수 있습니다.
-기본적으로 VersionName은 SemVer를 따라 major.minor.patch의 형태로 관리하는 경우에 이 액션을 사용할 수 있으며, pull request에서 label을 이용하여 버전 증가를 원하는 빌드 환경을 선택하고 major, minor, patch 중 어떠한 버전을 증가시킬지 선택할 수 있습니다.
+기본적으로 VersionName은 SemVer를 따라 major.minor.patch.revision의 형태로 관리하는 경우에 이 액션을 사용할 수 있으며, pull request에서 label을 이용하여 버전 증가를 원하는 빌드 환경을 선택하고 major, minor, patch, revision 중 어떠한 버전을 증가시킬지 선택할 수 있습니다.
VersionCode의 경우, 선택한 빌드 스테이지의 VersionCode가 1씩 증가하는 형태로 액션이 동작합니다.
@@ -9,7 +9,7 @@ VersionCode의 경우, 선택한 빌드 스테이지의 VersionCode가 1씩 증
```yml
- name: Execute action
id: bump_version
- uses: Seungmin-develop/multi-version-control-action@v1.0.2
+ uses: Seungmin-develop/multi-version-control-action@v1.0.5
with:
version_file_path: "./version.gradle"
pr_labels: ${{ steps.pr-labels.outputs.labels }}
@@ -28,7 +28,7 @@ ex) app/version.gradle
## `pr_labels(필수)`
pull request에 지정된 label들을 문자열로 나타낸 것 입니다.
-인식 가능한 label의 종류는 **`dev, stg, prod, bump patch, bump minor, bump major`** 입니다. 어떤 빌드 환경을 선택할 지와 어떤 버전을 증가하고 싶은지 label을 통해 결정해야 합니다.
+인식 가능한 label의 종류는 **`dev, stg, prod, bump revision, bump patch, bump minor, bump major`** 입니다. 어떤 빌드 환경을 선택할 지와 어떤 버전을 증가하고 싶은지 label을 통해 결정해야 합니다.
이 때, label 내부에 있는 띄어쓰기는 '-'로 연결되어야 하고, label 끼리는 공백으로 구분되어야 합니다. (추후 업데이트 예정)
ex) "dev bump-major"
diff --git a/src/control_multi_version.py b/src/control_multi_version.py
index a501ed3..8b931f5 100644
--- a/src/control_multi_version.py
+++ b/src/control_multi_version.py
@@ -7,6 +7,7 @@ class VersionCategory(Enum):
PATCH = auto()
MINOR = auto()
MAJOR = auto()
+ NONE = auto()
# version_name 읽는 함수
def read_gradle_version_name(gradle_file_path, variable_name):
@@ -58,7 +59,7 @@ def write_gradle_version(vc_variable_name, vn_variable_name, new_version_code, n
print(env_file)
env_file.write(f"NEXT_VERSION_NAME={new_version_name}\n")
env_file.write(f"NEXT_VERSION_CODE={new_version_code}\n")
-
+
# label들을 해석하는 함수
def decode_labels(labels, version_name_dev, version_name_stg, version_name_prod, version_code_dev, version_code_stg, version_code_prod):
@@ -85,10 +86,14 @@ def update_version(arg, label_list):
version_code = int(arg['version_code'])
major_version, minor_version, patch_version, revision_version = map(int, arg['version_name'].split('.'))
+ isBumpLabelNotExist = true
for version_type in list(VersionCategory):
if f'bump-{version_type.name.lower()}' in label_list:
+ isBumpLabelExist = false
bump_version(version_type, arg['version_code_variable_name'], arg['version_name_variable_name'], version_code, major_version, minor_version, patch_version, revision_version)
+ if isBumpLabelNotExist:
+ bump_version(VersionCategory.NONE , arg['version_code_variable_name'], arg['version_name_variable_name'], version_code, major_version, minor_version, patch_version, revision_version)
# 버전 올리는 함수
def bump_version(version_category, vc_variable_name, vn_variable_name, version_code, major_version, minor_version, patch_version, revision_version) :