bazel_rules_pex

Python PEX rules for Bazel

APACHE-2.0 License

Downloads
21
Stars
39
Committers
8

Overview

Setup

Add something like this to your WORKSPACE file:

git_repository(
    name = "io_bazel_rules_pex",
    remote = "https://github.com/benley/bazel_rules_pex.git",
    tag = "0.3.0",
)
load("@io_bazel_rules_pex//pex:pex_rules.bzl", "pex_repositories")
pex_repositories()

In a BUILD file where you want to use these rules, or in your tools/build_rules/prelude_bazel file if you want them present repo-wide, add:

load(
    "@io_bazel_rules_pex//pex:pex_rules.bzl",
    "pex_binary",
    "pex_library",
    "pex_test",
    "pex_pytest",
)

Lastly, make sure that tools/build_rules/BUILD exists, even if it is empty, so that Bazel can find your prelude_bazel file.

pex_pytest

A variant of pex_test that uses py.test to run one or more sets of tests.

This produces two things:

  1. A pex_binary (<name>_runner) containing all your code and its
    dependencies, plus py.test, and the entrypoint set to the py.test
    runner.
  2. A small shell script to launch the <name>_runner executable with each
    of the srcs enumerated as commandline arguments. This is the actual
    test entrypoint for bazel.

Almost all of the attributes that can be used with pex_test work identically here, including those not specifically mentioned in this docstring. Exceptions are main and entrypoint, which cannot be used with this macro.

Attributes

Rules to be invoked from WORKSPACE for remote dependencies.

pex_binary

Build a deployable pex executable.

Attributes

Attributes

Attributes

Package Rankings
Top 23.16% on Pypi.org
Badges
Extracted from project README
Build Status