← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~pelpsi/launchpad-buildd:fetch-service-apt-initialization into launchpad-buildd:master

 

Simone Pelosi has proposed merging ~pelpsi/launchpad-buildd:fetch-service-apt-initialization into launchpad-buildd:master.

Commit message:
APT should use the proxy when run
    
Fetch service env variables should be in place and passed as env when
apt runs. In this way the fetch-service is aware of all the packages that
we are trying to install and can validate them.


Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~pelpsi/launchpad-buildd/+git/launchpad-buildd/+merge/473926
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~pelpsi/launchpad-buildd:fetch-service-apt-initialization into launchpad-buildd:master.
diff --git a/lpbuildd/target/build_rock.py b/lpbuildd/target/build_rock.py
index 2da488c..814f98a 100644
--- a/lpbuildd/target/build_rock.py
+++ b/lpbuildd/target/build_rock.py
@@ -106,7 +106,11 @@ class BuildRock(
             self.delete_apt_cache()
             self.install_mitm_certificate()
             self.install_snapd_proxy(proxy_url=self.args.proxy_url)
-            self.backend.run(["apt-get", "-y", "update"])
+            env = self.build_proxy_environment(
+                proxy_url=self.args.proxy_url,
+                use_fetch_service=self.args.use_fetch_service
+            )
+            self.backend.run(["apt-get", "-y", "update"], env=env)
             self.restart_snapd()
             self.configure_git_protocol_v2()
 
diff --git a/lpbuildd/target/build_snap.py b/lpbuildd/target/build_snap.py
index 4e8962f..16cc259 100644
--- a/lpbuildd/target/build_snap.py
+++ b/lpbuildd/target/build_snap.py
@@ -169,7 +169,11 @@ class BuildSnap(
             self.delete_apt_cache()
             self.install_mitm_certificate()
             self.install_snapd_proxy(proxy_url=self.args.proxy_url)
-            self.backend.run(["apt-get", "-y", "update"])
+            env = self.build_proxy_environment(
+                proxy_url=self.args.proxy_url,
+                use_fetch_service=self.args.use_fetch_service
+            )
+            self.backend.run(["apt-get", "-y", "update"], env=env)
             self.restart_snapd()
             self.configure_git_protocol_v2()
 
diff --git a/lpbuildd/target/tests/test_build_rock.py b/lpbuildd/target/tests/test_build_rock.py
index f05c08d..3c1aadf 100644
--- a/lpbuildd/target/tests/test_build_rock.py
+++ b/lpbuildd/target/tests/test_build_rock.py
@@ -287,6 +287,14 @@ class TestBuildRock(TestCase):
             proxy_script.write("proxy script\n")
             os.fchmod(proxy_script.fileno(), 0o755)
         build_rock.install()
+        env = {
+            "http_proxy": "http://proxy.example:3128/";,
+            "https_proxy": "http://proxy.example:3128/";,
+            "GIT_PROXY_COMMAND": "/usr/local/bin/lpbuildd-git-proxy",
+            "SNAPPY_STORE_NO_CDN": "1",
+            "CARGO_HTTP_CAINFO": "/usr/local/share/ca-certificates/local-ca.crt",
+            "GOPROXY": "direct"
+        }
         self.assertThat(
             build_rock.backend.run.calls,
             MatchesListwise(
@@ -318,7 +326,7 @@ class TestBuildRock(TestCase):
                             "proxy.https=http://proxy.example:3128/";,
                         ]
                     ),
-                    RanAptGet("update"),
+                    RanCommand(["apt-get", "-y", "update"], **env),
                     RanCommand(
                         [
                             "systemctl",
@@ -368,6 +376,14 @@ class TestBuildRock(TestCase):
         with open("/builderbin/lpbuildd-git-proxy", "w") as proxy_script:
             proxy_script.write("proxy script\n")
             os.fchmod(proxy_script.fileno(), 0o755)
+        env = {
+            "http_proxy": "http://proxy.example:3128/";,
+            "https_proxy": "http://proxy.example:3128/";,
+            "GIT_PROXY_COMMAND": "/usr/local/bin/lpbuildd-git-proxy",
+            "SNAPPY_STORE_NO_CDN": "1",
+            "CARGO_HTTP_CAINFO": "/usr/local/share/ca-certificates/local-ca.crt",
+            "GOPROXY": "direct"
+        }
         build_rock.install()
         self.assertThat(
             build_rock.backend.run.calls,
@@ -400,7 +416,7 @@ class TestBuildRock(TestCase):
                             "proxy.https=http://proxy.example:3128/";,
                         ]
                     ),
-                    RanAptGet("update"),
+                    RanCommand(["apt-get", "-y", "update"], **env),
                     RanCommand(
                         [
                             "systemctl",
diff --git a/lpbuildd/target/tests/test_build_snap.py b/lpbuildd/target/tests/test_build_snap.py
index 6729aa3..b7336fc 100644
--- a/lpbuildd/target/tests/test_build_snap.py
+++ b/lpbuildd/target/tests/test_build_snap.py
@@ -218,6 +218,12 @@ class TestBuildSnap(TestCase):
         with open("/builderbin/lpbuildd-git-proxy", "w") as proxy_script:
             proxy_script.write("proxy script\n")
             os.fchmod(proxy_script.fileno(), 0o755)
+        env = {
+            "http_proxy": "http://proxy.example:3128/";,
+            "https_proxy": "http://proxy.example:3128/";,
+            "GIT_PROXY_COMMAND": "/usr/local/bin/lpbuildd-git-proxy",
+            "SNAPPY_STORE_NO_CDN": "1",
+        }
         build_snap.install()
         self.assertThat(
             build_snap.backend.run.calls,
@@ -245,7 +251,7 @@ class TestBuildSnap(TestCase):
                             "proxy.https=http://proxy.example:3128/";,
                         ]
                     ),
-                    RanAptGet("update"),
+                    RanCommand(["apt-get", "-y", "update"], **env),
                     RanCommand(
                         [
                             "systemctl",
@@ -303,6 +309,12 @@ class TestBuildSnap(TestCase):
         with open("/builderbin/lpbuildd-git-proxy", "w") as proxy_script:
             proxy_script.write("proxy script\n")
             os.fchmod(proxy_script.fileno(), 0o755)
+        env = {
+            "http_proxy": "http://proxy.example:3128/";,
+            "https_proxy": "http://proxy.example:3128/";,
+            "GIT_PROXY_COMMAND": "/usr/local/bin/lpbuildd-git-proxy",
+            "SNAPPY_STORE_NO_CDN": "1",
+        }
         build_snap.install()
         self.assertThat(
             build_snap.backend.run.calls,
@@ -330,7 +342,7 @@ class TestBuildSnap(TestCase):
                             "proxy.https=http://proxy.example:3128/";,
                         ]
                     ),
-                    RanAptGet("update"),
+                    RanCommand(["apt-get", "-y", "update"], **env),
                     RanCommand(
                         [
                             "systemctl",

Follow ups