From 76b61d6e89330da75ef6d525b9395d7228e88a44 Mon Sep 17 00:00:00 2001 From: Alex Hornby Date: Tue, 7 Jan 2025 02:43:19 -0800 Subject: [PATCH] preserve http_proxy in generated github actions sudo invocatons Summary: X-link: https://github.com/facebookincubator/zstrong/pull/1102 make it possible to run the generated github actions locally with [act](https://github.com/nektos/act) when behind a proxy by preserving http_proxy in generated github actions sudo invocatons also updated to consistently write `apt-get` instead of the interactive `apt` (we had a mix) example usage (substitute myproxy for your actual proxy): ``` mkdir $HOME/act-artifacts cd ~/fizz time act -r -j build -W .github/workflows/getdeps_linux.yml --artifact-server-path=$HOME/act-artifacts --artifact-server-addr=127.0.0.1 --cache-server-addr=127.0.0.1 --env http_proxy=http://myproxy:8080 --env https_proxy=myproxy:8080 --action-offline-mode ``` Reviewed By: bigfootjon Differential Revision: D67864689 fbshipit-source-id: 45695675ca5672e56104c8c33803afe004ff98da --- .github/workflows/getdeps_linux.yml | 4 ++-- build/fbcode_builder/getdeps.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/getdeps_linux.yml b/.github/workflows/getdeps_linux.yml index c02b3f548..b478438c6 100644 --- a/.github/workflows/getdeps_linux.yml +++ b/.github/workflows/getdeps_linux.yml @@ -25,9 +25,9 @@ jobs: - name: Show disk space after freeing up run: df -h - name: Update system package info - run: sudo apt-get update + run: sudo --preserve-env=http_proxy apt-get update - name: Install system deps - run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive fb303 && sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive patchelf + run: sudo --preserve-env=http_proxy python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive fb303 && sudo --preserve-env=http_proxy python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive patchelf - id: paths name: Query paths run: python3 build/fbcode_builder/getdeps.py --allow-system-packages query-paths --recursive --src-dir=. fb303 >> "$GITHUB_OUTPUT" diff --git a/build/fbcode_builder/getdeps.py b/build/fbcode_builder/getdeps.py index 5efd2efc6..968d3a41c 100755 --- a/build/fbcode_builder/getdeps.py +++ b/build/fbcode_builder/getdeps.py @@ -440,7 +440,13 @@ def run_project_cmd(self, args, loader, manifest): elif manager == "deb": packages = sorted(set(all_packages["deb"])) if packages: - cmd_args = ["sudo", "apt", "install", "-y"] + packages + cmd_args = [ + "sudo", + "--preserve-env=http_proxy", + "apt-get", + "install", + "-y", + ] + packages elif manager == "homebrew": packages = sorted(set(all_packages["homebrew"])) if packages: @@ -1155,7 +1161,7 @@ def write_job_for_platform(self, platform, args): # noqa: C901 build_opts.allow_system_packages and build_opts.host_type.get_package_manager() ): - sudo_arg = "sudo " + sudo_arg = "sudo --preserve-env=http_proxy " allow_sys_arg = " --allow-system-packages" if build_opts.host_type.get_package_manager() == "deb": out.write(" - name: Update system package info\n")