Skip to content

Commit

Permalink
fix: success check does not consider pkg_dir #836 (#838)
Browse files Browse the repository at this point in the history
completely untested but it is an obvious bug.
If you want to change the package dirs earlier in the code somewhere,
please suggest changes

---------

Co-authored-by: Ryan Dale <[email protected]>
Co-authored-by: Johannes Köster <[email protected]>
Co-authored-by: Johannes Köster <[email protected]>
Co-authored-by: Björn Grüning <[email protected]>
  • Loading branch information
5 people authored Nov 19, 2024
1 parent ce37553 commit 6240d31
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 2 deletions.
12 changes: 10 additions & 2 deletions bioconda_utils/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

import subprocess as sp
from collections import defaultdict, namedtuple
import os
import logging
import itertools
import logging
import os
import sys
import time

from typing import List, Optional
from bioconda_utils.skiplist import Skiplist
Expand Down Expand Up @@ -140,6 +142,12 @@ def build(recipe: str, pkg_paths: List[str] = None,
noarch=is_noarch,
live_logs=live_logs)
# Use presence of expected packages to check for success
if docker_builder.pkg_dir is not None:
platform = utils.RepoData.native_platform()
subfolder = utils.RepoData.platform2subdir(platform)
conda_build_config = utils.load_conda_build_config(platform=subfolder)
pkg_paths = [p.replace(conda_build_config.output_folder, docker_builder.pkg_dir) for p in pkg_paths]

for pkg_path in pkg_paths:
if not os.path.exists(pkg_path):
logger.error(
Expand Down
24 changes: 24 additions & 0 deletions test/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,30 @@ def test_single_build_only(single_build):
ensure_missing(pkg)


@pytest.mark.skipif(SKIP_DOCKER_TESTS, reason='skipping on osx')
@pytest.mark.long_running_2
def test_single_build_pkg_dir(recipes_fixture):
"""
Builds the "one" recipe with pkg_dir.
"""
logger.error("Making recipe builder")
docker_builder = docker_utils.RecipeBuilder(
use_host_conda_bld=True,
pkg_dir=os.getcwd() + "/output",
docker_base_image=DOCKER_BASE_IMAGE)
mulled_test = False
logger.error("DONE")
logger.error("Fixture: Building 'one' within docker with pkg_dir")
res = build.build(
recipe=recipes_fixture.recipe_dirs['one'],
pkg_paths=recipes_fixture.pkgs['one'],
docker_builder=docker_builder,
mulled_test=mulled_test,
)
logger.error("Fixture: Building 'one' within docker and pkg_dir -- DONE")
assert res.success


@pytest.mark.skipif(SKIP_DOCKER_TESTS, reason='skipping on osx')
def test_single_build_with_post_test(single_build):
for pkg in single_build:
Expand Down

0 comments on commit 6240d31

Please sign in to comment.