launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #32140
[Merge] ~ruinedyourlife/launchpad:artifactory-env-var-for-sourcecraft-builds into launchpad:master
Quentin Debhi has proposed merging ~ruinedyourlife/launchpad:artifactory-env-var-for-sourcecraft-builds into launchpad:master.
Commit message:
Add environment variables for artifactory variables
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~ruinedyourlife/launchpad/+git/launchpad/+merge/480171
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~ruinedyourlife/launchpad:artifactory-env-var-for-sourcecraft-builds into launchpad:master.
diff --git a/lib/lp/crafts/model/craftrecipebuildbehaviour.py b/lib/lp/crafts/model/craftrecipebuildbehaviour.py
index 50cfe6d..5a3522e 100644
--- a/lib/lp/crafts/model/craftrecipebuildbehaviour.py
+++ b/lib/lp/crafts/model/craftrecipebuildbehaviour.py
@@ -10,6 +10,8 @@ __all__ = [
"CraftRecipeBuildBehaviour",
]
+import json
+from configparser import NoSectionError
from typing import Any, Generator
from twisted.internet import defer
@@ -29,6 +31,7 @@ from lp.buildmaster.model.buildfarmjobbehaviour import (
)
from lp.crafts.interfaces.craftrecipebuild import ICraftRecipeBuild
from lp.registry.interfaces.series import SeriesStatus
+from lp.services.config import config
from lp.soyuz.adapters.archivedependencies import get_sources_list_for_building
@@ -72,6 +75,17 @@ class CraftRecipeBuildBehaviour(BuilderProxyMixin, BuildFarmJobBehaviourBase):
"Missing chroot for %s" % build.distro_arch_series.displayname
)
+ def build_environment_variables(self, distribution_name: str) -> dict:
+ try:
+ pairs = config["craftbuild." + distribution_name][
+ "environment_variables"
+ ]
+ except NoSectionError:
+ return {}
+ if pairs is None:
+ return {}
+ return json.loads(pairs)
+
@defer.inlineCallbacks
def extraBuildArgs(self, logger=None) -> Generator[Any, Any, BuildArgs]:
"""
@@ -119,6 +133,10 @@ class CraftRecipeBuildBehaviour(BuilderProxyMixin, BuildFarmJobBehaviourBase):
)
)
args["private"] = build.is_private
+ distribution_name = build.distro_series.distribution.name
+ args["environment_variables"] = self.build_environment_variables(
+ distribution_name
+ )
return args
def verifySuccessfulBuild(self):
diff --git a/lib/lp/services/config/schema-lazr.conf b/lib/lp/services/config/schema-lazr.conf
index f634d11..dc3f97a 100644
--- a/lib/lp/services/config/schema-lazr.conf
+++ b/lib/lp/services/config/schema-lazr.conf
@@ -301,6 +301,20 @@ secrets: none
scan_malware: False
+[craftbuild.soss]
+# value is a JSON Object
+# example:
+# environment_variables: {
+# "CARGO_ARTIFACTORY1_URL": "https://canonical.jfrog.io/artifactory/api/cargo/cargo-upstream/index/",
+# "CARGO_ARTIFACTORY1_TOKEN": "<TOKEN>"
+# "MAVEN_ARTIFACTORY1_URL": "https://canonical.jfrog.io/artifactory/api/maven/maven-upstream/index",
+# "MAVEN_ARTIFACTORY1_USERNAME": "user",
+# "MAVEN_ARTIFACTORY1_PASSWORD": "pass"
+# }
+#
+environment_variables: none
+
+
[codebrowse]
# Where to store codebrowse's sqlite "files changed" caches. If
# empty, the logs will be stored in a folder called 'logs' next to the
Follow ups