From c0cc961723d5425c20c6f15ee9c2dde5e5621403 Mon Sep 17 00:00:00 2001 From: Max Starikov Date: Sat, 8 Aug 2026 19:47:56 +0200 Subject: [PATCH] fix merge to master --- .github/workflows/sync-master-to-dev.yml | 3 ++- scripts/test_release_workflows.py | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sync-master-to-dev.yml b/.github/workflows/sync-master-to-dev.yml index dba20d2..b26937b 100644 --- a/.github/workflows/sync-master-to-dev.yml +++ b/.github/workflows/sync-master-to-dev.yml @@ -25,7 +25,8 @@ jobs: TAG: ${{ inputs.tag }} run: | git fetch origin master dev --tags - test "$(git rev-list -n 1 "$TAG")" = "$(git rev-parse origin/master)" + test "$(git cat-file -t "$TAG")" = "tag" + git merge-base --is-ancestor "$TAG^{}" origin/master git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com git merge --no-ff origin/master -m "Merge released $TAG back into dev" diff --git a/scripts/test_release_workflows.py b/scripts/test_release_workflows.py index dfe74a7..6555da5 100644 --- a/scripts/test_release_workflows.py +++ b/scripts/test_release_workflows.py @@ -48,6 +48,12 @@ def test_production_has_approval_but_no_build_or_keystore(self): self.assertNotIn("gradlew", workflow) self.assertNotIn("ANDROID_KEYSTORE", workflow) + def test_master_sync_accepts_post_tag_release_fixes(self): + workflow = self.read("sync-master-to-dev.yml") + self.assertIn('test "$(git cat-file -t "$TAG")" = "tag"', workflow) + self.assertIn('git merge-base --is-ancestor "$TAG^{}" origin/master', workflow) + self.assertNotIn('git rev-list -n 1 "$TAG")" = "$(git rev-parse origin/master)', workflow) + def test_actions_are_versioned(self): for path in WORKFLOWS.glob("*.yml"): for action in re.findall(r"uses:\s*([^\s]+)", path.read_text(encoding="utf-8")):