mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 12:54:11 +08:00
Change the branch/tag deletion script that runs once per day to delete more tags Previous: only delete ciflow tags that didn't correspond to an open PR New: delete ciflow tags attached to commits that are > 7 days old. Also delete `trunk/<sha>` (I think they are for autorevert) tags that are attached to commits that are > 7 days old It's hard to figure out when the actual tag was pushed or created, so instead it looks at the commit date, which might lead to unexpected behavior if the tag was pushed much later than the commit (ex triggering periodic later to bisect). I think it's ok though since you don't really need the tag after the workflow runs Pull Request resolved: https://github.com/pytorch/pytorch/pull/157468 Approved by: https://github.com/izaitsevfb
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
import os
|
|
import unittest
|
|
from datetime import datetime
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
|
|
os.environ["GITHUB_TOKEN"] = "test_token"
|
|
|
|
from delete_old_branches import delete_old_tags
|
|
|
|
|
|
@patch("delete_old_branches.delete_branch")
|
|
@patch("gitutils.GitRepo._run_git")
|
|
class TestDeleteTag(unittest.TestCase):
|
|
def test_delete_tag(
|
|
self, mock_run_git: "MagicMock", mock_delete_tag: "MagicMock"
|
|
) -> None:
|
|
for tag in [
|
|
"ciflow/branch/12345",
|
|
"ciflow/commitsha/1234567890abcdef1234567890abcdef12345678",
|
|
"trunk/1234567890abcdef1234567890abcdef12345678",
|
|
]:
|
|
mock_run_git.side_effect = [
|
|
tag,
|
|
str(int(datetime.now().timestamp() - 8 * 24 * 60 * 60)), # 8 days ago
|
|
]
|
|
delete_old_tags()
|
|
mock_delete_tag.assert_called_once()
|
|
mock_delete_tag.reset_mock()
|
|
|
|
# Don't delete if the tag is not old enough
|
|
mock_run_git.side_effect = [
|
|
tag,
|
|
str(int(datetime.now().timestamp() - 6 * 24 * 60 * 60)), # 6 days ago
|
|
]
|
|
delete_old_tags()
|
|
mock_delete_tag.assert_not_called()
|
|
|
|
def test_do_not_delete_tag(
|
|
self, mock_run_git: "MagicMock", mock_delete_tag: "MagicMock"
|
|
) -> None:
|
|
for tag in [
|
|
"ciflow/doesntseemtomatch",
|
|
"trunk/doesntseemtomatch",
|
|
"doesntseemtomatch",
|
|
]:
|
|
mock_run_git.side_effect = [
|
|
tag,
|
|
str(int(datetime.now().timestamp() - 8 * 24 * 60 * 60)), # 8 days ago
|
|
]
|
|
delete_old_tags()
|
|
mock_delete_tag.assert_not_called()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|