From a031e413f70e284ecb201717745c6e7b5c4ce7dc 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/rust-shed_linux.yml | 4 ++-- build/fbcode_builder/getdeps.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust-shed_linux.yml b/.github/workflows/rust-shed_linux.yml index 2e489e9ce..90efc8fa6 100644 --- a/.github/workflows/rust-shed_linux.yml +++ b/.github/workflows/rust-shed_linux.yml @@ -19,9 +19,9 @@ jobs: steps: - uses: actions/checkout@v4 - 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 rust-shed && 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 rust-shed && 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=. rust-shed >> "$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")