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
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:
1 parent
78e463b4fa
commit
525fa51b19
14 files changed
+290
-141
No files matched your search
@@ -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')
|
||||
Reference in new issue
Block a user