Skip to content

Commit 3fe4b9f

Browse files
authored
Clean up versions tests (bazel-contrib#1357)
* Pass Scala version via command line * Simplify test_version scripts; remove uses of artifact overrides
1 parent bb67c8e commit 3fe4b9f

File tree

3 files changed

+91
-64
lines changed

3 files changed

+91
-64
lines changed

test_version.sh

Lines changed: 8 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,10 @@ scala_2_12_version="2.12.14"
77
scala_2_13_version="2.13.6"
88

99
SCALA_VERSION_DEFAULT=$scala_2_11_version
10-
SCALA_VERSION_SHAS_DEFAULT=$scala_2_11_shas
11-
TWITTER_SCROOGE_ARTIFACTS='twitter_scrooge_artifacts={}'
1210

1311
diagnostics_reporter_toolchain="//:diagnostics_reporter_toolchain"
1412
no_diagnostics_reporter_toolchain="//:no_diagnostics_reporter_toolchain"
1513

16-
SCALA_TOOLCHAIN_DEFAULT="@io_bazel_rules_scala//testing:testing_toolchain"
17-
1814
compilation_should_fail() {
1915
# runs the tests locally
2016
set +e
@@ -31,7 +27,6 @@ compilation_should_fail() {
3127

3228
run_in_test_repo() {
3329
local SCALA_VERSION=${SCALA_VERSION:-$SCALA_VERSION_DEFAULT}
34-
local SCALA_TOOLCHAIN=${SCALA_TOOLCHAIN:-$SCALA_TOOLCHAIN_DEFAULT}
3530

3631
local test_command=$1
3732
local test_dir_prefix=$2
@@ -46,9 +41,7 @@ run_in_test_repo() {
4641
cp -r $test_target $NEW_TEST_DIR
4742

4843
sed \
49-
-e "s/\${scala_version}/$SCALA_VERSION/" \
50-
-e "s%\${twitter_scrooge_artifacts}%$TWITTER_SCROOGE_ARTIFACTS%" \
51-
-e "s%\${testing_toolchain}%$SCALA_TOOLCHAIN%" \
44+
-e "s%\${twitter_scrooge_repositories}%$TWITTER_SCROOGE_REPOSITORIES%" \
5245
WORKSPACE.template >> $NEW_TEST_DIR/WORKSPACE
5346

5447
cd $NEW_TEST_DIR
@@ -65,71 +58,27 @@ run_in_test_repo() {
6558
test_scala_version() {
6659
local SCALA_VERSION="$1"
6760

68-
run_in_test_repo "bazel test //..." "scala_version" "version_specific_tests_dir/"
61+
run_in_test_repo "bazel test //... --repo_env=SCALA_VERSION=${SCALA_VERSION}" "scala_version" "version_specific_tests_dir/"
6962
}
7063

7164
test_reporter() {
7265
local SCALA_VERSION="$1"
7366
local SCALA_TOOLCHAIN="$2"
7467

75-
run_in_test_repo "compilation_should_fail build //..." "reporter" "test_reporter/"
68+
run_in_test_repo "compilation_should_fail build //... --repo_env=SCALA_VERSION=${SCALA_VERSION} --extra_toolchains=${SCALA_TOOLCHAIN}" "reporter" "test_reporter/"
7669
}
7770

7871
test_twitter_scrooge_versions() {
7972
local version_under_test=$1
8073

81-
local TWITTER_SCROOGE_ARTIFACTS_18_6_0='twitter_scrooge_artifacts={ \
82-
"io_bazel_rules_scala_scrooge_core": {\
83-
"artifact": "com.twitter:scrooge-core_2.11:18.6.0",\
84-
"sha256": "00351f73b555d61cfe7320ef3b1367a9641e694cfb8dfa8a733cfcf49df872e8",\
85-
},\
86-
"io_bazel_rules_scala_scrooge_generator": {\
87-
"artifact": "com.twitter:scrooge-generator_2.11:18.6.0",\
88-
"sha256": "0f0027e815e67985895a6f3caa137f02366ceeea4966498f34fb82cabb11dee6",\
89-
"runtime_deps": [\
90-
"@io_bazel_rules_scala_guava",\
91-
"@io_bazel_rules_scala_mustache",\
92-
"@io_bazel_rules_scala_scopt",\
93-
],\
94-
},\
95-
"io_bazel_rules_scala_util_core": {\
96-
"artifact": "com.twitter:util-core_2.11:18.6.0",\
97-
"sha256": "5336da4846dfc3db8ffe5ae076be1021828cfee35aa17bda9af461e203cf265c",\
98-
},\
99-
"io_bazel_rules_scala_util_logging": {\
100-
"artifact": "com.twitter:util-logging_2.11:18.6.0",\
101-
"sha256": "73ddd61cedabd4dab82b30e6c52c1be6c692b063b8ba310d716ead9e3b4e9267",\
102-
},\
103-
}'
104-
105-
local TWITTER_SCROOGE_ARTIFACTS_21_2_0='twitter_scrooge_artifacts={ \
106-
"io_bazel_rules_scala_scrooge_core": {\
107-
"artifact": "com.twitter:scrooge-core_2.11:21.2.0",\
108-
"sha256": "d6cef1408e34b9989ea8bc4c567dac922db6248baffe2eeaa618a5b354edd2bb",\
109-
},\
110-
"io_bazel_rules_scala_scrooge_generator": {\
111-
"artifact": "com.twitter:scrooge-generator_2.11:21.2.0",\
112-
"sha256": "87094f01df2c0670063ab6ebe156bb1a1bcdabeb95bc45552660b030287d6acb",\
113-
"runtime_deps": [\
114-
"@io_bazel_rules_scala_guava",\
115-
"@io_bazel_rules_scala_mustache",\
116-
"@io_bazel_rules_scala_scopt",\
117-
],\
118-
},\
119-
"io_bazel_rules_scala_util_core": {\
120-
"artifact": "com.twitter:util-core_2.11:21.2.0",\
121-
"sha256": "31c33d494ca5a877c1e5b5c1f569341e1d36e7b2c8b3fb0356fb2b6d4a3907ca",\
122-
},\
123-
"io_bazel_rules_scala_util_logging": {\
124-
"artifact": "com.twitter:util-logging_2.11:21.2.0",\
125-
"sha256": "f3b62465963fbf0fe9860036e6255337996bb48a1a3f21a29503a2750d34f319",\
126-
},\
127-
}'
74+
local TWITTER_SCROOGE_REPOSITORIES_18_6_0='scrooge_repositories(version = "18.6.0")'
75+
76+
local TWITTER_SCROOGE_REPOSITORIES_21_2_0='scrooge_repositories(version = "21.2.0")'
12877

12978
if [ "18.6.0" = $version_under_test ]; then
130-
TWITTER_SCROOGE_ARTIFACTS=$TWITTER_SCROOGE_ARTIFACTS_18_6_0
79+
TWITTER_SCROOGE_REPOSITORIES=$TWITTER_SCROOGE_REPOSITORIES_18_6_0
13180
elif [ "20.9.0" = $version_under_test ]; then
132-
TWITTER_SCROOGE_ARTIFACTS=$TWITTER_SCROOGE_ARTIFACTS_20_9_0
81+
TWITTER_SCROOGE_REPOSITORIES=$TWITTER_SCROOGE_REPOSITORIES_20_9_0
13382
else
13483
echo "Unknown Twitter Scrooge version given $version_under_test"
13584
fi

test_version/WORKSPACE.template

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,21 @@ local_repository(
3131
name = "io_bazel_rules_scala",
3232
path = "../../"
3333
)
34-
scala_version = "${scala_version}"
34+
3535
load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
36-
scala_config(scala_version = scala_version)
36+
scala_config()
3737

3838
load("@io_bazel_rules_scala//scala:scala_cross_version.bzl", "extract_major_version")
3939

4040
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
4141

4242
scala_repositories(fetch_sources = True)
4343

44+
load(":scrooge_repositories.bzl", "scrooge_repositories")
45+
${twitter_scrooge_repositories}
46+
4447
load("@io_bazel_rules_scala//twitter_scrooge:twitter_scrooge.bzl", "twitter_scrooge")
45-
${twitter_scrooge_artifacts}
46-
twitter_scrooge(overriden_artifacts = twitter_scrooge_artifacts)
48+
twitter_scrooge()
4749

4850
load("@io_bazel_rules_scala//scala_proto:scala_proto.bzl", "scala_proto_repositories")
4951

@@ -61,7 +63,7 @@ load("@io_bazel_rules_scala//testing:scalatest.bzl", "scalatest_repositories", "
6163

6264
scalatest_repositories()
6365

64-
register_toolchains("${testing_toolchain}")
66+
register_toolchains("@io_bazel_rules_scala//testing:testing_toolchain")
6567

6668
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_unused_deps_toolchains")
6769

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
load(
2+
"@io_bazel_rules_scala//scala:scala_maven_import_external.bzl",
3+
_scala_maven_import_external = "scala_maven_import_external",
4+
)
5+
load(
6+
"@io_bazel_rules_scala//scala:scala_cross_version.bzl",
7+
"default_maven_server_urls",
8+
)
9+
10+
def _import_external(id, artifact, sha256, deps = [], runtime_deps = []):
11+
_scala_maven_import_external(
12+
name = id,
13+
artifact = artifact,
14+
artifact_sha256 = sha256,
15+
licenses = ["notice"],
16+
server_urls = default_maven_server_urls(),
17+
deps = deps,
18+
runtime_deps = runtime_deps,
19+
testonly_ = False,
20+
fetch_sources = False,
21+
)
22+
23+
def scrooge_repositories(version):
24+
if version == "18.6.0":
25+
_import_external(
26+
id = "io_bazel_rules_scala_scrooge_core",
27+
artifact = "com.twitter:scrooge-core_2.11:18.6.0",
28+
sha256 = "00351f73b555d61cfe7320ef3b1367a9641e694cfb8dfa8a733cfcf49df872e8",
29+
)
30+
_import_external(
31+
id = "io_bazel_rules_scala_scrooge_generator",
32+
artifact = "com.twitter:scrooge-generator_2.11:18.6.0",
33+
sha256 = "0f0027e815e67985895a6f3caa137f02366ceeea4966498f34fb82cabb11dee6",
34+
runtime_deps = [
35+
"@io_bazel_rules_scala_guava",
36+
"@io_bazel_rules_scala_mustache",
37+
"@io_bazel_rules_scala_scopt",
38+
],
39+
)
40+
_import_external(
41+
id = "io_bazel_rules_scala_util_core",
42+
artifact = "com.twitter:util-core_2.11:18.6.0",
43+
sha256 = "5336da4846dfc3db8ffe5ae076be1021828cfee35aa17bda9af461e203cf265c",
44+
)
45+
_import_external(
46+
id = "io_bazel_rules_scala_util_logging",
47+
artifact = "com.twitter:util-logging_2.11:18.6.0",
48+
sha256 = "73ddd61cedabd4dab82b30e6c52c1be6c692b063b8ba310d716ead9e3b4e9267",
49+
)
50+
51+
if version == "21.2.0":
52+
_import_external(
53+
id = "io_bazel_rules_scala_scrooge_core",
54+
artifact = "com.twitter:scrooge-core_2.11:21.2.0",
55+
sha256 = "d6cef1408e34b9989ea8bc4c567dac922db6248baffe2eeaa618a5b354edd2bb",
56+
)
57+
_import_external(
58+
id = "io_bazel_rules_scala_scrooge_generator",
59+
artifact = "com.twitter:scrooge-generator_2.11:21.2.0",
60+
sha256 = "87094f01df2c0670063ab6ebe156bb1a1bcdabeb95bc45552660b030287d6acb",
61+
runtime_deps = [
62+
"@io_bazel_rules_scala_guava",
63+
"@io_bazel_rules_scala_mustache",
64+
"@io_bazel_rules_scala_scopt",
65+
],
66+
)
67+
_import_external(
68+
id = "io_bazel_rules_scala_util_core",
69+
artifact = "com.twitter:util-core_2.11:21.2.0",
70+
sha256 = "31c33d494ca5a877c1e5b5c1f569341e1d36e7b2c8b3fb0356fb2b6d4a3907ca",
71+
)
72+
_import_external(
73+
id = "io_bazel_rules_scala_util_logging",
74+
artifact = "com.twitter:util-logging_2.11:21.2.0",
75+
sha256 = "f3b62465963fbf0fe9860036e6255337996bb48a1a3f21a29503a2750d34f319",
76+
)

0 commit comments

Comments
 (0)