Ruby rules for Bazel.
Work in progress.
Add ruby_rules_dependencies and ruby_register_toolchains into your WORKSPACE file.
git_repository(
name = "bazelruby_ruby_rules",
remote = "https://github.com/bazelruby/rules_ruby.git",
tag = "v0.1.0",
)
load(
"@bazelruby_ruby_rules//ruby:deps.bzl",
"ruby_register_toolchains",
"ruby_rules_dependencies",
)
ruby_rules_dependencies()
ruby_register_toolchains()Add ruby_library, ruby_binary or ruby_test into your BUILD.bazel files.
load(
"@bazelruby_ruby_rules//ruby:defs.bzl",
"ruby_binary",
"ruby_library",
"ruby_test",
)
ruby_library(
name = "foo",
srcs = ["lib/foo.rb"],
includes = ["lib"],
)
ruby_binary(
name = "bar",
srcs = ["bin/bar"],
deps = [":foo"],
)
ruby_test(
name = "foo_test",
srcs = ["test/foo_test.rb"],
deps = [":foo"],
)ruby_library(name, deps, srcs, data, compatible_with, deprecation, distribs, features, licenses, restricted_to, tags, testonly, toolchains, visibility)
| Attributes | |
|---|---|
name |
Name, required
A unique name for this rule. |
srcs |
List of Labels, optional
List of At least |
deps |
List of labels, optional
List of targets that are required by the At least |
includes |
List of strings, optional
List of paths to be added to |
rubyopt |
List of strings, optional
List of options to be passed to the Ruby interpreter at runtime.
NOTE: |
| And other common attributes | |
ruby_binary(name, deps, srcs, data, main, compatible_with, deprecation, distribs, features, licenses, restricted_to, tags, testonly, toolchains, visibility, args, output_licenses)
| Attributes | |
|---|---|
name |
Name, required
A unique name for this rule. |
srcs |
List of Labels, required
List of |
deps |
List of labels, optional
List of targets that are required by the |
main |
Label, optional
The entrypoint file. It must be also in If not specified, |
includes |
List of strings, optional
List of paths to be added to |
rubyopt |
List of strings, optional
List of options to be passed to the Ruby interpreter at runtime.
NOTE: |
| And other common attributes | |
ruby_test(name, deps, srcs, data, main, compatible_with, deprecation, distribs, features, licenses, restricted_to, tags, testonly, toolchains, visibility, args, size, timeout, flaky, local, shard_count)
| Attributes | |
|---|---|
name |
Name, required
A unique name for this rule. |
srcs |
List of Labels, required
List of |
deps |
List of labels, optional
List of targets that are required by the |
main |
Label, optional
The entrypoint file. It must be also in If not specified, |
includes |
List of strings, optional
List of paths to be added to |
rubyopt |
List of strings, optional
List of options to be passed to the Ruby interpreter at runtime.
NOTE: |
| And other common attributes | |
Installs gems with Bundler, and make them available as a ruby_library.
Example: WORKSPACE:
git_repository(
name = "bazelruby_ruby_rules",
remote = "https://github.com/bazelruby/rules_ruby.git",
tag = "v0.1.0",
)
load(
"@bazelruby_ruby_rules//ruby:deps.bzl",
"ruby_register_toolchains",
"ruby_rules_dependencies",
)
ruby_rules_dependencies()
ruby_register_toolchains()
load("@bazelruby_ruby_rules//ruby:defs.bzl", "bundle_install")
bundle_install(
name = "gems",
gemfile = "//:Gemfile",
gemfile_lock = "//:Gemfile.lock",
)Example: lib/BUILD.bazel:
ruby_library(
name = "foo",
srcs = ["foo.rb"],
deps = ["@gems//:libs"],
)bundle_install(name, gemfile, gemfile_lock)
| Attributes | |
|---|---|
name |
Name, required
A unique name for this rule. |
gemfile |
Label, required
The |
gemfile_lock |
Label, required
The NOTE: This rule never updates the |
- Building native extensions in gems with Bazel
- Using a specified version of Ruby.
- Building and releasing your gems with Bazel
© 2018-2019 Yuki Yugui Sonoda & BazelRuby Authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.