Skip to content

Merge pull request #122 from bluesliverx/main #499

Merge pull request #122 from bluesliverx/main

Merge pull request #122 from bluesliverx/main #499

GitHub Actions / Test Results 3.10 failed Feb 15, 2024 in 0s

10 fail, 4 skipped, 164 pass in 8m 17s

178 tests  +28   164 ✔️ +18   8m 17s ⏱️ +16s
    1 suites ±  0       4 💤 ±  0 
    1 files   ±  0     10 +10 

Results for commit d756d15. ± Comparison against earlier commit 23c734d.

Annotations

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_use_build_registry (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
def test_use_build_registry():
        registry_mpib = MultiplatformImageBuilder()
        registry_mpib._start_local_registry()
        build_registry = registry_mpib._build_registry_address()
        try:
            with MultiplatformImageBuilder(build_registry=build_registry) as mpib:
                # Building should use the registry
                test_path = f"{TEST_DIR}/test-files/multiplatform"
>               built_image = mpib.build_multiple_images(
                    platforms=["linux/arm64", "linux/amd64"],
                    path=test_path,
                    file=f"{test_path}/Dockerfile",
                    do_multiprocessing=False,
                )

tests/test_multiplatform.py:552: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_tag_native_platform[platforms0-expected_image_tags0] (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
platforms = ['linux/arm64'], expected_image_tags = ['uuid1-linux-arm64']

    @pytest.mark.parametrize(
        "platforms, expected_image_tags",
        [(["linux/arm64"], ["uuid1-linux-arm64"])],
    )
    def test_tag_native_platform(platforms, expected_image_tags):
        test_path = f"{TEST_DIR}/test-files/multiplatform"
        with MultiplatformImageBuilder() as mpib:
>           built_image = mpib.build_multiple_images(
                platforms,
                path=test_path,
                file=f"{test_path}/Dockerfile",
                do_multiprocessing=False,
            )

tests/test_multiplatform.py:133: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_tag_native_platform_multiple_tags[test-image-tag-2000-platforms0-expected_image_tags0] (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
name = 'test-image-tag-2000', platforms = ['linux/arm64']
expected_image_tags = ['uuid1-linux-arm64']

    @pytest.mark.parametrize(
        "name, platforms, expected_image_tags",
        [("test-image-tag-2000", ["linux/arm64"], ["uuid1-linux-arm64"])],
    )
    def test_tag_native_platform_multiple_tags(name, platforms, expected_image_tags):
        tags = ["latest", "0.1.0"]
        test_path = f"{TEST_DIR}/test-files/multiplatform"
        with MultiplatformImageBuilder() as mpib:
>           built_image = mpib.build_multiple_images(
                platforms=platforms,
                path=test_path,
                file=f"{test_path}/Dockerfile",
                do_multiprocessing=False,
            )

tests/test_multiplatform.py:171: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_build[test-build-image-2000-platforms0-expected_image_tags0] (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
mock_build = <MagicMock name='build' id='139903006753840'>
mock_imagetools_inspect = <MagicMock name='inspect' id='139903006758832'>
mock_push = <MagicMock name='push' id='139903002625792'>
mock_remove = <MagicMock name='remove' id='139903002364464'>
name = 'test-build-image-2000', platforms = ['linux/arm64']
expected_image_tags = ['uuid1-linux-arm64']

    @pytest.mark.parametrize(
        "name, platforms, expected_image_tags",
        [
            (
                "test-build-image-2000",
                ["linux/arm64"],
                ["uuid1-linux-arm64"],
            ),
            (
                "test-build-image-2001",
                ["linux/amd64", "linux/arm64"],
                ["uuid1-linux-amd64", "uuid1-linux-arm64"],
            ),
        ],
    )
    @patch("buildrunner.docker.multiplatform_image_builder.docker.image.remove")
    @patch("buildrunner.docker.multiplatform_image_builder.docker.push")
    @patch(
        "buildrunner.docker.multiplatform_image_builder.docker.buildx.imagetools.inspect"
    )
    @patch("buildrunner.docker.multiplatform_image_builder.docker.buildx.build")
    def test_build(
        mock_build,
        mock_imagetools_inspect,
        mock_push,
        mock_remove,
        name,
        platforms,
        expected_image_tags,
    ):
        _ = mock_build
        _ = mock_push
        _ = mock_remove
        mock_imagetools_inspect.return_value = MagicMock()
        mock_imagetools_inspect.return_value.config.digest = "myfakeimageid"
        test_path = f"{TEST_DIR}/test-files/multiplatform"
        with MultiplatformImageBuilder() as mpib:
>           built_image = mpib.build_multiple_images(
                platforms=platforms,
                path=test_path,
                file=f"{test_path}/Dockerfile",
                do_multiprocessing=False,
            )

tests/test_multiplatform.py:374: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_build[test-build-image-2001-platforms1-expected_image_tags1] (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
mock_build = <MagicMock name='build' id='139903002837632'>
mock_imagetools_inspect = <MagicMock name='inspect' id='139903001955824'>
mock_push = <MagicMock name='push' id='139903001956592'>
mock_remove = <MagicMock name='remove' id='139903002071424'>
name = 'test-build-image-2001', platforms = ['linux/amd64', 'linux/arm64']
expected_image_tags = ['uuid1-linux-amd64', 'uuid1-linux-arm64']

    @pytest.mark.parametrize(
        "name, platforms, expected_image_tags",
        [
            (
                "test-build-image-2000",
                ["linux/arm64"],
                ["uuid1-linux-arm64"],
            ),
            (
                "test-build-image-2001",
                ["linux/amd64", "linux/arm64"],
                ["uuid1-linux-amd64", "uuid1-linux-arm64"],
            ),
        ],
    )
    @patch("buildrunner.docker.multiplatform_image_builder.docker.image.remove")
    @patch("buildrunner.docker.multiplatform_image_builder.docker.push")
    @patch(
        "buildrunner.docker.multiplatform_image_builder.docker.buildx.imagetools.inspect"
    )
    @patch("buildrunner.docker.multiplatform_image_builder.docker.buildx.build")
    def test_build(
        mock_build,
        mock_imagetools_inspect,
        mock_push,
        mock_remove,
        name,
        platforms,
        expected_image_tags,
    ):
        _ = mock_build
        _ = mock_push
        _ = mock_remove
        mock_imagetools_inspect.return_value = MagicMock()
        mock_imagetools_inspect.return_value.config.digest = "myfakeimageid"
        test_path = f"{TEST_DIR}/test-files/multiplatform"
        with MultiplatformImageBuilder() as mpib:
>           built_image = mpib.build_multiple_images(
                platforms=platforms,
                path=test_path,
                file=f"{test_path}/Dockerfile",
                do_multiprocessing=False,
            )

tests/test_multiplatform.py:374: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_start_local_registry_on_build (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
def test_start_local_registry_on_build():
        with MultiplatformImageBuilder() as mpib:
            # Check that the registry is NOT running
            assert mpib._mp_registry_info is None
            assert mpib._local_registry_is_running is False
    
            # Building should start the registry
            test_path = f"{TEST_DIR}/test-files/multiplatform"
>           mpib.build_multiple_images(
                platforms=["linux/arm64", "linux/amd64"],
                path=test_path,
                file=f"{test_path}/Dockerfile",
                do_multiprocessing=False,
            )

tests/test_multiplatform.py:83: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_build_multiple_builds (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
mock_build = <MagicMock name='build' id='139903003939344'>
mock_imagetools_inspect = <MagicMock name='inspect' id='139903002430144'>
mock_push = <MagicMock name='push' id='139903002432880'>
mock_remove = <MagicMock name='remove' id='139903002099520'>

    @patch("buildrunner.docker.multiplatform_image_builder.docker.image.remove")
    @patch("buildrunner.docker.multiplatform_image_builder.docker.push")
    @patch(
        "buildrunner.docker.multiplatform_image_builder.docker.buildx.imagetools.inspect"
    )
    @patch("buildrunner.docker.multiplatform_image_builder.docker.buildx.build")
    def test_build_multiple_builds(
        mock_build, mock_imagetools_inspect, mock_push, mock_remove
    ):
        _ = mock_remove
        mock_imagetools_inspect.return_value = MagicMock()
        mock_imagetools_inspect.return_value.config.digest = "myfakeimageid"
        platforms1 = ["linux/amd64", "linux/arm64"]
        expected_image_tags1 = [
            "uuid1-linux-amd64",
            "uuid1-linux-arm64",
        ]
    
        platforms2 = ["linux/amd64", "linux/arm64"]
        expected_image_tags2 = [
            "uuid2-linux-amd64",
            "uuid2-linux-arm64",
        ]
    
        test_path = f"{TEST_DIR}/test-files/multiplatform"
        with MultiplatformImageBuilder() as mpib:
            # Build set 1
>           built_image1 = mpib.build_multiple_images(
                platforms=platforms1,
                path=test_path,
                file=f"{test_path}/Dockerfile",
                do_multiprocessing=False,
            )

tests/test_multiplatform.py:417: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_push_with_dest_names (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
def test_push_with_dest_names():
        dest_names = None
        try:
            with MultiplatformImageBuilder() as remote_mp:
                remote_mp._start_local_registry()
                reg_add = remote_mp._build_registry_address()
                assert reg_add is not None
    
                tags = ["latest", "0.1.0"]
                build_name = "test-push-image-2001"
                dest_names = [f"{reg_add}/{build_name}", f"{reg_add}/another-name"]
                platforms = ["linux/arm64", "linux/amd64"]
    
                test_path = f"{TEST_DIR}/test-files/multiplatform"
                with MultiplatformImageBuilder() as mpib:
>                   built_image = mpib.build_multiple_images(
                        platforms=platforms,
                        path=test_path,
                        file=f"{test_path}/Dockerfile",
                        do_multiprocessing=False,
                    )

tests/test_multiplatform.py:305: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_tag_native_platform_keep_images[test-image-tag-2000-platforms0-expected_image_tags0] (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
name = 'test-image-tag-2000', platforms = ['linux/arm64']
expected_image_tags = ['uuid1-linux-arm64']

    @pytest.mark.parametrize(
        "name, platforms, expected_image_tags",
        [("test-image-tag-2000", ["linux/arm64"], ["uuid1-linux-arm64"])],
    )
    def test_tag_native_platform_keep_images(name, platforms, expected_image_tags):
        tag = "latest"
        test_path = f"{TEST_DIR}/test-files/multiplatform"
        try:
            with MultiplatformImageBuilder() as mpib:
>               built_image = mpib.build_multiple_images(
                    platforms=platforms,
                    path=test_path,
                    file=f"{test_path}/Dockerfile",
                    do_multiprocessing=False,
                )

tests/test_multiplatform.py:210: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check warning on line 0 in tests.test_multiplatform

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

test_push (tests.test_multiplatform) failed

test-reports/test-results.xml
Raw output
def test_push():
        try:
            with MultiplatformImageBuilder() as remote_mp:
                remote_mp._start_local_registry()
                reg_add = remote_mp._build_registry_address()
                assert reg_add is not None
    
                tags = ["latest", "0.1.0"]
                build_name = f"{reg_add}/test-push-image-2001"
                platforms = ["linux/arm64", "linux/amd64"]
    
                test_path = f"{TEST_DIR}/test-files/multiplatform"
                with MultiplatformImageBuilder() as mpib:
>                   built_image = mpib.build_multiple_images(
                        platforms=platforms,
                        path=test_path,
                        file=f"{test_path}/Dockerfile",
                        do_multiprocessing=False,
                    )

tests/test_multiplatform.py:261: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
buildrunner/docker/multiplatform_image_builder.py:408: in build_multiple_images
    if BuildRunnerConfig.get_instance().global_config.disable_multi_platform:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'buildrunner.config.BuildRunnerConfig'>

    @classmethod
    def get_instance(cls) -> "BuildRunnerConfig":
        if not cls._INSTANCE:
>           raise Exception("Configuration was accessed before initialization")
E           Exception: Configuration was accessed before initialization

buildrunner/config/__init__.py:235: Exception

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

4 skipped tests found

There are 4 skipped tests, see "Raw output" for the full list of skipped tests.
Raw output
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-build.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-override-amd.yaml-args1-0]
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-override-arm.yaml-args2-0]
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-run.yaml-None-0]

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results 3.10

178 tests found

There are 178 tests, see "Raw output" for the full list of tests.
Raw output
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-build.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-override-amd.yaml-args1-0]
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-override-arm.yaml-args2-0]
tests.test_buildrunner_files ‑ test_buildrunner_arm_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files/arm-arch-test-platform-run.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-alias_dir_mount.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-build_dir_mount.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-buildargs.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-dependencies.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-docker-pull-failure.yaml-None-78]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-general.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-inject-nonexistent-dir.yaml-None-78]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-jinja.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-local-images-and-platform.yaml-args8-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-multi-platform-image-reuse.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-multi-platform-inject.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-multi-platform-none-path.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-push-artifact.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-push.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-redirect.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-simple.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-ssh.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-systemd.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-timeout.yaml-args18-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-unsafe-git.yaml-None-0]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-xfail-redirect_loop1.yaml-None-78]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-xfail-redirect_loop2.yaml-None-78]
tests.test_buildrunner_files ‑ test_buildrunner_dir[/home/runner/work/buildrunner/buildrunner/tests/test-files-test-xfail-redirect_loop_simple.yaml-None-78]
tests.test_caching ‑ test_restore_cache_basic
tests.test_caching ‑ test_restore_cache_no_cache
tests.test_caching ‑ test_restore_cache_prefix_matching
tests.test_caching ‑ test_restore_cache_prefix_timestamps
tests.test_caching ‑ test_save_cache_basic
tests.test_caching ‑ test_save_cache_multiple_cache_keys
tests.test_caching ‑ test_save_cache_multiple_caches
tests.test_cli ‑ test__get_global_config_overrides[args0-None-result0]
tests.test_cli ‑ test__get_global_config_overrides[args1-None-result1]
tests.test_cli ‑ test__get_global_config_overrides[args2-None-result2]
tests.test_cli ‑ test__get_global_config_overrides[args3-None-result3]
tests.test_cli ‑ test__get_global_config_overrides[args4-config_file_contents4-result4]
tests.test_cli ‑ test__load_security_scan_config_file_failure[bad-yaml-could not be loaded: mapping values are not allowed here]
tests.test_cli ‑ test__load_security_scan_config_file_failure[does-not-exist-could not be found]
tests.test_cli ‑ test__load_security_scan_config_file_failure[empty-file-must contain a dictionary]
tests.test_cli ‑ test__load_security_scan_config_file_failure[yaml-list-must contain a dictionary]
tests.test_config_validation.test_global_config ‑ test_config_data[\n        github:\n          company_github:\n            endpoint: 'https://git.company.com/api'\n            version: 'v3'\n            username: 'USERNAME'\n            app_token: 'APP_TOKEN'\n            bogus: 'bogus'\n        -error_matches4]
tests.test_config_validation.test_global_config ‑ test_config_data[\n        github:\n          company_github:\n            endpoint: 'https://git.company.com/api'\n            version: 'v3'\n            username: 'USERNAME'\n            app_token: 'APP_TOKEN'\n        -error_matches3]
tests.test_config_validation.test_global_config ‑ test_config_data[\n    env:\n      ENV_VAR1: 'value1'\n      ENV_VAR2: 'true'\n    build-servers:\n      user@host:\n        - alias1\n        - alias2\n    ssh-keys:\n      key: |\n        -----INLINE KEY-----\n        ...\n      password: <password if needed>\n      prompt-password: True\n      aliases:\n        - 'my-github-key'\n    local-files:\n      digitalmarketing.mvn.settings: '~/.m2/settings.xml'\n      some.other.file.alias: |\n        The contents of the file...\n    caches-root: ~/.buildrunner/caches\n    docker-registry: docker-mirror.example.com\n    temp-dir: /my/tmp/dir\n        -error_matches0]
tests.test_config_validation.test_global_config ‑ test_config_data[\n    ssh-keys:\n      - file: /path/to/ssh/private/key.pem\n        -error_matches1]
tests.test_config_validation.test_global_config ‑ test_config_data[\n    ssh-keys:\n      key: |\n        -----INLINE KEY-----\n        ...\n      password: <password if needed>\n      # If set, prompt for the ssh key password.  Ignored if password is set.\n      prompt-password: True\n      aliases:\n        - 'my-github-key'\n      bogus-attribute: 'bogus'\n        -error_matches2]
tests.test_config_validation.test_global_config ‑ test_local_files_merged
tests.test_config_validation.test_global_config ‑ test_overrides
tests.test_config_validation.test_multi_platform ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            run:\n                post-build: path/to/build/context\n    -error_matches2]
tests.test_config_validation.test_multi_platform ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM {{DOCKER_REGISTRY}}/busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push:\n                repository: user1/buildrunner-test-multi-platform\n                tags: []\n            run:\n                image: user1/buildrunner-test-multi-platform\n                cmd: echo "Hello World"\n    -error_matches0]
tests.test_config_validation.test_multi_platform ‑ test_config_data[\n    steps:\n        build-container-single-platform:\n            build:\n                dockerfile: |\n                    FROM busybox:latest\n            run:\n                post-build: path/to/build/context\n    -error_matches3]
tests.test_config_validation.test_multi_platform ‑ test_config_data[\n    steps:\n        build-container:\n            build:\n                dockerfile: |\n                    FROM {{DOCKER_REGISTRY}}/busybox:latest\n            push:\n                repository: user1/buildrunner-test-multi-platform\n                tags: []\n            run:\n                image: user1/buildrunner-test-multi-platform\n                cmd: echo "Hello World"\n    -error_matches1]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: tests/test_config_validation/Dockerfile.retag\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push: user1/buildrunner-multi-platform-image:latest\n        retag-multi-platform-image:\n            build:\n                dockerfile: |\n                    FROM user1/buildrunner-multi-platform-image\n            push: user1/buildrunner-multi-platform-image2\n    -error_matches7]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            commit: user1/buildrunner-multi-platform-image\n        retag-multi-platform-image:\n            run:\n                image: user1/buildrunner-multi-platform-image\n                cmd: echo "Hello World"\n            push: user1/buildrunner-multi-platform-image2\n    -error_matches3]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push: user1/buildrunner-multi-platform-image:latest\n        retag-multi-platform-image:\n            build:\n                dockerfile: |\n                    FROM user1/buildrunner-multi-platform-image\n            push: user1/buildrunner-multi-platform-image2\n    -error_matches6]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push: user1/buildrunner-multi-platform-image:latest\n        retag-multi-platform-image:\n            run:\n                image: user1/buildrunner-multi-platform-image:latest\n                cmd: echo "Hello World"\n            push: user1/buildrunner-multi-platform-image2:latest\n    -error_matches0]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push: user1/buildrunner-multi-platform-image\n        retag-multi-platform-image:\n            run:\n                image: user1/buildrunner-multi-platform-image:latest\n                cmd: echo "Hello World"\n            push: user1/buildrunner-multi-platform-image2\n    -error_matches1]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM {{DOCKER_REGISTRY}}/busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push: user1/buildrunner-test-multi-platform\n\n        retag-built-image:\n            run:\n                image: user1/buildrunner-test-multi-platform\n                cmd: echo "Hello World"\n            commit: user1/buildrunner-test-multi-platform2\n    -error_matches4]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM {{DOCKER_REGISTRY}}/busybox:latest\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push:\n                repository: user1/buildrunner-test-multi-platform\n                tags: []\n\n        retag-built-image:\n            run:\n                image: user1/buildrunner-test-multi-platform\n                cmd: echo "Hello World"\n            push:\n                repository: user1/buildrunner-test-multi-platform2\n                tags: []\n    -error_matches2]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-multi-platform:\n            build:\n                dockerfile: |\n                    FROM {{DOCKER_REGISTRY}}/busybox\n                platforms:\n                    - linux/amd64\n                    - linux/arm64/v8\n            push:\n                - repository: user1/buildrunner-test-multi-platform\n                  tags: [ 'latest', '0.0.1' ]\n                - repository: user2/buildrunner-test-multi-platform\n                  tags: [ 'latest', '0.0.1' ]\n\n        use-built-image1:\n            run:\n                image: user1/buildrunner-test-multi-platform:0.0.1\n                cmd: echo "Hello World"\n\n        use-built-image2:\n            run:\n                image: user2/buildrunner-test-multi-platform:0.0.1\n                cmd: echo "Hello World"\n    -error_matches8]
tests.test_config_validation.test_retagging ‑ test_config_data[\n    steps:\n        build-container-single-platform:\n            build:\n                dockerfile: |\n                    FROM {{DOCKER_REGISTRY}}/busybox:latest\n            push: user1/buildrunner-test-single-platform:latest\n\n        retag-built-image:\n            run:\n                image: user1/buildrunner-test-single-platform:latest\n                cmd: echo "Hello World"\n            push: user1/buildrunner-test-single-platform2\n    -error_matches5]
tests.test_config_validation.test_retagging ‑ test_invalid_retagging_with_buildrunner_build_tag[buildrunner_build_tag_explict]
tests.test_config_validation.test_retagging ‑ test_invalid_retagging_with_buildrunner_build_tag[buildrunner_build_tag_implied]
tests.test_config_validation.test_retagging ‑ test_valid_config_with_buildrunner_build_tag[\n        steps:\n            build-container:\n                build:\n                    dockerfile: |\n                        FROM {{ DOCKER_REGISTRY }}/busybox\n                    platforms:\n                        - linux/amd64\n                        - linux/arm64/v8\n                push:\n                    - repository: user1/buildrunner-test-multi-platform\n                      tags: [ 'latest', '0.0.1', {{ BUILDRUNNER_BUILD_DOCKER_TAG }} ]\n\n            use-built-image1:\n                build:\n                    dockerfile: |\n                        FROM user1/buildrunner-test-multi-platform:latest\n                    platforms:\n                        - linux/amd64\n                        - linux/arm64/v8\n                push:\n                    repository: user1/buildrunner-test-multi-platform2\n                    tags: [ 'latest' ]\n    ]
tests.test_config_validation.test_retagging ‑ test_valid_config_with_buildrunner_build_tag[\n        steps:\n            build-container:\n                build:\n                    dockerfile: |\n                        FROM {{ DOCKER_REGISTRY }}/busybox\n                    platforms:\n                        - linux/amd64\n                        - linux/arm64/v8\n                push:\n                    - repository: user1/buildrunner-test-multi-platform\n                      tags: [ 'latest', '0.0.1', {{ BUILDRUNNER_BUILD_DOCKER_TAG }} ]\n\n            use-built-image1:\n                run:\n                    image: user1/buildrunner-test-multi-platform\n                    cmd: echo "Hello World"\n    ]
tests.test_config_validation.test_retagging ‑ test_valid_config_with_buildrunner_build_tag[\n        steps:\n            build-container:\n                build:\n                    dockerfile: |\n                        FROM {{ DOCKER_REGISTRY }}/nginx:latest\n                        RUN printf '{{ BUILDRUNNER_BUILD_NUMBER }}' > /usr/share/nginx/html/index.html\n                push:\n                    repository:  user1/buildrunner-test-image\n                    tags: []\n    ]
tests.test_config_validation.test_retagging ‑ test_valid_config_with_buildrunner_build_tag[\n        steps:\n            build-container:\n                build:\n                    dockerfile: |\n                        FROM {{ DOCKER_REGISTRY }}/nginx:latest\n                        RUN printf '{{ BUILDRUNNER_BUILD_NUMBER }}' > /usr/share/nginx/html/index.html\n                push:\n                    repository: user1/buildrunner-test-image\n    ]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-remote:\n        remote:\n          host: myserver.ut1\n          cmd: docker build -t mytest-reg/buildrunner-test .\n          artifacts:\n            bogus/path/to/artifacts/*:\n              type: tar\n              compression: gz\n    -error_matches2]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-remote:\n        remote:\n          host: myserver.ut1\n          cmd: docker build -t mytest-reg/buildrunner-test .\n          artifacts:\n            bogus/path/to/artifacts/*:\n              type: tar\n              compression: lzma\n    -error_matches0]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*: ''\n            bogus/path/to/this_thing: ''\n    -error_matches7]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              format: uncompressed\n    -error_matches3]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              push: True\n              something_else: awesome data\n              something_else2: True\n              something_else3: 123\n    -error_matches9]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              push: True\n    -error_matches8]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              push: bogus\n    -error_matches6]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              type: tar\n    -error_matches5]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              type: zip\n              compression: lzma\n    -error_matches1]
tests.test_config_validation.test_validation_artifacts ‑ test_config_data[\n    steps:\n      build-run:\n        run:\n          artifacts:\n            bogus/path/to/artifacts/*:\n              type: zip\n    -error_matches4]
tests.test_config_validation.test_validation_config ‑ test_config_data[\n    steps:\n      generate_files:\n        run:\n          image: docker.company.com/abc-xdm-proto-build:latest\n          ssh-keys: ["company-github"]\n          env:\n            GIT_TOKEN: 'blahblahblahblahblahblah'\n          cmd: sbt clean generateAwareJsonFiles combineXDM generateProtobufFiles\n          artifacts:\n            'target/protobufFiles/Database*.proto':\n            'target/rawJson/Database*.json':\n            'target/AwareJson/Aware.json':\n            'target/combinedXDM/complete-schema-template.schema.json':\n      build-dev-rpm:\n        build:\n          inject:\n            "buildrunner.results/generate_files/*.proto": "proto/"\n            "buildrunner.results/generate_files/A*.json": "json/"\n            "db_build/dms.repo.centos7": db_build/dms.repo\n          dockerfile: |\n            FROM docker-release.dr.corp.company.com/centos-7-x86_64-obuild:latest\n            ADD db_build/dms.repo /etc/yum.repos.d/dms.repo\n            RUN rpm --rebuilddb; yum clean all; yum install -y db-omniture-libs-protobuf-2.6.1 db-scds-proto-1.0 db-scds-json-1.0\n            ADD proto/*.proto /tmp/proto/\n            ADD json/*.json /tmp/json/\n        run:\n          cmds:\n            - "chown -R httpd:www /source"\n            - "echo ~ Compiling previous proto version..."\n            - "mkdir -p /tmp/existingscds && for f in `ls -d /home/omniture/protobuf/scds/*.proto`; do protoc -I=/home/omniture/protobuf --cpp_out /tmp/existingscds $f; done"\n            - "echo ~ Compiling current proto version..."\n          artifacts:\n            # pull the log if rpmbuild fails\n            "db_tmp/rpm/TMPDIR/*.log": {type: 'log'}\n            # pull the noarch packages\n            "db_tmp/rpm/RPMS/noarch/*.noarch.rpm": {platform: 'centos-noarch'}\n      build-proto-java:\n        build:\n          inject:\n            "buildrunner.results/generate_files/*.proto": "proto"\n          dockerfile: |\n            FROM docker.company.com/abc-base-containers/protobuf-builder:java8-2.5.0\n            ADD proto/*.proto /tmp/proto/scds/\n        run:\n          caches:\n            maven: "/root/.m2/repository"\n          cmds: [\n            'mvn package ${BUILDRUNNER_DO_PUSH+deploy} -am -pl proto-java'\n          ]\n          artifacts:\n            '*/target/*.jar':\n      download-country:\n        build:\n          inject:\n            "db_build/bin/*": "db_build/bin/"\n          dockerfile: |\n            FROM docker-release.dr.corp.company.com/centos-7-x86_64-obuild\n            ADD db_build/bin/* /tmp/\n        run:\n          cmds:\n            - '/tmp/download_country.sh'\n            # strip all quotes\n            - "sed -i 's/bogus//g' country_codes.csv"\n            # Add missing ?,? because it's not in the DB\n            - 'echo "?,?" >> country_codes.csv'\n            # keep first 2 columns, uppercase 2nd column\n            - 'awk -F, ''{OFS=","; $2 = toupper($2); {print $1,$2}}'' country_codes.csv > country_code_map.csv'\n          artifacts:\n            'country_code_map.csv':\n      build-transform-proto-xdm:\n        build:\n          inject:\n            "buildrunner.results/generate_files/*.proto": "proto"\n            "buildrunner.results/generate_files/*.json": "json"\n          dockerfile: |\n            FROM docker.company.com/abc-base-containers/protobuf-builder:java8-2.5.0\n            RUN apt-get update && apt-get -y install openssh-client\n            ADD proto/*.proto /tmp/proto/scds/\n        run:\n          env:\n            ARTIFACTORY_USER: 'cool_user'\n            ARTIFACTORY_API_TOKEN: 'blahblahblahblahblahblahblah'\n          caches:\n            maven: "/root/.m2/repository"\n          shell: /bin/bash\n          cmds: [\n            'cp /tmp/json/raw/*json json/raw',\n            'mkdir -p csv',\n            'cp /tmp/csv/*csv csv',\n            'curl -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 > jq',\n            'chmod +x jq',\n          ]\n          artifacts:\n            'transform-proto-xdm/target/*':\n            'transform-proto-xdm-generator/target/*':\n            'validator-xdm/target/*':\n      generate_docs:\n        run:\n          image: docker.company.com/abc-xdm-proto-build:latest\n          ssh-keys: ["company-github"]\n          env:\n            GIT_TOKEN: 'blahblahblahblahblahblahblah'\n          cmd: "sbt clean generateDocs ${BUILDRUNNER_DO_PUSH+publishGHPages}"\n          artifacts:\n            'target/docs/*':\n    -error_matches5]
tests.test_config_validation.test_validation_config ‑ test_config_data[\n    version: 2.0\n    steps:\n      build-container-single-platform1:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platform: linux/amd64\n        push:\n          repository: mytest-reg/buildrunner-test\n          tags:\n            - latest\n      build-container-multi-platform2:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n      build-container-multi-platform-push3:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          - myimages/image1\n          - repository: myimages/image2\n            tags:\n              - latest\n    -error_matches3]
tests.test_config_validation.test_validation_config ‑ test_config_data[\n    version: string\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platform: linux/amd64\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches4]
tests.test_config_validation.test_validation_config ‑ test_config_data[config_data0-error_matches0]
tests.test_config_validation.test_validation_config ‑ test_config_data[config_data1-error_matches1]
tests.test_config_validation.test_validation_config ‑ test_config_data[config_data2-error_matches2]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform1:\n        build:\n          dockerfile: |\n            FROM busybox:latest\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push: mytest-reg/buildrunner-test-multi-platform:latest\n      build-container-multi-platform2:\n        build:\n          dockerfile: |\n            FROM busybox:latest\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push: mytest-reg/buildrunner-test-multi-platform:not-latest\n    -error_matches8]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform1:\n        build:\n          path: .\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push: mytest-reg/buildrunner-test-multi-platform:latest\n      build-container-single-platform:\n        build:\n          path: .\n          platform: linux/arm64\n        push: mytest-reg/buildrunner-test-multi-platform:latest\n    -error_matches9]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform1:\n        build:\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push: mytest-reg/buildrunner-test-multi-platform:latest\n      build-container-multi-platform2:\n        build:\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push: mytest-reg/buildrunner-test-multi-platform:latest\n    -error_matches7]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform1:\n        build:\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n      build-container-multi-platform2:\n        build:\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches6]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          import: mytest-reg/buildrunner-test-multi-platform:latest\n    -error_matches15]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          platforms:\n            - linux/amd64\n            - linux/arm64\n          import: mytest-reg/buildrunner-test-multi-platform:latest\n    -error_matches14]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platform: linux/amd64\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches0]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platforms: linux/amd64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches1]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platforms:\n            - linux/amd64\n            - linux/arm64\n          no-cache: true\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches5]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platforms:\n            - linux/amd64\n            - linux/arm64\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches4]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-container-multi-platform:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n          platforms:\n          - linux/amd64\n          cache_from:\n          - image1\n        push:\n          repository: mytest-reg/buildrunner-test-multi-platform\n          tags:\n            - latest\n    -error_matches2]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-is-path:\n        build: .\n    -error_matches3]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-remote:\n        remote:\n          host: myserver.ut1\n          cmd: docker build -t mytest-reg/buildrunner-test .\n          artifacts:\n            bogus/path/to/artifacts/*:\n              type: tar\n              compression: lzma\n    -error_matches10]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      build-remote:\n        remote:\n          host: myserver.ut1\n    -error_matches11]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      my-build-step:\n        run:\n          services:\n            my-service-container:\n              build: <path/to/build/context or map>\n              #image: <the Docker image to run>\n              cmd: <a command to run>\n              provisioners:\n                shell: path/to/script.sh\n                salt: <simple salt sls yaml config>\n              shell: /bin/sh\n              cwd: /source\n              user: <user to run commands as (can be username:group / uid:gid)>\n              hostname: <the hostname>\n              dns:\n                - 8.8.8.8\n                - 8.8.4.4\n              dns_search: mydomain.com\n              extra_hosts:\n                "www1.test.com": "192.168.0.1"\n                "www2.test.com": "192.168.0.2"\n              env:\n                ENV_VARIABLE_ONE: value1\n                ENV_VARIABLE_TWO: value2\n              files:\n                namespaced.file.alias1: "/path/to/readonly/file/or/dir"\n                namespaced.file.alias2: "/path/to/readwrite/file/or/dir:rw"\n              volumes_from:\n                - my-service-container\n              ports:\n                8081: 8080\n              pull: true\n              systemd: true\n              containers:\n                - container1\n                - container2\n              wait_for:\n                - 80\n                - port: 9999\n                  timeout: 30\n              inject-ssh-agent: true\n    -error_matches16]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      pypi1:\n        run:\n          image: python:2\n          cmds:\n            - python setup.py sdist\n          artifacts:\n            "dist/*.tar.gz": { type: 'python-sdist' }\n        pypi-push: artifactory-releng\n      pypi2:\n        run:\n          image: python:2\n          cmds:\n            - python -m build\n          artifacts:\n            "dist/*.tar.gz": { type: 'python-sdist' }\n            "dist/*.whl": { type: 'python-wheel' }\n        pypi-push:\n          repository: https://artifactory.example.com/artifactory/api/pypi/pypi-myownrepo\n          username: myuser\n          password: mypass\n    -error_matches13]
tests.test_config_validation.test_validation_step ‑ test_config_data[\n    steps:\n      step1:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n        commit:\n          repository: mytest-reg/image1\n          tags:\n            - latest\n      step2:\n        build:\n          path: .\n          dockerfile: Dockerfile\n          pull: false\n        commit: mytest-reg/image1\n    -error_matches12]
tests.test_config_validation.test_validation_step ‑ test_transforms
tests.test_dependencies.TestDependencies ‑ test_cycle_dependency
tests.test_dependencies.TestDependencies ‑ test_missing_version
tests.test_dependencies.TestDependencies ‑ test_no_reorder
tests.test_dependencies.TestDependencies ‑ test_not_defined_dependency
tests.test_dependencies.TestDependencies ‑ test_not_supported_version
tests.test_dependencies.TestDependencies ‑ test_reorder_steps
tests.test_dependencies.TestDependencies ‑ test_reorder_steps_higher_version
tests.test_image_info ‑ test_find_native_platform[Bogus-Noarch-bogus]
tests.test_image_info ‑ test_find_native_platform[Darwin-aarch64-linux/arm64/v7]
tests.test_image_info ‑ test_find_native_platform[Darwin-x86_64-linux/amd64]
tests.test_image_info ‑ test_find_native_platform[Linux-aarch64-linux/arm64/v7]
tests.test_image_info ‑ test_find_native_platform[Linux-x86_64-linux/amd64]
tests.test_loggers ‑ test_console_logger[-lines0]
tests.test_loggers ‑ test_console_logger[\noutput1\n\n-lines3]
tests.test_loggers ‑ test_console_logger[output1-lines1]
tests.test_loggers ‑ test_console_logger[output1\n-lines2]
tests.test_loggers ‑ test_container_logger_for_methods
tests.test_loggers ‑ test_container_logger_set_logger_handlers
tests.test_loggers ‑ test_container_logger_write[None-outputs0-lines0]
tests.test_loggers ‑ test_container_logger_write[None-outputs1-lines1]
tests.test_loggers ‑ test_container_logger_write[p1-outputs2-lines2]
tests.test_loggers ‑ test_docker_pull_progress
tests.test_loggers ‑ test_initialize_root_logger[False-False-False-20-%(log_color)s%(asctime)s %(levelname)-8s %(message)s-%(log_color)s%(asctime)s %(levelname)-8s %(message)s]
tests.test_loggers ‑ test_initialize_root_logger[True-True-True-10-%(log_color)s%(levelname)-8s %(message)s-%(log_color)s%(asctime)s %(levelname)-8s %(message)s]
tests.test_multiplatform ‑ test__get_build_cache_options[b1-None-True]
tests.test_multiplatform ‑ test__get_build_cache_options[b1-cache_builders1-True]
tests.test_multiplatform ‑ test__get_build_cache_options[b1-cache_builders2-True]
tests.test_multiplatform ‑ test__get_build_cache_options[b2-cache_builders3-False]
tests.test_multiplatform ‑ test_build[test-build-image-2000-platforms0-expected_image_tags0]
tests.test_multiplatform ‑ test_build[test-build-image-2001-platforms1-expected_image_tags1]
tests.test_multiplatform ‑ test_build_multiple_builds
tests.test_multiplatform ‑ test_push
tests.test_multiplatform ‑ test_push_with_dest_names
tests.test_multiplatform ‑ test_start_local_registry
tests.test_multiplatform ‑ test_start_local_registry_on_build
tests.test_multiplatform ‑ test_tag_native_platform[platforms0-expected_image_tags0]
tests.test_multiplatform ‑ test_tag_native_platform_keep_images[test-image-tag-2000-platforms0-expected_image_tags0]
tests.test_multiplatform ‑ test_tag_native_platform_multiple_tags[test-image-tag-2000-platforms0-expected_image_tags0]
tests.test_multiplatform ‑ test_use_build_registry
tests.test_push_artifact ‑ test_no_artifact_properties
tests.test_push_artifact ‑ test_no_artifacts
tests.test_push_artifact ‑ test_no_push_property
tests.test_push_artifact ‑ test_push_false
tests.test_push_artifact ‑ test_push_true
tests.test_push_security_scan ‑ test__security_scan_mp
tests.test_push_security_scan ‑ test__security_scan_mp_empty
tests.test_push_security_scan ‑ test__security_scan_scanner_disabled
tests.test_push_security_scan ‑ test__security_scan_scanner_trivy
tests.test_push_security_scan ‑ test__security_scan_scanner_unsupported
tests.test_push_security_scan ‑ test__security_scan_single
tests.test_push_security_scan ‑ test__security_scan_single_empty
tests.test_push_security_scan ‑ test__security_scan_trivy
tests.test_push_security_scan ‑ test__security_scan_trivy_empty_file
tests.test_push_security_scan ‑ test__security_scan_trivy_failure
tests.test_push_security_scan ‑ test__security_scan_trivy_file_not_created
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results[input_results0-parsed_results0]
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results[input_results1-parsed_results1]
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results[input_results2-parsed_results2]
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results[input_results3-parsed_results3]
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results_max_score_threshold[2.1-True]
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results_max_score_threshold[2.11-False]
tests.test_push_security_scan ‑ test__security_scan_trivy_parse_results_max_score_threshold[None-False]
tests.test_util_checksum ‑ test_checksum
tests.test_utils_flock ‑ test_flock_aquire1
tests.test_utils_flock ‑ test_flock_aquire_exlusive_timeout
tests.test_utils_flock ‑ test_flock_exclusive_aquire
tests.test_utils_flock ‑ test_flock_release
tests.test_utils_flock ‑ test_flock_shared_aquire
tests.test_version ‑ test_bad_version
tests.test_version ‑ test_invalid_config_number_version
tests.test_version ‑ test_invalid_config_version_type
tests.test_version ‑ test_invalid_delim_version
tests.test_version ‑ test_missing_version_file
tests.test_version ‑ test_missing_version_in_version_file
tests.test_version ‑ test_valid_version_file