From d18249abd2e45b345fc8c5dc61bab11530e9dccf Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 3 Dec 2024 01:01:01 -0500 Subject: Use delivery_series_sync() function --- src/cli/stasis/stasis_main.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/cli/stasis/stasis_main.c') diff --git a/src/cli/stasis/stasis_main.c b/src/cli/stasis/stasis_main.c index 093e32e..adc3cd7 100644 --- a/src/cli/stasis/stasis_main.c +++ b/src/cli/stasis/stasis_main.c @@ -220,11 +220,33 @@ int main(int argc, char *argv[]) { // Safety gate: Avoid clobbering a delivered release unless the user wants that behavior msg(STASIS_MSG_L1, "Checking release history\n"); - if (delivery_exists(&ctx)) { + const int found_delivery = delivery_exists(&ctx); + + if (!globals.enable_overwrite && found_delivery) { msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "Refusing to overwrite release: %s\nUse --overwrite to enable release clobbering.\n", ctx.info.release_name); exit(1); } + if (globals.enable_artifactory) { + // We need to download previous revisions to ensure processed packages are available at build-time + // This is also a docker requirement. Python wheels must exist locally. + if (ctx.meta.rc > 1) { + msg(STASIS_MSG_L1, "Syncing delivery artifacts for %s\n", ctx.info.build_name); + if (delivery_series_sync(&ctx) != 0) { + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Unable to sync artifacts for %s\n", ctx.info.build_name); + msg(STASIS_MSG_L3, "Case #1:\n" + "\tIf this is a new 'version', and 'rc' is greater " + "than 1, then no previous deliveries exist remotely. " + "Reset 'rc' to 1.\n"); + msg(STASIS_MSG_L3, "Case #2:\n" + "\tThe Artifactory server %s is unreachable, or the credentials used " + "are invalid.\n", globals.jfrog.url); + // No continue-on-error check. Without the previous delivery nothing can be done. + exit(1); + } + } + } + // Unlikely to occur: this should help prevent rmtree() from destroying your entire filesystem // if path is "/" then, die // or if empty string, die -- cgit From 9098abc13882e6b665e46361721d3bcba7da55eb Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 3 Dec 2024 09:26:32 -0500 Subject: delivery_exists() returns DELIVERY_NOT_FOUND by default --- src/cli/stasis/stasis_main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/cli/stasis/stasis_main.c') diff --git a/src/cli/stasis/stasis_main.c b/src/cli/stasis/stasis_main.c index adc3cd7..807dbbd 100644 --- a/src/cli/stasis/stasis_main.c +++ b/src/cli/stasis/stasis_main.c @@ -220,9 +220,7 @@ int main(int argc, char *argv[]) { // Safety gate: Avoid clobbering a delivered release unless the user wants that behavior msg(STASIS_MSG_L1, "Checking release history\n"); - const int found_delivery = delivery_exists(&ctx); - - if (!globals.enable_overwrite && found_delivery) { + if (!globals.enable_overwrite && delivery_exists(&ctx) == DELIVERY_FOUND) { msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "Refusing to overwrite release: %s\nUse --overwrite to enable release clobbering.\n", ctx.info.release_name); exit(1); } -- cgit From 5796ce9338c7fe2aa8a26766ff9e01448d785c99 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 3 Dec 2024 10:47:37 -0500 Subject: Add ability to use artifactory without uploading any artifacts at the end. * New option: --no-artifactory-upload * Implies --no-artifactory-build-info * Updated README.md --- src/cli/stasis/stasis_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/cli/stasis/stasis_main.c') diff --git a/src/cli/stasis/stasis_main.c b/src/cli/stasis/stasis_main.c index 807dbbd..dc4e2d1 100644 --- a/src/cli/stasis/stasis_main.c +++ b/src/cli/stasis/stasis_main.c @@ -102,6 +102,10 @@ int main(int argc, char *argv[]) { case OPT_NO_ARTIFACTORY_BUILD_INFO: globals.enable_artifactory_build_info = false; break; + case OPT_NO_ARTIFACTORY_UPLOAD: + globals.enable_artifactory_build_info = false; + globals.enable_artifactory_upload = false; + break; case OPT_NO_TESTING: globals.enable_testing = false; break; @@ -561,7 +565,7 @@ int main(int argc, char *argv[]) { } if (want_artifactory) { - if (globals.enable_artifactory) { + if (globals.enable_artifactory && globals.enable_artifactory_upload) { msg(STASIS_MSG_L1, "Uploading artifacts\n"); delivery_artifact_upload(&ctx); } else { -- cgit