From 84c9bfd73dd769164c7da6b1406ad91c5b723b1d Mon Sep 17 00:00:00 2001 From: Stephen Grice Date: Sun, 18 Aug 2024 23:22:17 -0400 Subject: [PATCH] fix: Check out branch automatically on GitLab --- docs/config/create_release.md | 2 +- src/pagekey_semver/git/effector.py | 10 ++++++++++ src/pagekey_semver/git/manager.py | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/config/create_release.md b/docs/config/create_release.md index 42d80b2..d1b2b34 100644 --- a/docs/config/create_release.md +++ b/docs/config/create_release.md @@ -33,7 +33,7 @@ integrations: gitlab: create_release: project: "60867298" - token_variable: "GITLAB_TOKEN" + token_variable: "SEMVER_TOKEN" title_format: "v%M.%m.%p" body: "Auto-generated release." ``` diff --git a/src/pagekey_semver/git/effector.py b/src/pagekey_semver/git/effector.py index 6b34761..08407ed 100644 --- a/src/pagekey_semver/git/effector.py +++ b/src/pagekey_semver/git/effector.py @@ -46,6 +46,13 @@ def push(self, remote: str, ref: str) -> None: ref: Which commit, branch, or tag to push. """ + def checkout(self, ref: str) -> None: + """Check out a ref. + + Args: + ref: Which commit, branch, or tag to checkout. + """ + class CommandGitEffector(GitEffector): """Use the Git CLI to make changes to Git.""" @@ -67,3 +74,6 @@ def create_tag(self, name: str) -> None: def push(self, remote: str, ref: str) -> None: self._runner.run(f"git push {remote} {ref}") + + def checkout(self, ref: str) -> None: + self._runner.run(f"git checkout {ref}") diff --git a/src/pagekey_semver/git/manager.py b/src/pagekey_semver/git/manager.py index 34fd987..d1e5144 100644 --- a/src/pagekey_semver/git/manager.py +++ b/src/pagekey_semver/git/manager.py @@ -87,8 +87,15 @@ def apply_tag(self, existing_tags: List[Tag], new_tag: Tag) -> None: new_tag: Tag to be added, if it does not already exist. """ if new_tag not in existing_tags: + # Check out branch on GitLab + gitlab_branch = os.getenv("CI_COMMIT_BRANCH", "") + if len(gitlab_branch) > 0: + print(f"Checking out CI_COMMIT_BRANCH={gitlab_branch}") + self._effector.checkout(gitlab_branch) + print(f"Tagging/pushing new tag: {new_tag}", flush=True) original_git_config = self.get_existing_git_info() + self.set_git_remote() self._effector.set_config_item("user.email", self._config.git.email) self._effector.set_config_item("user.name", self._config.git.name)