This repository has been archived by the owner on Jan 12, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathintegration-test
executable file
·109 lines (84 loc) · 3.99 KB
/
integration-test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/usr/bin/env python
from __future__ import print_function
import os
import shutil
import subprocess
import tempfile
from os import path
WORKSPACE_TEMPLATE_PREFIX = '''
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
rules_jvm_external_version = "3.0" # branch master
http_archive(
name = "rules_jvm_external",
sha256 = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a",
strip_prefix = "rules_jvm_external-%s" % rules_jvm_external_version,
url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % rules_jvm_external_version,
)
rules_go_version = "a667c18bef6ec5a11f1cbf40b219d541c48e942e"
http_archive(
name = "io_bazel_rules_go",
sha256 = "03fe1d6c9a5b8c554170e9a618101d7b5e07e7f638ccd45d5cd6ae9a44b32123",
strip_prefix = "rules_go-%s" % rules_go_version,
urls = ["https://github.com/bazelbuild/rules_go/archive/%s.zip" % rules_go_version],
)
rules_scala_version = "6c16cff213b76a4126bdc850956046da5db1daaa"
http_archive(
name = "io_bazel_rules_scala",
sha256 = "132cf8eeaab67f3142cec17152b8415901e7fa8396dd585d6334eec21bf7419d",
strip_prefix = "rules_scala-%s" % rules_scala_version,
urls = ["https://github.com/bazelbuild/rules_scala/archive/%s.zip" % rules_scala_version],
)
rules_python_version = "38f86fb55b698c51e8510c807489c9f4e047480e"
http_archive(
name = "rules_python",
sha256 = "7d64815f4b22400bed0f1b9da663037e1578573446b7bc78f20f24b2b5459bb9",
strip_prefix = "rules_python-%s" % rules_python_version,
urls = ["https://github.com/bazelbuild/rules_python/archive/%s.zip" % rules_python_version],
)
'''
WORKSPACE_TEMPLATE_SUFFIX = '''
load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
go_rules_dependencies()
go_register_toolchains()
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
scala_repositories()
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains")
scala_register_toolchains()
'''
def main():
d = tempfile.mkdtemp()
try:
commit_sha = subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip().decode('utf-8')
with open(path.join(d, 'WORKSPACE'), 'w') as f:
f.write(WORKSPACE_TEMPLATE_PREFIX)
f.writelines([
'spotify_bazel_tools_version="{}"\n'.format(commit_sha),
'\n',
'http_archive(\n',
' name = "spotify_bazel_tools",\n',
' strip_prefix = "bazel-tools-%s" % (spotify_bazel_tools_version),\n',
' urls = ["https://github.com/spotify/bazel-tools/archive/%s.zip" % '
'(spotify_bazel_tools_version,)],\n',
')\n',
'\n',
'load("@spotify_bazel_tools//:tools.bzl", "bazel_tools_repositories")\n',
'bazel_tools_repositories()\n',
'load("@spotify_bazel_tools//3rdparty:repositories.bzl", "repositories")\n',
'repositories()\n',
'load("@spotify_bazel_tools//3rdparty:workspace.bzl", "maven_dependencies")\n',
'maven_dependencies()\n',
])
f.write(WORKSPACE_TEMPLATE_SUFFIX)
third_party_dir = path.join(d, '3rdparty')
os.mkdir(third_party_dir)
shutil.copyfile(path.join('3rdparty', 'BUILD'), path.join(third_party_dir, 'BUILD'))
shutil.copyfile(path.join('3rdparty', 'dependencies.yaml'), path.join(third_party_dir, 'dependencies.yaml'))
shutil.copyfile(path.join('3rdparty', 'maven-install.json'), path.join(third_party_dir, 'maven-install.json'))
subprocess.check_call(['bazel', 'build', '@spotify_bazel_tools//...'], cwd=d)
subprocess.check_call(['bazel', 'run', '@spotify_bazel_tools//sync-deps', '--', '-w', d], cwd=d)
subprocess.check_call(['bazel', 'run', '@spotify_bazel_tools//format', '--', '-w', d], cwd=d)
finally:
subprocess.check_call(['bazel', 'shutdown'], cwd=d)
shutil.rmtree(d)
if __name__ == '__main__':
main()