Loading gitlabci_local/engines/docker.py +3 −5 Changes for gitlabci_local/engines/docker.py: 3 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -103,17 +103,15 @@ class Docker: return self._client.containers.run( image, command=command, detach=True, entrypoint=entrypoint, environment=variables, network_mode=network, privileged=True, remove=False, stdout=True, stderr=True, stream=True, volumes=volumes, working_dir=directory) stdout=True, stderr=True, stream=True, volumes=volumes.get(), working_dir=directory) # Sockets def sockets(self, volumes): # Add socket volume if not Platform.IS_WINDOWS: volumes['/var/run/docker.sock'] = { # 'bind': '/var/run/docker.sock', 'mode': 'rw' } volumes.add('/var/run/docker.sock', '/var/run/docker.sock', 'rw') # Stop def stop(self, container, timeout): Loading gitlabci_local/engines/podman.py +2 −2 Changes for gitlabci_local/engines/podman.py: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -141,8 +141,8 @@ class Podman: args_entrypoint = ['--entrypoint', entrypoint] # Adapt mounts if isinstance(volumes, dict): for volume in volumes.items(): if volumes and isinstance(volumes.get(), dict): for volume in volumes.get().items(): options = '' if volume[1]['mode'] == 'ro': options += ':ro' Loading gitlabci_local/runner.py +4 −12 Changes for gitlabci_local/runner.py: 4 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import time from .const import Platform from .engine import Engine from .main import NAME from .types import Volumes from .utils import getPath, nameCheck, resolvePath # Constants Loading Loading @@ -112,6 +113,7 @@ def runner(options, job_data, last_result, jobs_status): quiet = options.quiet result = False time_start = time.time() volumes = Volumes() # Filter when if last_result and job_data['when'] not in ['on_success', 'manual', 'always']: Loading Loading @@ -296,12 +298,7 @@ def runner(options, job_data, last_result, jobs_status): scriptFile.file.close() # Mount repository folder volumes = { # pathParent: { 'bind': pathTargetParent, 'mode': 'rw' } } volumes.add(pathParent, pathTargetParent, 'rw') # Extend mounts if options.volume: Loading @@ -326,13 +323,8 @@ def runner(options, job_data, last_result, jobs_status): volume_target = resolvePath(os.path.expandvars(volume)) volume_mode = 'rw' # Clear volume overrides for volume in list(volumes.keys()): if volume_target == volumes[volume]['bind']: volumes.pop(volume) # Append volume mounts volumes[volume_host] = {'bind': volume_target, 'mode': volume_mode} volumes.add(volume_host, volume_target, volume_mode) # Prepare variables variables = dict() Loading gitlabci_local/types.py 0 → 100644 +24 −0 Changes for gitlabci_local/types.py: 24 added lines, 0 removed lines. Original line number Diff line number Diff line #!/usr/bin/env python3 # Volumes class class Volumes: # Members _volumes = None # Constructor def __init__(self): self._volumes = dict() # Add def add(self, source, target, mode): while source in self._volumes: source = '/.' + source self._volumes[source] = { # 'bind': target, 'mode': mode } # Get def get(self): return self._volumes tests/local/.gitlab-ci.yml +3 −0 Changes for tests/local/.gitlab-ci.yml: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ stages: - deploy volumes: - .:/opt/src - .:/opt/src2 - ./tests:/opt/src/tests - ../:/opt/parent:ro workdir: . Loading Loading @@ -92,6 +93,8 @@ variables: script: - ls -la /opt/src/ - ls -la /opt/src/tests/ - ls -la /opt/src2/ - ls -la /opt/src2/tests/ - ls -la /opt/parent/ - touch /opt/parent/test && exit 1 || true - cat /etc/alpine-release Loading Loading
gitlabci_local/engines/docker.py +3 −5 Changes for gitlabci_local/engines/docker.py: 3 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -103,17 +103,15 @@ class Docker: return self._client.containers.run( image, command=command, detach=True, entrypoint=entrypoint, environment=variables, network_mode=network, privileged=True, remove=False, stdout=True, stderr=True, stream=True, volumes=volumes, working_dir=directory) stdout=True, stderr=True, stream=True, volumes=volumes.get(), working_dir=directory) # Sockets def sockets(self, volumes): # Add socket volume if not Platform.IS_WINDOWS: volumes['/var/run/docker.sock'] = { # 'bind': '/var/run/docker.sock', 'mode': 'rw' } volumes.add('/var/run/docker.sock', '/var/run/docker.sock', 'rw') # Stop def stop(self, container, timeout): Loading
gitlabci_local/engines/podman.py +2 −2 Changes for gitlabci_local/engines/podman.py: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -141,8 +141,8 @@ class Podman: args_entrypoint = ['--entrypoint', entrypoint] # Adapt mounts if isinstance(volumes, dict): for volume in volumes.items(): if volumes and isinstance(volumes.get(), dict): for volume in volumes.get().items(): options = '' if volume[1]['mode'] == 'ro': options += ':ro' Loading
gitlabci_local/runner.py +4 −12 Changes for gitlabci_local/runner.py: 4 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import time from .const import Platform from .engine import Engine from .main import NAME from .types import Volumes from .utils import getPath, nameCheck, resolvePath # Constants Loading Loading @@ -112,6 +113,7 @@ def runner(options, job_data, last_result, jobs_status): quiet = options.quiet result = False time_start = time.time() volumes = Volumes() # Filter when if last_result and job_data['when'] not in ['on_success', 'manual', 'always']: Loading Loading @@ -296,12 +298,7 @@ def runner(options, job_data, last_result, jobs_status): scriptFile.file.close() # Mount repository folder volumes = { # pathParent: { 'bind': pathTargetParent, 'mode': 'rw' } } volumes.add(pathParent, pathTargetParent, 'rw') # Extend mounts if options.volume: Loading @@ -326,13 +323,8 @@ def runner(options, job_data, last_result, jobs_status): volume_target = resolvePath(os.path.expandvars(volume)) volume_mode = 'rw' # Clear volume overrides for volume in list(volumes.keys()): if volume_target == volumes[volume]['bind']: volumes.pop(volume) # Append volume mounts volumes[volume_host] = {'bind': volume_target, 'mode': volume_mode} volumes.add(volume_host, volume_target, volume_mode) # Prepare variables variables = dict() Loading
gitlabci_local/types.py 0 → 100644 +24 −0 Changes for gitlabci_local/types.py: 24 added lines, 0 removed lines. Original line number Diff line number Diff line #!/usr/bin/env python3 # Volumes class class Volumes: # Members _volumes = None # Constructor def __init__(self): self._volumes = dict() # Add def add(self, source, target, mode): while source in self._volumes: source = '/.' + source self._volumes[source] = { # 'bind': target, 'mode': mode } # Get def get(self): return self._volumes
tests/local/.gitlab-ci.yml +3 −0 Changes for tests/local/.gitlab-ci.yml: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ stages: - deploy volumes: - .:/opt/src - .:/opt/src2 - ./tests:/opt/src/tests - ../:/opt/parent:ro workdir: . Loading Loading @@ -92,6 +93,8 @@ variables: script: - ls -la /opt/src/ - ls -la /opt/src/tests/ - ls -la /opt/src2/ - ls -la /opt/src2/tests/ - ls -la /opt/parent/ - touch /opt/parent/test && exit 1 || true - cat /etc/alpine-release Loading