summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimdim11 <[email protected]>2025-09-10 00:01:14 +0300
committerdimdim11 <[email protected]>2025-09-10 00:17:04 +0300
commitbb74ecf007c06029f5b8fa3265bd4096053b0cd2 (patch)
treeaef55b4fb2ce794f2016c5dac56a99b1220edf03
parent7addb64d3b697294b42f4ae3729cb8250511d879 (diff)
Support ENV() in ya ide gradle
Support ENV() in ya ide gradle commit_hash:0282b57e8cc970864748d53d1297f2588c43347b
-rw-r--r--build/conf/java.conf4
-rw-r--r--build/export_generators/ide-gradle/generator.toml1
-rw-r--r--build/export_generators/ide-gradle/jvm_args.jinja9
-rw-r--r--build/ymake.core.conf3
4 files changed, 14 insertions, 3 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf
index db70603527c..2169747f93d 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -156,7 +156,7 @@ macro JUNIT_TESTS_JAR(Dir, Jar) {
SET(UNITTEST_MOD $Dir/$Jar)
}
-_BUILD_JUNIT5_JAR_SEM=$_BUILD_JAR_SEM && junit5_test $_TEST_CWD_SEM
+_BUILD_JUNIT5_JAR_SEM=$_BUILD_JAR_SEM && junit5_test $_TEST_CWD_SEM $_TEST_ENV_SEM
multimodule JUNIT5 {
# ATTENTION ya ide idea relies on this submodule name to find scope of `ya make` build before project generation
@@ -216,7 +216,7 @@ multimodule JUNIT5 {
}
}
-_BUILD_JUNIT4_JAR_SEM=$_BUILD_JAR_SEM && junit4_test $_TEST_CWD_SEM
+_BUILD_JUNIT4_JAR_SEM=$_BUILD_JAR_SEM && junit4_test $_TEST_CWD_SEM $_TEST_ENV_SEM
multimodule JTEST {
# ATTENTION ya ide idea relies on this submodule name to find scope of `ya make` build before project generation
diff --git a/build/export_generators/ide-gradle/generator.toml b/build/export_generators/ide-gradle/generator.toml
index c5a3a886242..ce57bdaaf32 100644
--- a/build/export_generators/ide-gradle/generator.toml
+++ b/build/export_generators/ide-gradle/generator.toml
@@ -40,6 +40,7 @@ add_vcs_info_to_mf="bool"
junit4_test="flag"
junit5_test="flag"
test_cwd="list"
+test_env="list"
app_main_class="str"
enable_preview="flag"
use_annotation_processor="list"
diff --git a/build/export_generators/ide-gradle/jvm_args.jinja b/build/export_generators/ide-gradle/jvm_args.jinja
index 5694e1a6cf7..fd577cbb1de 100644
--- a/build/export_generators/ide-gradle/jvm_args.jinja
+++ b/build/export_generators/ide-gradle/jvm_args.jinja
@@ -62,7 +62,8 @@ tasks.withType<JavaExec> {
{%- set test_jvm_args = test_jvm_args + extra_jvm_args -%}
{%- endif -%}
{%- set test_cwds = extra_targets|selectattr('test_cwd')|map(attribute='test_cwd')|sum|unique -%}
-{%- if test_jvm_args|length or test_cwds|length %}
+{%- set test_envs = extra_targets|selectattr('test_env')|map(attribute='test_env')|sum|unique -%}
+{%- if test_jvm_args|length or test_cwds|length or test_envs|length %}
tasks.withType<Test> {
{#- glue -#}
@@ -80,5 +81,11 @@ tasks.withType<Test> {
{%- endif %}
workingDir({{ PatchRoots(test_cwd) }})
{% endif -%}
+{%- if test_envs|length -%}
+{%- for test_env in test_envs -%}
+{%- set key_and_value = split(test_env, '=', 2) %}
+ environment("{{ key_and_value[0] }}", "{{ key_and_value[1] }}")
+{%- endfor %}
+{% endif -%}
}
{%- endif -%}
diff --git a/build/ymake.core.conf b/build/ymake.core.conf
index 9a514daf06f..367b1bed110 100644
--- a/build/ymake.core.conf
+++ b/build/ymake.core.conf
@@ -1635,11 +1635,13 @@ macro REQUIREMENTS(Tags...) {
# tag:test
TEST_ENV_VALUE=
+_TEST_ENV_SEM=
### @usage: ENV(key[=value])
###
### Sets env variable key to value (gets value from system env by default).
macro ENV(Data...) {
SET_APPEND(TEST_ENV_VALUE ${quo:Data})
+ SET_APPEND(_TEST_ENV_SEM && test_env ${quo:Data})
}
### @usage: CONFTEST_LOAD_POLICY_LOCAL()
@@ -1647,6 +1649,7 @@ macro ENV(Data...) {
### Loads conftest.py files in a way that pytest does it
macro CONFTEST_LOAD_POLICY_LOCAL() {
SET_APPEND(TEST_ENV_VALUE "CONFTEST_LOAD_POLICY=LOCAL")
+ SET_APPEND(_TEST_ENV_SEM && test_env "CONFTEST_LOAD_POLICY=LOCAL")
}
# tag:test