From a6f828e658abf3b23bf7e230238e796b4d869a3e Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Thu, 18 Jan 2024 13:29:40 +0100 Subject: [PATCH 1/3] Update meta.yaml --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index fcba114..1faec44 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flux-core" %} -{% set version = "0.55.0" %} +{% set version = "0.58.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/flux-framework/flux-core/releases/download/v{{ version }}/flux-core-{{ version }}.tar.gz - sha256: 2925b8a084e9d1069a96de7689b515ad6f2051ecfb9fbbe4d2643507de7ccd30 + sha256: 3125ace7d4d3c99b362290344f97db74c06c37b5510cfcb746e1bf48e1dc1389 patches: - centos6.patch # This patch can be removed once the conda-forge reference is updated From 44ffdddab94715f2e93b4ece0f8f4f72fd44592c Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Thu, 18 Jan 2024 13:30:39 +0100 Subject: [PATCH 2/3] Update centos6.patch --- recipe/centos6.patch | 342 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 288 insertions(+), 54 deletions(-) diff --git a/recipe/centos6.patch b/recipe/centos6.patch index e1a4762..b2b215d 100644 --- a/recipe/centos6.patch +++ b/recipe/centos6.patch @@ -1,49 +1,8 @@ -diff --git a/src/common/libutil/test/fileref.c b/src/common/libutil/test/fileref.c -index 61cb0bdfe..6fbd84d9b 100644 ---- a/src/common/libutil/test/fileref.c -+++ b/src/common/libutil/test/fileref.c -@@ -709,7 +712,8 @@ int main (int argc, char *argv[]) - test_dir (); - test_link (); - test_small (); -- test_empty (); -+ if (have_sparse) -+ test_empty (); - test_expfail (); - test_pretty_print (); - -diff --git a/src/modules/job-exec/job-exec.c b/src/modules/job-exec/job-exec.c -index d29aba68a..c6b76fb92 100644 ---- a/src/modules/job-exec/job-exec.c -+++ b/src/modules/job-exec/job-exec.c -@@ -89,6 +89,7 @@ - #endif - #include - #include -+#include - #include - - #include "src/common/libczmqcontainers/czmq_containers.h" -diff --git a/src/shell/rlimit.c b/src/shell/rlimit.c -index 25a19d936..f83904525 100644 ---- a/src/shell/rlimit.c -+++ b/src/shell/rlimit.c -@@ -60,8 +60,10 @@ static int rlimit_name_to_string (const char *name) - return RLIMIT_NICE; - if (streq (name, "rtprio")) - return RLIMIT_RTPRIO; -+#ifdef RLIMIT_RTTTIME - if (streq (name, "rttime")) - return RLIMIT_RTTIME; -+#endif - if (streq (name, "sigpending")) - return RLIMIT_SIGPENDING; - return -1; diff --git a/src/cmd/flux-exec.c b/src/cmd/flux-exec.c -index eeeb2c581..79747091d 100644 +index 345fde665..5073920e8 100644 --- a/src/cmd/flux-exec.c +++ b/src/cmd/flux-exec.c -@@ -190,9 +190,12 @@ void output_cb (flux_subprocess_t *p, const char *stream) +@@ -206,9 +206,12 @@ void output_cb (flux_subprocess_t *p, const char *stream) log_err_exit ("flux_subprocess_getline"); if (lenp) { @@ -58,10 +17,10 @@ index eeeb2c581..79747091d 100644 } diff --git a/src/cmd/flux-job.c b/src/cmd/flux-job.c -index bbbee11ee68..719a165322c 100644 +index 4e5f8f394..6300cb1f1 100644 --- a/src/cmd/flux-job.c +++ b/src/cmd/flux-job.c -@@ -1660,9 +1660,12 @@ static void handle_output_data (struct attach_ctx *ctx, json_t *context) +@@ -1701,9 +1701,12 @@ static void handle_output_data (struct attach_ctx *ctx, json_t *context) else fp = stderr; if (len > 0) { @@ -75,7 +34,7 @@ index bbbee11ee68..719a165322c 100644 /* If attached to a pty, terminal is in raw mode so a carriage * return will be necessary to return cursor to the start of line. */ -@@ -2217,7 +2220,9 @@ void handle_exec_log_msg (struct attach_ctx *ctx, double ts, json_t *context) +@@ -2258,7 +2261,9 @@ void handle_exec_log_msg (struct attach_ctx *ctx, double ts, json_t *context) rank, stream); } @@ -86,11 +45,91 @@ index bbbee11ee68..719a165322c 100644 } static struct idset *all_taskids (const struct taskmap *map) +diff --git a/src/common/libflux/message.c b/src/common/libflux/message.c +index 7191d3996..765dda11c 100644 +--- a/src/common/libflux/message.c ++++ b/src/common/libflux/message.c +@@ -1241,12 +1241,10 @@ static void flags2str (int flags, char *buf, int buflen) + + static void userid2str (uint32_t userid, char *buf, int buflen) + { +- int n; + if (userid == FLUX_USERID_UNKNOWN) +- n = snprintf (buf, buflen, "unknown"); ++ snprintf (buf, buflen, "unknown"); + else +- n = snprintf (buf, buflen, "%u", userid); +- assert (n < buflen); ++ snprintf (buf, buflen, "%u", userid); + } + + static int roletostr (uint32_t role, const char *sep, char *buf, int buflen) +@@ -1286,14 +1284,12 @@ static void rolemask2str (uint32_t rolemask, char *buf, int buflen) + + static void nodeid2str (uint32_t nodeid, char *buf, int buflen) + { +- int n; + if (nodeid == FLUX_NODEID_ANY) +- n = snprintf (buf, buflen, "any"); ++ snprintf (buf, buflen, "any"); + else if (nodeid == FLUX_NODEID_UPSTREAM) +- n = snprintf (buf, buflen, "upstream"); ++ snprintf (buf, buflen, "upstream"); + else +- n = snprintf (buf, buflen, "%u", nodeid); +- assert (n < buflen); ++ snprintf (buf, buflen, "%u", nodeid); + } + + void flux_msg_fprint_ts (FILE *f, const flux_msg_t *msg, double timestamp) +diff --git a/src/common/librlist/rhwloc.c b/src/common/librlist/rhwloc.c +index 30ee80c8a..45badacc7 100644 +--- a/src/common/librlist/rhwloc.c ++++ b/src/common/librlist/rhwloc.c +@@ -61,7 +61,7 @@ static int init_topo_from_xml (hwloc_topology_t *tp, + unsigned long flags) + { + if ((topo_init_common (tp, flags) < 0) +- || (hwloc_topology_set_xmlbuffer (*tp, xml, strlen (xml) + 1) < 0) ++ || (hwloc_topology_set_xmlbuffer (*tp, xml, strlen (xml)) < 0) + || (hwloc_topology_load (*tp) < 0)) { + hwloc_topology_destroy (*tp); + return (-1); +diff --git a/src/common/librouter/test/sendfd.c b/src/common/librouter/test/sendfd.c +index c0a892a87..bd5b571a9 100644 +--- a/src/common/librouter/test/sendfd.c ++++ b/src/common/librouter/test/sendfd.c +@@ -65,19 +65,25 @@ void test_large (void) + const char *topic; + const void *buf2; + int buf2len; ++#if defined(F_GETPIPE_SZ) + int min_size = 16384; + int size; ++#endif + + memset (buf, 0x0f, sizeof (buf)); + + if (pipe2 (pfd, O_CLOEXEC) < 0) + BAIL_OUT ("pipe2 failed"); + ++#if defined(F_GETPIPE_SZ) + size = fcntl (pfd[1], F_GETPIPE_SZ); + if (size < min_size) + (void)fcntl (pfd[1], F_SETPIPE_SZ, min_size); + size = fcntl (pfd[1], F_GETPIPE_SZ); + skip (size < min_size, 4, "%d byte pipe is too small", size); ++#else ++ skip (true, 4, "F_GETPIPE_SZ not defined"); ++#endif + if (!(msg = flux_request_encode_raw ("foo.bar", buf, sizeof (buf)))) + BAIL_OUT ("flux_request_encode failed"); + ok (sendfd (pfd[1], msg, NULL) == 0, diff --git a/src/common/libsubprocess/subprocess.c b/src/common/libsubprocess/subprocess.c -index da068b3d3..72cb6cca6 100644 +index 6b920cac4..6214344ee 100644 --- a/src/common/libsubprocess/subprocess.c +++ b/src/common/libsubprocess/subprocess.c -@@ -262,8 +262,11 @@ void flux_standard_output (flux_subprocess_t *p, const char *stream) +@@ -263,8 +263,11 @@ void flux_standard_output (flux_subprocess_t *p, const char *stream) } } @@ -104,11 +143,49 @@ index da068b3d3..72cb6cca6 100644 } /* +diff --git a/src/common/libutil/test/fileref.c b/src/common/libutil/test/fileref.c +index ee4656109..e7c792a8e 100644 +--- a/src/common/libutil/test/fileref.c ++++ b/src/common/libutil/test/fileref.c +@@ -737,7 +737,8 @@ int main (int argc, char *argv[]) + test_dir (); + test_link (); + test_small (); +- test_empty (); ++ if (have_sparse) ++ test_empty (); + test_expfail (); + test_pretty_print (); + +diff --git a/src/modules/kvs/cache.c b/src/modules/kvs/cache.c +index 2b6d05c81..9c314cbf2 100644 +--- a/src/modules/kvs/cache.c ++++ b/src/modules/kvs/cache.c +@@ -365,10 +365,8 @@ struct cache_entry *cache_lookup (struct cache *cache, const char *ref) + + int cache_insert (struct cache *cache, struct cache_entry *entry) + { +- int rc; +- + if (cache && entry) { +- rc = zhashx_insert (cache->zhx, entry->blobref, entry); ++ zhashx_insert (cache->zhx, entry->blobref, entry); + list_add (&cache->entries_list, &entry->entries_node); + entry->notdirty_list = &cache->notdirty_list; + entry->valid_list = &cache->valid_list; +@@ -378,7 +376,6 @@ int cache_insert (struct cache *cache, struct cache_entry *entry) + if (entry->waitlist_valid + && wait_queue_msgs_count (entry->waitlist_valid) > 0) + list_add (entry->valid_list, &entry->valid_node); +- assert (rc == 0); + } + return 0; + } diff --git a/src/shell/output.c b/src/shell/output.c -index 8ebf07365..6e3422605 100644 +index dc3b42603..d23a17e6b 100644 --- a/src/shell/output.c +++ b/src/shell/output.c -@@ -173,8 +173,11 @@ static int shell_output_term (struct shell_output *out) +@@ -177,8 +177,11 @@ static int shell_output_term (struct shell_output *out) f = stderr; } if ((output_type == FLUX_OUTPUT_TYPE_TERM) && len > 0) { @@ -121,11 +198,26 @@ index 8ebf07365..6e3422605 100644 } free (data); } +diff --git a/src/shell/rlimit.c b/src/shell/rlimit.c +index 24d545d4d..adb0062cb 100644 +--- a/src/shell/rlimit.c ++++ b/src/shell/rlimit.c +@@ -58,8 +58,10 @@ static int rlimit_name_to_string (const char *name) + return RLIMIT_NICE; + if (streq (name, "rtprio")) + return RLIMIT_RTPRIO; ++#ifdef RLIMIT_RTTTIME + if (streq (name, "rttime")) + return RLIMIT_RTTIME; ++#endif + if (streq (name, "sigpending")) + return RLIMIT_SIGPENDING; + return -1; diff --git a/t/rexec/rexec_count_stdout.c b/t/rexec/rexec_count_stdout.c -index 8cb9ff932..f5e1985f8 100644 +index 49a942586..cce9341c8 100644 --- a/t/rexec/rexec_count_stdout.c +++ b/t/rexec/rexec_count_stdout.c -@@ -69,8 +69,10 @@ void output_cb (flux_subprocess_t *p, const char *stream) +@@ -70,8 +70,10 @@ void output_cb (flux_subprocess_t *p, const char *stream) } } @@ -139,10 +231,10 @@ index 8cb9ff932..f5e1985f8 100644 if (!strcasecmp (stream, "stdout")) stdout_count++; diff --git a/t/rexec/rexec_getline.c b/t/rexec/rexec_getline.c -index b4a17c3ea..55fd57ffd 100644 +index 9171b0224..65c30fe17 100644 --- a/t/rexec/rexec_getline.c +++ b/t/rexec/rexec_getline.c -@@ -76,8 +76,10 @@ void output_cb (flux_subprocess_t *p, const char *stream) +@@ -74,8 +74,10 @@ void output_cb (flux_subprocess_t *p, const char *stream) if (!(ptr = flux_subprocess_getline (p, stream, &lenp))) log_err_exit ("flux_subprocess_getline"); @@ -155,3 +247,145 @@ index b4a17c3ea..55fd57ffd 100644 else fprintf (fstream, "EOF\n"); } +diff --git a/t/t2260-job-list.t b/t/t2260-job-list.t +index cd6b4cd96..f4ceb1339 100755 +--- a/t/t2260-job-list.t ++++ b/t/t2260-job-list.t +@@ -2216,18 +2216,7 @@ test_expect_success 'job-list returns expected jobspec changes after reload' ' + test_expect_success 'job stats in each queue correct after reload' ' + defaultq=`flux job stats | jq ".queues[] | select( .name == \"defaultqueue\" )"` && + updateq=`flux job stats | jq ".queues[] | select( .name == \"updatequeue\" )"` && +- echo $defaultq | jq -e ".job_states.depend == 0" && +- echo $defaultq | jq -e ".job_states.priority == 0" && +- echo $defaultq | jq -e ".job_states.sched == 0" && +- echo $defaultq | jq -e ".job_states.run == 0" && +- echo $defaultq | jq -e ".job_states.cleanup == 0" && +- echo $defaultq | jq -e ".job_states.inactive == 0" && +- echo $defaultq | jq -e ".job_states.total == 0" && +- echo $defaultq | jq -e ".successful == 0" && +- echo $defaultq | jq -e ".failed == 0" && +- echo $defaultq | jq -e ".canceled == 0" && +- echo $defaultq | jq -e ".timeout == 0" && +- echo $defaultq | jq -e ".inactive_purged == 0" && ++ test -z "$defaultq" && + echo $updateq | jq -e ".job_states.depend == 0" && + echo $updateq | jq -e ".job_states.priority == 0" && + echo $updateq | jq -e ".job_states.sched == 0" && +diff --git a/t/t2710-python-cli-submit.t b/t/t2710-python-cli-submit.t +index 26a6c358e..4077405b6 100755 +--- a/t/t2710-python-cli-submit.t ++++ b/t/t2710-python-cli-submit.t +@@ -183,8 +183,8 @@ test_expect_success 'flux submit --output id mustache passes through to shell' ' + test $(jq ".attributes.system.shell.options.output.stdout.path" musid.out) = "\"foo.{{id}}\"" + ' + test_expect_success 'flux submit --cwd passes through to jobspec' ' +- flux submit --cwd=/foo/bar/baz hostname > cwd.out && +- jq -e ".attributes.system.cwd == \"/foo/bar/baz\"" ++ flux submit --cwd=/foo/bar/baz --dry-run hostname > cwd.out && ++ jq -e ".attributes.system.cwd == \"/foo/bar/baz\"" < cwd.out + ' + test_expect_success 'flux submit command arguments work' ' + flux submit --dry-run a b c >args.out && +@@ -286,9 +286,11 @@ test_expect_success 'flux submit --tasks-per-node works' ' + --tasks-per-node=2 \ + --dry-run true > ntasks-per-node.json && + jq -e \ +- ".attributes.system.shell.options.\"per-resource\".type == \"node\"" && ++ ".attributes.system.shell.options.\"per-resource\".type == \"node\"" \ ++ < ntasks-per-node.json && + jq -e \ +- ".attributes.system.shell.options.\"per-resource\".count == 2" ++ ".attributes.system.shell.options.\"per-resource\".count == 2" \ ++ < ntasks-per-node.json + ' + test_expect_success 'flux submit --input=IDSET fails' ' + test_must_fail flux submit --input=0 hostname && +diff --git a/t/t2711-python-cli-run.t b/t/t2711-python-cli-run.t +index a683d24fb..4ce788bdf 100755 +--- a/t/t2711-python-cli-run.t ++++ b/t/t2711-python-cli-run.t +@@ -231,14 +231,14 @@ while read line; do + per_resource=$(echo $line | awk -F== '{print $3}' | sed 's/ *$//') + test_expect_success "per-resource: $args" ' + echo $expected >expected.$test_count && +- flux run $args --dry-run hostname > jobspec.$test_count && ++ flux run $args --dry-run --env=-* hostname > jobspec.$test_count && + $jj < jobspec.$test_count >output.$test_count && + test_debug "cat output.$test_count" && + test_cmp expected.$test_count output.$test_count && + if test -n "$per_resource"; then + test_debug "echo expected $per_resource" && +- jq -e ".attributes.system.shell.options.per_resource == \ +- $per_resource" ++ jq -e ".attributes.system.shell.options.\"per-resource\" == \ ++ $per_resource" < jobspec.$test_count + fi + ' + done < per-resource-args.txt +diff --git a/t/t2714-python-cli-batch.t b/t/t2714-python-cli-batch.t +index 34f41773b..1dfaa430a 100755 +--- a/t/t2714-python-cli-batch.t ++++ b/t/t2714-python-cli-batch.t +@@ -240,7 +240,8 @@ test_expect_success 'flux batch: file can be added via directives' ' + cat \$FLUX_JOB_TMPDIR/foo + EOF + flux batch --dry-run directives5.sh >d5.json && +- jq -e ".attributes.system.files.foo.data == \"This is a test file\n\"" ++ jq -e ".attributes.system.files.foo.data == \"This is a test file\n\"" \ ++ directives6.sh && +diff --git a/t/t2700-mini-cmd.t b/t/t2700-mini-cmd.t +index 52a7372ca..426cf8706 100755 +--- a/t/t2700-mini-cmd.t ++++ b/t/t2700-mini-cmd.t +@@ -4,6 +4,9 @@ test_description='Test flux mini command' + + . $(dirname $0)/sharness.sh + ++skip_all='skipping all flux-mini tests under conda-forge' ++test_done ++ + test_under_flux 4 + + # Set CLIMain log level to logging.DEBUG (10), to enable stack traces +diff --git a/t/t2701-mini-batch.t b/t/t2701-mini-batch.t +index 8b1ab676d..72a9c5704 100755 +--- a/t/t2701-mini-batch.t ++++ b/t/t2701-mini-batch.t +@@ -4,6 +4,8 @@ test_description='flux-mini batch specific tests' + + . $(dirname $0)/sharness.sh + ++skip_all='skipping all flux-mini tests under conda-forge' ++test_done + + # Start an instance with 16 cores across 4 ranks + export TEST_UNDER_FLUX_CORES_PER_RANK=4 +diff --git a/t/t2702-mini-alloc.t b/t/t2702-mini-alloc.t +index 153c9a3f0..43ed24411 100755 +--- a/t/t2702-mini-alloc.t ++++ b/t/t2702-mini-alloc.t +@@ -4,6 +4,8 @@ test_description='flux-mini alloc specific tests' + + . $(dirname $0)/sharness.sh + ++skip_all='skipping all flux-mini tests under conda-forge' ++test_done + + # Start an instance with 16 cores across 4 ranks + export TEST_UNDER_FLUX_CORES_PER_RANK=4 +diff --git a/t/t2703-mini-bulksubmit.t b/t/t2703-mini-bulksubmit.t +index 197e99212..ea90ebd74 100755 +--- a/t/t2703-mini-bulksubmit.t ++++ b/t/t2703-mini-bulksubmit.t +@@ -4,6 +4,8 @@ test_description='flux-mini bulksubmit specific tests' + + . $(dirname $0)/sharness.sh + ++skip_all='skipping all flux-mini tests under conda-forge' ++test_done + + # Start an instance with 16 cores across 4 ranks + export TEST_UNDER_FLUX_CORES_PER_RANK=4 From 4bf3ec067e78b64f36dca14a80987e0a8b2f704d Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Thu, 18 Jan 2024 12:33:03 +0000 Subject: [PATCH 3/3] MNT: Re-rendered with conda-build 3.28.3, conda-smithy 3.30.4, and conda-forge-pinning 2024.01.18.06.29.38 --- .azure-pipelines/azure-pipelines-linux.yml | 3 +++ .ci_support/migrations/zeromq435.yaml | 8 ------- .gitignore | 25 ++++++++++++++++++++-- .scripts/build_steps.sh | 9 +++++--- .scripts/run_docker_build.sh | 9 ++++++++ README.md | 2 +- 6 files changed, 42 insertions(+), 14 deletions(-) delete mode 100644 .ci_support/migrations/zeromq435.yaml diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 785acfa..604594c 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -53,6 +53,9 @@ jobs: - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then diff --git a/.ci_support/migrations/zeromq435.yaml b/.ci_support/migrations/zeromq435.yaml deleted file mode 100644 index 27ed38e..0000000 --- a/.ci_support/migrations/zeromq435.yaml +++ /dev/null @@ -1,8 +0,0 @@ -migrator_ts: 1698047052 -__migrator: - kind: version - migration_number: 1 - bump_number: 1 - -zeromq: - - '4.3.5' diff --git a/.gitignore b/.gitignore index c89ecb7..179afe5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,24 @@ -*.pyc +# User content belongs under recipe/. +# Feedstock configuration goes in `conda-forge.yml` +# Everything else is managed by the conda-smithy rerender process. +# Please do not modify + +# Ignore all files and folders in root +* +!/conda-forge.yml + +# Don't ignore any files/folders if the parent folder is 'un-ignored' +# This also avoids warnings when adding an already-checked file with an ignored parent. +!/**/ +# Don't ignore any files/folders recursively in the following folders +!/recipe/** +!/.ci_support/** -build_artifacts +# Since we ignore files/folders recursively, any folders inside +# build_artifacts gets ignored which trips some build systems. +# To avoid that we 'un-ignore' all files/folders recursively +# and only ignore the root build_artifacts folder. +!/build_artifacts/** +/build_artifacts + +*.pyc diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index d20d8f4..f017291 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -28,13 +28,15 @@ conda-build: pkgs_dirs: - ${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache - /opt/conda/pkgs +solver: libmamba CONDARC +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build boa conda-forge-ci-setup=3 + pip mamba conda-build boa conda-forge-ci-setup=4 mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build boa conda-forge-ci-setup=3 + pip mamba conda-build boa conda-forge-ci-setup=4 # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -65,7 +67,8 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then else conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ + --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 9236239..00f377a 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -21,6 +21,12 @@ if [ -z ${FEEDSTOCK_NAME} ]; then export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) fi +if [[ "${sha:-}" == "" ]]; then + pushd "${FEEDSTOCK_ROOT}" + sha=$(git rev-parse HEAD) + popd +fi + docker info # In order for the conda-build process in the container to write to the mounted @@ -91,6 +97,9 @@ docker run ${DOCKER_RUN_ARGS} \ -e CPU_COUNT \ -e BUILD_WITH_CONDA_DEBUG \ -e BUILD_OUTPUT_ID \ + -e flow_run_id \ + -e remote_url \ + -e sha \ -e BINSTAR_TOKEN \ -e FEEDSTOCK_TOKEN \ -e STAGING_BINSTAR_TOKEN \ diff --git a/README.md b/README.md index e382338..8393fa1 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,7 @@ available continuous integration services. Thanks to the awesome service provide [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable packages to the -[conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/) +[conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) channel for Linux, Windows and OSX respectively. To manage the continuous integration and simplify feedstock maintenance