Travis-CI: Fix Container Network (#906)

* Travis-CI: Fix Container Network

Add `--network=host` to Travis-CI PPC64le runners.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Travis PPC64le: Move Docker Work-Around

Move the control of the work-around for docker on ppc64le on travis
into the `docker_container` logic and do not expose as interface.

* style: minor fix

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mayeut <mayeut@users.noreply.github.com>
This commit is contained in:
Axel Huebl
2022-01-06 08:55:49 +01:00
committed by GitHub
co-authored by pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> mayeut
parent 9e18cb8656
commit 65c7a69af8
+13
View File
@@ -1,6 +1,7 @@
import io import io
import json import json
import os import os
import platform
import shlex import shlex
import subprocess import subprocess
import sys import sys
@@ -9,6 +10,8 @@ from pathlib import Path, PurePath
from types import TracebackType from types import TracebackType
from typing import IO, Dict, List, Optional, Sequence, Type, cast from typing import IO, Dict, List, Optional, Sequence, Type, cast
from cibuildwheel.util import CIProvider, detect_ci_provider
from .typing import PathOrStr, PopenBytes from .typing import PathOrStr, PopenBytes
@@ -44,6 +47,15 @@ class DockerContainer:
def __enter__(self) -> "DockerContainer": def __enter__(self) -> "DockerContainer":
self.name = f"cibuildwheel-{uuid.uuid4()}" self.name = f"cibuildwheel-{uuid.uuid4()}"
cwd_args = ["-w", str(self.cwd)] if self.cwd else [] cwd_args = ["-w", str(self.cwd)] if self.cwd else []
# work-around for Travis-CI PPC64le Docker runs since 2021:
# this avoids network splits
# https://github.com/pypa/cibuildwheel/issues/904
# https://github.com/conda-forge/conda-smithy/pull/1520
network_args = []
if detect_ci_provider() == CIProvider.travis_ci and platform.machine() == "ppc64le":
network_args = ["--network=host"]
shell_args = ["linux32", "/bin/bash"] if self.simulate_32_bit else ["/bin/bash"] shell_args = ["linux32", "/bin/bash"] if self.simulate_32_bit else ["/bin/bash"]
subprocess.run( subprocess.run(
[ [
@@ -53,6 +65,7 @@ class DockerContainer:
f"--name={self.name}", f"--name={self.name}",
"--interactive", "--interactive",
"--volume=/:/host", # ignored on CircleCI "--volume=/:/host", # ignored on CircleCI
*network_args,
*cwd_args, *cwd_args,
self.docker_image, self.docker_image,
*shell_args, *shell_args,