feat(ci): adapt formal releases and MAIN deployment
Development CI / check-and-package (push) Successful in 3m52s
GitHub Git mirror / mirror (push) Successful in 5s
Main CI / check-and-package (pull_request) Successful in 3m51s
Development CI / image (push) Successful in 20s
Main CI / image (pull_request) Successful in 12s
Development CI / deploy-development (push) Successful in 5s

This commit is contained in:
eezd committed 2026-10-30 10:54:07 +08:00
1 parent 78e463b4fa
commit 525fa51b19
14 files changed
+290 -141

No files matched your search

+35 -1
View File
@@ -117,7 +117,7 @@ class PublicationTests(unittest.TestCase):
gitea.release.return_value = {'draft': True, 'prerelease': False}
github.release.return_value = {'draft': False, 'prerelease': False}
with self.assertRaisesRegex(ValueError, 'not completely published'):
release.release_receipt(gitea, github, '0.1.1')
release.release_receipt(gitea, github, '20261030-aaaaaaaa')
def test_registry_permission_error_is_not_treated_as_missing_image(self):
result = Mock(returncode=1, stderr='403 Forbidden', stdout='')
@@ -327,3 +327,37 @@ class CleanupTests(unittest.TestCase):
if __name__ == '__main__':
unittest.main()
class ReleaseReservationTests(unittest.TestCase):
def setUp(self):
self.directory = tempfile.TemporaryDirectory()
self.addCleanup(self.directory.cleanup)
self.patch = patch.object(release, 'STATE_DIRECTORY', Path(self.directory.name))
self.patch.start()
self.addCleanup(self.patch.stop)
def test_other_candidate_cannot_replace_pending_release(self):
release.reserve(SHA)
with self.assertRaisesRegex(ValueError, 'Another release'):
release.reserve('c' * 40)
def test_fixed_notes_and_candidate_are_required_on_retry(self):
release.reserve(SHA)
notes = Path(self.directory.name) / 'notes.md'
notes.write_text('English\n\n中文')
with patch.object(release, 'version_for', return_value='20261030-aaaaaaaa'):
release.select_release(SHA, notes)
with patch.dict(os.environ, {'RELEASE_ID': SHA, 'RELEASE_COMMIT': SHA}):
self.assertEqual(release.selected_state()['notes'], notes.read_text())
with patch.dict(os.environ, {'RELEASE_COMMIT': 'b' * 40}):
with self.assertRaisesRegex(ValueError, 'reserved candidate'):
release.selected_state()
def test_release_matrix_includes_windows_arm64(self):
self.assertEqual(set(release.PLATFORMS), {'linux/amd64', 'linux/arm64',
'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64'})
def test_release_version_uses_utc_commit_date_and_fixed_sha(self):
with patch.object(release, 'run', return_value='0'):
self.assertEqual(release.version_for(SHA), '19700101-aaaaaaaa')