From 618eb0b761ff763f79c9214cb4282edb59cfe566 Mon Sep 17 00:00:00 2001 From: John Duggan Date: Wed, 11 Mar 2026 15:00:25 -0400 Subject: [PATCH 1/2] Fix missing rucio temp directory --- .gitlab-ci.yml | 4 ++-- lib/galaxy/objectstore/rucio.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index adbdbdda17..7c0209c6a9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,8 +9,8 @@ variables: CONTAINER_GALAXY_URL: "${NDIP_DOCKER_REPOSITORY}/${CI_PROJECT_PATH}" CONTAINER_GALAXY_BASE_URL: "${CONTAINER_GALAXY_URL}/base" CONTAINER_GALAXY_COMMIT_URL: "${CONTAINER_GALAXY_URL}/commit" - GALAXY_VERSION_PYTHON: 25.1.dev3+ornl - GALAXY_VERSION_DOCKER: 25.1.dev3.ornl + GALAXY_VERSION_PYTHON: 25.1.dev4+ornl + GALAXY_VERSION_DOCKER: 25.1.dev4.ornl # This import is for the func_rse_docker_* functions before_script: diff --git a/lib/galaxy/objectstore/rucio.py b/lib/galaxy/objectstore/rucio.py index b42f86dcdc..5dba4560cf 100644 --- a/lib/galaxy/objectstore/rucio.py +++ b/lib/galaxy/objectstore/rucio.py @@ -165,6 +165,7 @@ class RucioBroker: temp_directory = self.extra_dirs["temp"] self.rucio_config_path = os.path.join(temp_directory, "rucio.cfg") key_for_pass = "password" + os.makedirs(temp_directory, exist_ok=True) with open(self.rucio_config_path, "w") as f: f.write( f"""[client] -- GitLab From 9484a5617cc20bf44d7f681830b5f13933036f07 Mon Sep 17 00:00:00 2001 From: John Duggan Date: Thu, 12 Mar 2026 10:18:21 -0400 Subject: [PATCH 2/2] Don't query GitHub for test file --- .../test_files/toolshed_community_files.tgz | Bin 0 -> 20531 bytes test/unit/tool_shed/test_shed_index.py | 16 ++++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 test/unit/tool_shed/test_files/toolshed_community_files.tgz diff --git a/test/unit/tool_shed/test_files/toolshed_community_files.tgz b/test/unit/tool_shed/test_files/toolshed_community_files.tgz new file mode 100644 index 0000000000000000000000000000000000000000..af271d0219f4beb81947b62d741fef1472e713f1 GIT binary patch literal 20531 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 GHU