From 3042f8ce11127367f623098ef79cfa67950ba6d3 Mon Sep 17 00:00:00 2001 From: Arjun Suresh Date: Sun, 3 Aug 2025 21:44:53 +0530 Subject: [PATCH 1/3] Automatically mount --outdirname for docker run --- automation/script/docker.py | 3 ++- automation/script/docker_utils.py | 17 ++++++----------- automation/script/module.py | 27 ++++++++++++++------------- script/install-llvm-src/meta.yaml | 4 ++++ 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/automation/script/docker.py b/automation/script/docker.py index 0d33391e7..dea7f3fb8 100644 --- a/automation/script/docker.py +++ b/automation/script/docker.py @@ -393,8 +393,9 @@ def docker_run(self_module, i): docker_inputs['mounts'] = res['mounts'] container_env_string = res['container_env_string'] + res = update_docker_environment( - docker_settings, env, container_env_string) + docker_settings, env, self_module.host_env_keys, container_env_string) if res['return'] > 0: return res diff --git a/automation/script/docker_utils.py b/automation/script/docker_utils.py index cb733f93a..ca7ab2af6 100644 --- a/automation/script/docker_utils.py +++ b/automation/script/docker_utils.py @@ -40,6 +40,10 @@ def process_mounts(mounts, env, docker_settings, f_run_cmd, run_state): if 'mounts' in docker_settings: mounts.extend(docker_settings['mounts']) + for key in [ "MLC_INPUT", "MLC_OUTPUT", "MLC_OUTDIRNAME" ]: + if "${{ "+key+" }}:${{ "+key+" }}" not in mounts: + mounts.append("${{ "+key+" }}:${{ "+key+" }}") + docker_input_mapping = docker_settings.get("input_mapping", {}) container_env_string = "" @@ -182,7 +186,7 @@ def prepare_docker_inputs(input_params, docker_settings, return docker_inputs, dockerfile_path -def update_docker_environment(docker_settings, env, container_env_string): +def update_docker_environment(docker_settings, env, host_env_keys, container_env_string): """ Updates the Docker environment variables and build arguments. @@ -194,15 +198,6 @@ def update_docker_environment(docker_settings, env, container_env_string): Returns: dict: A dictionary with a return code indicating success or failure. """ - # Define proxy-related environment variable keys to propagate - proxy_keys = [ - "ftp_proxy", "FTP_PROXY", - "http_proxy", "HTTP_PROXY", - "https_proxy", "HTTPS_PROXY", - "no_proxy", "NO_PROXY", - "socks_proxy", "SOCKS_PROXY", - "GH_TOKEN" - ] # Ensure the '+ CM_DOCKER_BUILD_ARGS' key exists in the environment if '+ MLC_DOCKER_BUILD_ARGS' not in env: @@ -210,7 +205,7 @@ def update_docker_environment(docker_settings, env, container_env_string): # Add proxy environment variables to Docker build arguments and container # environment string - for proxy_key in proxy_keys: + for proxy_key in host_env_keys: proxy_value = os.environ.get(proxy_key) if proxy_value: container_env_string += f" --env.{proxy_key}={proxy_value} " diff --git a/automation/script/module.py b/automation/script/module.py index a2ab27753..9c2a3a3ea 100644 --- a/automation/script/module.py +++ b/automation/script/module.py @@ -67,6 +67,19 @@ def __init__(self, action_object, automation_file): 'MLC_GIT_*', 'MLC_RENEW_CACHE_ENTRY'] + self.host_env_keys = [ + "GH_TOKEN", + "ftp_proxy", + "FTP_PROXY", + "http_proxy", + "HTTP_PROXY", + "https_proxy", + "HTTPS_PROXY", + "no_proxy", + "NO_PROXY", + "socks_proxy", + "SOCKS_PROXY"] + self.input_flags_converted_to_tmp_env = { 'path': {'desc': 'Filesystem path to search for executable', 'default': ''}} @@ -486,19 +499,7 @@ def _run(self, i): 'append_unique': True}) # take some env from the user environment - keys = [ - "GH_TOKEN", - "ftp_proxy", - "FTP_PROXY", - "http_proxy", - "HTTP_PROXY", - "https_proxy", - "HTTPS_PROXY", - "no_proxy", - "NO_PROXY", - "socks_proxy", - "SOCKS_PROXY"] - for key in keys: + for key in self.host_env_keys: if os.environ.get(key, '') != '' and env.get(key, '') == '': env[key] = os.environ[key] diff --git a/script/install-llvm-src/meta.yaml b/script/install-llvm-src/meta.yaml index c59f0a5c2..ca44d5003 100644 --- a/script/install-llvm-src/meta.yaml +++ b/script/install-llvm-src/meta.yaml @@ -247,6 +247,10 @@ variations: - full-history env: MLC_GIT_CHECKOUT_TAG: '#' +docker: + skip_run_cmd: true + pre_run_cmds: + - mlc pull repo versions: {} tests: run_inputs: From a52682aef8ee43cee5a9fed63fb00beae8d4a912 Mon Sep 17 00:00:00 2001 From: Arjun Suresh Date: Sun, 3 Aug 2025 21:45:41 +0530 Subject: [PATCH 2/3] Support docker run for install-gcc --- script/install-gcc-src/meta.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/script/install-gcc-src/meta.yaml b/script/install-gcc-src/meta.yaml index 741ab39b6..edb79119b 100644 --- a/script/install-gcc-src/meta.yaml +++ b/script/install-gcc-src/meta.yaml @@ -37,6 +37,10 @@ tags: - gcc - src-gcc uid: faae0ebd6e1242db +docker: + skip_run_cmd: true + pre_run_cmds: + - mlc pull repo tests: run_inputs: - {} From 036b78169c0c4d09acd46a9ab7cc60db555eca83 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 3 Aug 2025 16:16:00 +0000 Subject: [PATCH 3/3] [Automated Commit] Format Codebase [skip ci] --- automation/script/docker.py | 1 - automation/script/docker_utils.py | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/automation/script/docker.py b/automation/script/docker.py index dea7f3fb8..bfa639533 100644 --- a/automation/script/docker.py +++ b/automation/script/docker.py @@ -393,7 +393,6 @@ def docker_run(self_module, i): docker_inputs['mounts'] = res['mounts'] container_env_string = res['container_env_string'] - res = update_docker_environment( docker_settings, env, self_module.host_env_keys, container_env_string) if res['return'] > 0: diff --git a/automation/script/docker_utils.py b/automation/script/docker_utils.py index ca7ab2af6..6e2d430ac 100644 --- a/automation/script/docker_utils.py +++ b/automation/script/docker_utils.py @@ -40,9 +40,9 @@ def process_mounts(mounts, env, docker_settings, f_run_cmd, run_state): if 'mounts' in docker_settings: mounts.extend(docker_settings['mounts']) - for key in [ "MLC_INPUT", "MLC_OUTPUT", "MLC_OUTDIRNAME" ]: - if "${{ "+key+" }}:${{ "+key+" }}" not in mounts: - mounts.append("${{ "+key+" }}:${{ "+key+" }}") + for key in ["MLC_INPUT", "MLC_OUTPUT", "MLC_OUTDIRNAME"]: + if "${{ " + key + " }}:${{ " + key + " }}" not in mounts: + mounts.append("${{ " + key + " }}:${{ " + key + " }}") docker_input_mapping = docker_settings.get("input_mapping", {}) container_env_string = "" @@ -186,7 +186,8 @@ def prepare_docker_inputs(input_params, docker_settings, return docker_inputs, dockerfile_path -def update_docker_environment(docker_settings, env, host_env_keys, container_env_string): +def update_docker_environment( + docker_settings, env, host_env_keys, container_env_string): """ Updates the Docker environment variables and build arguments.