Public Access
DEVX-73: fix: release publish failures and duplicate release commits
Post-merge / detect-type (push) Successful in 10s
Post-merge / validate-commit-msg (push) Successful in 9s
Post-merge / sync-wiki (push) Successful in 17s
Post-merge / vikunja (push) Successful in 12s
Build Images / detect-type (push) Successful in 38s
Post-merge / release (push) Successful in 25s
Post-merge / configure-repo (push) Successful in 10s
Post-merge / badges (push) Successful in 31s
Post-merge / publish (push) Failing after 15s
Build Images / build-and-push (push) Successful in 2m47s
Build Images / cleanup (push) Successful in 51s
Post-merge / detect-type (push) Successful in 10s
Post-merge / validate-commit-msg (push) Successful in 9s
Post-merge / sync-wiki (push) Successful in 17s
Post-merge / vikunja (push) Successful in 12s
Build Images / detect-type (push) Successful in 38s
Post-merge / release (push) Successful in 25s
Post-merge / configure-repo (push) Successful in 10s
Post-merge / badges (push) Successful in 31s
Post-merge / publish (push) Failing after 15s
Build Images / build-and-push (push) Successful in 2m47s
Build Images / cleanup (push) Successful in 51s
This commit was merged in pull request #122.
This commit is contained in:
@@ -25,10 +25,10 @@ setup-quality: $(VENV)/bin/activate .env install-tools
|
|||||||
|
|
||||||
# Setup for release jobs (needs git-cliff, tea, lint tools)
|
# Setup for release jobs (needs git-cliff, tea, lint tools)
|
||||||
setup-release: $(VENV)/bin/activate .env
|
setup-release: $(VENV)/bin/activate .env
|
||||||
@$(BIN)/pip install -e '.[ci,lint]' 2>/dev/null; \
|
@$(BIN)/pip install -e '.[ci,lint,release]' 2>/dev/null; \
|
||||||
$(BIN)/python -m devx.tools.install_tools --tool git-cliff --tool tea; \
|
$(BIN)/python -m devx.tools.install_tools --tool git-cliff --tool tea; \
|
||||||
export PATH="$(HOME)/.local/bin:$$PATH"; \
|
export PATH="$(HOME)/.local/bin:$$PATH"; \
|
||||||
$(BIN)/python -m devx.tools.setup --bin "$(BIN)" --extras "ci,lint" --no-pre-commit
|
$(BIN)/python -m devx.tools.setup --bin "$(BIN)" --extras "ci,lint,release" --no-pre-commit
|
||||||
|
|
||||||
# Setup for pre-built image jobs (deps already in image, just link venv + install project)
|
# Setup for pre-built image jobs (deps already in image, just link venv + install project)
|
||||||
setup-image:
|
setup-image:
|
||||||
|
|||||||
@@ -669,6 +669,20 @@ def main(dry_run: bool, skip_tests: bool, verify: bool) -> None:
|
|||||||
return
|
return
|
||||||
|
|
||||||
current_tag = get_latest_tag()
|
current_tag = get_latest_tag()
|
||||||
|
# If the bumped version equals the current tag version, there's nothing
|
||||||
|
# new to release. git-cliff didn't bump because the commits since the last
|
||||||
|
# tag don't warrant a version change (e.g., only ci:/chore: commits).
|
||||||
|
# Creating a release commit with the same version would cause a tag
|
||||||
|
# conflict.
|
||||||
|
if current_tag and current_tag.lstrip("v") == new_version:
|
||||||
|
click.echo(
|
||||||
|
_(
|
||||||
|
"Version stays at v{version} — no version bump from git-cliff. "
|
||||||
|
"Commits since last tag don't warrant a new release. Skipping.",
|
||||||
|
version=new_version,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return
|
||||||
click.echo(
|
click.echo(
|
||||||
_(
|
_(
|
||||||
"Bumping version: {current} -> v{new_version}",
|
"Bumping version: {current} -> v{new_version}",
|
||||||
|
|||||||
@@ -1990,5 +1990,13 @@
|
|||||||
"pl": "{file} już istnieje. Użyj --force, aby nadpisać.",
|
"pl": "{file} już istnieje. Użyj --force, aby nadpisać.",
|
||||||
"ru": "{file} already exists. Use --force to overwrite.",
|
"ru": "{file} already exists. Use --force to overwrite.",
|
||||||
"zh": "{file} already exists. Use --force to overwrite."
|
"zh": "{file} already exists. Use --force to overwrite."
|
||||||
|
},
|
||||||
|
"Version stays at v{version} — no version bump from git-cliff. Commits since last tag don't warrant a new release. Skipping.": {
|
||||||
|
"bg": "",
|
||||||
|
"de": "",
|
||||||
|
"en": "Version stays at v{version} — no version bump from git-cliff. Commits since last tag don't warrant a new release. Skipping.",
|
||||||
|
"pl": "",
|
||||||
|
"ru": "",
|
||||||
|
"zh": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1207,7 +1207,7 @@ class TestMain:
|
|||||||
@patch("devx.ci.release.update_init_version")
|
@patch("devx.ci.release.update_init_version")
|
||||||
@patch("devx.ci.release.get_changelog", return_value="changelog")
|
@patch("devx.ci.release.get_changelog", return_value="changelog")
|
||||||
@patch("devx.ci.release.get_latest_tag", return_value="v0.1.0")
|
@patch("devx.ci.release.get_latest_tag", return_value="v0.1.0")
|
||||||
@patch("devx.ci.release.get_bumped_version", return_value="0.1.0")
|
@patch("devx.ci.release.get_bumped_version", return_value="0.2.0")
|
||||||
@patch("devx.ci.release.has_unreleased_changes", return_value=True)
|
@patch("devx.ci.release.has_unreleased_changes", return_value=True)
|
||||||
@patch("devx.ci.release.run_cmd")
|
@patch("devx.ci.release.run_cmd")
|
||||||
def test_full_flow_tag_exists(
|
def test_full_flow_tag_exists(
|
||||||
@@ -1232,7 +1232,33 @@ class TestMain:
|
|||||||
result = runner.invoke(main, [])
|
result = runner.invoke(main, [])
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert "already existed" in result.output
|
assert "already existed" in result.output
|
||||||
mock_tag.assert_called_once_with("0.1.0", "changelog", False)
|
mock_tag.assert_called_once_with("0.2.0", "changelog", False)
|
||||||
|
|
||||||
|
@patch.dict("os.environ", {})
|
||||||
|
@patch("devx.ci.release.verify_tag_consistency", return_value=[])
|
||||||
|
@patch("devx.ci.release.fetch_tags")
|
||||||
|
@patch("devx.ci.release.has_user_facing_changes", return_value=True)
|
||||||
|
@patch("devx.ci.release.get_latest_tag", return_value="v0.1.0")
|
||||||
|
@patch("devx.ci.release.get_bumped_version", return_value="0.1.0")
|
||||||
|
@patch("devx.ci.release.has_unreleased_changes", return_value=True)
|
||||||
|
@patch("devx.ci.release.run_cmd")
|
||||||
|
def test_skips_when_version_doesnt_bump(
|
||||||
|
self,
|
||||||
|
mock_run_cmd: MagicMock,
|
||||||
|
mock_has: MagicMock,
|
||||||
|
mock_bumped: MagicMock,
|
||||||
|
mock_latest: MagicMock,
|
||||||
|
mock_user: MagicMock,
|
||||||
|
mock_ft: MagicMock,
|
||||||
|
mock_vtc: MagicMock,
|
||||||
|
) -> None:
|
||||||
|
"""Release is skipped when git-cliff doesn't bump the version."""
|
||||||
|
mock_run_cmd.return_value = MagicMock(returncode=0, stdout="master\n", stderr="")
|
||||||
|
runner = CliRunner()
|
||||||
|
result = runner.invoke(main, [])
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert "no version bump" in result.output
|
||||||
|
assert "Skipping" in result.output
|
||||||
|
|
||||||
@patch.dict("os.environ", {})
|
@patch.dict("os.environ", {})
|
||||||
@patch("devx.ci.release.verify_tag_consistency", return_value=[])
|
@patch("devx.ci.release.verify_tag_consistency", return_value=[])
|
||||||
|
|||||||
Reference in New Issue
Block a user