Commit Graph

291 Commits

Author SHA1 Message Date
Sahin Yort 33bc4443fd
fix: create windows launcher for bats (#704) 2023-12-21 14:27:21 -08:00
Sahin Yort 4f6b4bd5cb
feat: implement bats test runner (#699) 2023-12-20 13:08:47 -08:00
Tobias Schlatter 8d805e16bf
fix #697: use to_repository_relative_path in mtree_spec (#696)
* Reproduction for mtree_spec behaving different in other repo

* Fix the bug (but not the test)

* Fix the test

* Rename mtree_spec e2e dir to tar

* Fix bzlmod tests

* Remove unnecessary skylib dependency from e2e repos

* Add e2e tests to matrix

* Replace e2e test with a normal test

To do this, we somewhat abuse the skylib dependency, but that's
probalby OK.
2023-12-20 11:22:42 -08:00
Sahin Yort cef25915d7
feat: introduce extension compression mapping (#683) 2023-12-08 21:47:20 +00:00
Greg Magolan b1c342a96f
chore: bazel run //:format (#682) 2023-12-08 00:30:39 -08:00
Sahin Yort d1642aa020
feat: expose common tar variables (#679) 2023-12-07 12:29:35 -08:00
Tobias Schlatter 975a933e24
docs: fix load path for copy_file_to_bin_action (#673) 2023-11-30 10:58:48 -08:00
Derek Cormier 2b38ad5d29
feat: expose toolchains used for copy actions (#661) 2023-11-16 07:15:50 -08:00
Derek Cormier 95e7ad5e0b
fix: fix a bug where toolchain repositories were potentially duplicated (#662) 2023-11-16 06:57:29 -08:00
David Zbarsky 01ca8f9432
Use coreutils toolchain for copy_file action (#622)
refactor: use coreutils toolchain for copy_file action
---------

Co-authored-by: Greg Magolan <greg@aspect.dev>
Co-authored-by: Derek Cormier <derek@aspect.dev>
2023-11-14 11:03:51 -08:00
David Zbarsky b74a45456d
Upgrade coreutils and add darwin arm64 binary (#649) 2023-11-14 08:47:21 -08:00
Greg Magolan 602b7b8f80
Revert: feat: expose a config_setting for copy execution_requirements (#606) (#640) 2023-10-31 15:19:38 -07:00
Greg Magolan a47eebfa65
fix: fix execution requirements for 'build without the bytes' (#639) 2023-10-31 13:38:32 -07:00
Alex Eagle 8cf7e6f995
feat: support treeartifacts (#630) (#631)
Co-authored-by: Sahin Yort <thesayyn@gmail.com>
2023-10-19 15:57:48 -07:00
David Zbarsky a4f99946c6 Unconditionally use runfiles.merge_all in write_source_file 2023-10-16 15:45:24 -07:00
Alex Eagle eda4929c72
chore: add windows binaries (#610)
* chore: add windows binaries

* chore: fix/exclude windows brokenness

* chore: try to see why diff tests fail on windows

* fix: rm bazelisk rc again for windows

* fix: try our own diff_test

* chore: use only our own diff_test
2023-10-10 14:13:17 -07:00
Alex Eagle 177b883991
refactor: use _mtree_line helper (#612)
Also restore the .bazeliskrc file I accidentally removed in 4bfe55711a
2023-10-10 12:33:21 -07:00
Derek Cormier 20f1ac39e0
refactor: rework toolchain registration for WORKSPACE and bzlmod users (#597) 2023-10-10 12:16:13 -07:00
Alex Eagle e1d9d9b58f fix: windows home directory (#608)
HOMEPATH isn't always set. For example https://buildkite.com/bazel/bazel-bazel-examples/builds/2163#018b1a9d-0127-461f-8200-e89894397f35
USERPROFILE seems more widely documented as being the equivalent of HOME
2023-10-10 10:57:18 -07:00
Douglas Parker 323329f119 fix: always include files from the same workspace as the build target in `copy_to_directory()` (#360)
* fix: always include files from the same workspace as the build target in `copy_to_directory`

Fixes #359.

This updates the `copy_to_directory` tool to accept a workspace name representing the workspace of the target it is executing under. Any files in this workspace are automatically included, regardless of the `include_external_repositories` option. This makes it support usage within an external target (such as `@wksp//:dir`).

* test: add e2e test which uses `copy_to_directory` within an external workspace

Refs #359.

This should catch regressions where no files are copied when built within an external workspace and not using `include_external_repositories`.

* ci: fix stray workspace refs

---------

Co-authored-by: Alex Eagle <alex@aspect.dev>
2023-10-10 10:57:08 -07:00
Alex Eagle 472bf9b122
feat: tar includes runfiles (#595)
* feat: tar includes runfiles

* chore: try to fix red circleci

* fix: tracked down problem

* chore: document tar#srcs supports runfiles

* chore: add comment about logic for trimming manifest suffix

* chore: missed a replacement spot

* chore: give up on the listing test for now
2023-10-09 15:57:52 -07:00
Alex Eagle 4bfe55711a
feat: expose a config_setting for copy execution_requirements (#606)
* feat: expose a config_setting for copy execution_requirements

Fixes #604

* chore: add user docs

* chore: improve docs

* chore: better link to copy_file
2023-10-09 13:57:34 -07:00
Alex Eagle bc97305fcd Revert "refactor: reduce execution requirements for copy" (#594)
* Revert "refactor: reduce execution requirements for copy"

This reverts commit 40c2ddc71a.

* Update ci.bazelrc
2023-10-06 19:19:18 -07:00
Greg Magolan 1cd2eb7e0a
refactor: remove exclude_prefixes from copy_to_directory and copy_to_directory_bin_action (#591) 2023-10-06 10:17:33 -07:00
Greg Magolan cb9b74f41e
refactor: remove to_workspace_path and to_manifest_path (#590) 2023-10-06 08:37:53 -07:00
Greg Magolan 231dad5c92
refactor: remove output_dir from run_binary and expand_variables (#588) 2023-10-06 08:32:55 -07:00
Greg Magolan 3a16b4de26
refactor: remove legacy copy_directory_action helper (#589) 2023-10-06 08:32:25 -07:00
Alex Eagle 894ba445c4
chore: remove is_windows attributes (#587)
Fixes some TODOs for 2.0
2023-10-05 16:03:15 -07:00
Derek Cormier dca2b1df0c
chore: remove legacy copy_to_directory_action (#582) 2023-10-05 15:52:37 -07:00
Alex Eagle 6a4381bf07
chore: run gazelle (#584)
Also delete the local_config_platform workaround for bazel 5 which made our docs setup complex
2023-10-05 14:22:38 -07:00
David Zbarsky 8fe4f6f8d5
Avoid expanding mtree spec during analysis phase (#576)
* Avoid expanding mtree spec during analysis phase

* Update tar.bzl

remove comment and unused code

---------

Co-authored-by: Alex Eagle <alex@aspect.dev>
2023-10-05 12:36:55 -07:00
Alex Eagle a283a8216d feat: add a tar toolchain (#468)
* feat: add a BSD tar toolchain

@thesayyn discovered that it has a feature which should make it a drop-in replacement for pkg_tar
including fine-grained file permissions and symlinks:
https://man.freebsd.org/cgi/man.cgi?mtree(8)

* show example of mtree usage

* feat: introduce tar rule

* cleanup and get test passing

* more cleanup

* chore: add support for compress flags

* chore: add docs

* chore: add docs

* feat: implement linux bsdtar toolchain (#566)

* chore: improve target naming

* WIP: args

* feat: generate mtree spec

Also allow arbitrary args

* refactor: mtree is required

* refactor: style nits

* fix: support mix of source and generated artifacts

* feat: demonstrate strip_prefix

* chore: regen docs

* fix: make host toolchain a fallback toolchain

* fix: include libarchive13.so when installing BSD tar

* chore: buildifier

* fix: aarch64 cpu constraint

* fix(ci): include libarchive13.so when running tar

* chore: add libnettle

* refactor: inputs mutated less

* refactor: remove unneeded substitution arg

* refactor: don't advertise unsupported modes

* fix: hack enough to make it run on my machine

* chore: dynamic libraries included in sh_binary under toolchain

* make sh_binary work

* refactor: drop arm64 for now

* fix toolchain

* fix test

* chore: improve test naming scheme

---------

Co-authored-by: Sahin Yort <thesayyn@gmail.com>
2023-10-03 13:50:55 -07:00
Derek Cormier 174bb9425d feat: support jq 1.7 toolchain (#520) 2023-10-03 13:50:55 -07:00
Alex Eagle e00ea2b977
chore: update pre-commit buildifier (#563)
It needs to match the one CI runs in
https://github.com/aspect-build/bazel-lib/actions/runs/6357283303/job/17268197322
2023-09-29 14:42:33 -07:00
Greg Magolan bcb10f8154
feat: add undeclared output mode to expand_template (#561) 2023-09-29 11:30:02 -07:00
Aaron Son a4e997de1f
feat: add `propagate_common_{,test_,binary_}rule_attributes` to lib/utils. (#553)
* feat: add `propagate_common_{,test_,binary_}rule_attributes` to lib/utils.

* lib/private/utils: PR feedback: extract COMMON_BINARY_RULE_ATTRIBUTES and COMMON_TEST_RULE_ATTRIBUTES to global constants.

* lib/private/utils: PR feedback: remove default value for attrs param to propagate_common_*rule_attributes

* fix: lib/private/utils: buildifier.
2023-09-26 14:29:42 -07:00
Sahin Yort ef364b54b4
refactor: consume tools from source if unstamped (#543) 2023-09-24 15:06:10 -07:00
Matt Mackay 8fa2127518
fix: allow for BUILD files in outputs of write_source_file (#540) 2023-09-21 19:50:04 -04:00
Sahin Yort 719b8f33b0
refactor: add ability to test against tools from source (#532) 2023-09-21 15:12:46 -07:00
Matt Mackay 62394fbb68
fix: lookup source files from execroot when running diff_test on RBE (#531) 2023-09-21 13:27:08 -07:00
Marc Redemske 45986f000d
feat: add list utils (#512)
* feat: add list utils

* chore: add docs for lists

* fixes accoding to review

---------

Co-authored-by: Alex Eagle <alex@aspect.dev>
2023-09-21 10:12:47 -07:00
Ted Kaplan fc3c3181f3
docs: Add --incompatible_disallow_empty_glob to correctness.bazelrc (#524) 2023-09-18 19:58:27 -07:00
Alex Eagle d2203e9020
chore: pick up new expand_template go binary (#518)
Also fix an error that was getting reported in our release pipeline
2023-09-06 16:47:15 -07:00
peter woodman 3e9577ab16
yq: allow any filename in srcs (#496)
* yq: allow any filename in srcs

* yq: add test cases for free-form file extensions in input

* run buildifier

---------

Co-authored-by: Alex Eagle <alex@aspect.dev>
2023-08-30 09:18:10 -07:00
Alex Eagle 40c2ddc71a refactor: reduce execution requirements for copy
It causes warnings like 753cd459e4/src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java (L514)
and also makes toolchain selection broken for host!=exec

Fixes #466
2023-08-29 14:56:22 -07:00
Greg Magolan 76ef6c8988
chore: add test coverage for run_binary & expand_variables makevars (#504) 2023-08-26 13:59:48 -07:00
Matt Mackay ef4830bf25
docs: add comment regarding linux-arm64 JQ toolchain (#503) 2023-08-24 09:54:44 -07:00
Steven E. Harris 3af9e00308
docs: clarify write_source_files output constraint (#498)
* docs: clarify write_source_files output constraint

For both the "write_source_files" rule's "files" attribute and the
"write_source_file" rule's "out_file" attribute, we ensure that the
destination files and directories to which we'll write sit within the
same containing Bazel package as the Bazel target requesting this
writing. Clarify the documentation for each attribute to make it clear
that we're constraining the destinations and not the sources of the
content to be written.

* Update lib/write_source_files.bzl

---------

Co-authored-by: Derek Cormier <derek@aspect.dev>
2023-08-23 12:32:56 -07:00
Fabian Meumertzheim 682d6f2345 Fix `update_docs` with Bazel 7 and stardoc 0.6.0 2023-08-14 12:01:13 -07:00
Ricky Stewart 2931a1018a feat: add freebsd support 2023-07-25 20:14:46 -07:00
Alex Eagle 383bbd589b fix(windows): use HOMEPATH in place of HOME 2023-07-21 11:52:10 -07:00
Alex Eagle 5ecaeb5c53 chore: update docs 2023-07-18 11:01:26 -07:00
Alex Eagle 2fd7f9138c docs: this sentence shouldn't be quoted 2023-07-18 11:01:26 -07:00
Alex Eagle ff43d15afa Update coreutils_toolchain.bzl
fix typo in url
2023-07-17 19:22:46 -07:00
Malte Poll 794df714d7 Use actual newline (instead of "\n") to split strings in yq rule
Fixes d79f4d4
Fixes #463

This is required since versions of yq older than 4.30.3 do not parse "\n" correctly.
See https://github.com/mikefarah/yq/issues/1430 and e02bb7194897edb916a6787fb8f8e5a7f432dd94
2023-06-22 17:09:44 -07:00
Malte Poll d79f4d4867 feat: yq supports stamping
Fixes #223
2023-06-15 16:50:26 -07:00
Jason Bedard 47dd4ce9fd chore: run buildifier 2023-06-13 16:28:17 -07:00
Alex Eagle c89ec6a554 docs: clarify rlocationpath 2023-05-24 17:16:00 -07:00
Alex Eagle 9b148663d1 fix(stardoc): upgrade and stop skipping under bzlmod
Newest stardoc has fixed it, and since bzlmod will select the lowest
version in the dependencies, our bump here will take effect for users
as well.
2023-05-17 15:06:35 -07:00
Sahin Yort 6af964f261
feat: support stamp substituions (#435) 2023-05-16 16:14:50 -07:00
Sahin Yort 781d1cbebf
feat: implement chr, ord, and hex (#425) 2023-05-15 12:15:55 -07:00
Jiawen (Kevin) Chen 4c8866b618 Fix typos in run_binary docs. 2023-05-08 07:49:24 -07:00
Jason Bedard 14be93a63e fix: rewrite glob implementation to follow standard glob specs
Implementation based on 465a339d8d/match.go (L74)

Fix https://github.com/aspect-build/bazel-lib/issues/419
2023-05-08 07:46:19 -07:00
Jason Bedard 1bb1056153 refactor: simplify glob validation 2023-05-08 07:46:19 -07:00
Jason Bedard c363420c70
refactor: cleanup glob implementation, add tests (#420)
Prefactor to https://github.com/aspect-build/bazel-lib/issues/419
2023-05-05 15:11:16 -07:00
Alex Eagle 6f1f2fb198 fix(yq): restore default version, reverting #405
The new version of yq is quite breaking, as it requires '-oj -r' for continued operation in rules_oci.
We can do a default version flip later when more downstream projects are compatible.
2023-05-05 13:07:51 -07:00
Greg Magolan 51f1ce702f
chore: update copy directory golang binary release versions to use (#416) 2023-05-01 20:21:10 -07:00
Henk Erik van der Hoek 39d556a225
Chore: update YQ (#405)
* Chore: update YQ

* Update tests

* Update docs

* Update docs

---------

Co-authored-by: Greg Magolan <gmagolan@gmail.com>
2023-05-01 19:18:50 -07:00
Jason Bedard b983608c08
docs(write_source_file): specify the name of the generated diff_test (#410)
Fix #409
2023-04-19 14:09:03 -07:00
Alister Cordiner 803d5ecda8 Correctly handle empty directory when checking for missing file 2023-04-03 18:03:19 -07:00
Alex Eagle 5162ae4d8c feat: detect bzlmod automatically rather than requiring the user sets the flag.
Thanks to @aherrmann for pointing out this is possible: https://github.com/aherrmann/demo-bazel-detect-bzlmod-config-setting
2023-03-31 14:56:22 -07:00
Alex Eagle 035473873a fix: disable stardoc under bzlmod and windows by default
We've been making these exceptions in downstream repos
2023-03-11 13:58:03 -08:00
Greg Magolan 8c58935da1
feat: add label_str utility to generate consistent label strings for all Bazel versions (#386) 2023-03-03 18:23:17 -08:00
Derek Cormier 83fb3050c2 feat: allow additional common args to be passed to update_docs 2023-02-21 10:49:06 -08:00
Alex Eagle 1df2becc7a chore: turn on more basic precommit checks
In particular this makes our bazelrc presets more compliant with client codebases, ensuring they can copy these files and not trip on their own pre-commit check
2023-02-17 11:00:00 -08:00
Alex Eagle bda8e69ea0 chore: fix spelling 2023-02-15 09:08:46 -08:00
Alister Cordiner 34d05573e2
Fix the 'find -type' argument used on MacOS (#366) 2023-02-14 10:38:43 -08:00
Greg Magolan 8f02b3364e
feat: add to_rlocation_path and to_repository_relative_path functions to paths.bzl (#362) 2023-02-11 12:36:49 -08:00
Jason Bedard 05a92b8b99
fix: show directory being copied to in copy_to_directory progress message (#345)
* fix: use formatted short_path in copy progress messages

* fix: display destination directory in copy_to_directory progress message
2023-02-05 20:47:02 -08:00
Derek Cormier d413641195 fix: fix a bug where `bazel run @jq//:jq` cannot be run on M1 2023-02-03 08:15:48 -08:00
Greg Magolan 95d4b6974c
fix: update copy_directory and copy_to_directory to use binaries with copy concurrency limited (#352) 2023-02-01 16:14:51 -08:00
Greg Magolan 1deb42c31f
chore: update copy toolchain to latest releases (#340) 2023-01-16 22:11:33 -08:00
Greg Magolan d5631bc18d
chore: update copy toolchains to latest release (#337) 2023-01-16 19:38:56 -08:00
Greg Magolan 63f5aff803
feat: hardlink generated files in copy_to_directory and copy_directory instead of copying (#321) 2023-01-16 17:19:13 -08:00
Sahin Yort 4dc36a97f2
feat: add coreutils toolchain (#332) 2023-01-16 21:02:17 +03:00
Greg Magolan 1d3f04f7b9
chore: cleanup copy_to_directory docs and expose attr docstrings via lib for use downstream (#330) 2023-01-15 13:24:15 -08:00
Greg Magolan 7b6c814e27
Add copy_directory binary tool (#324) 2023-01-14 15:51:01 -08:00
Greg Magolan 4edb5018e8
chore: update pre-bazel 6 work-around in utils to only apply for bazel versions < 6 (#320) 2023-01-14 12:13:02 -08:00
Derek Cormier c64bb72324 fix: write_source_files incompatibility with bzlmod when writing from external repo 2023-01-09 10:54:51 -08:00
Greg Magolan fb3ef6e45d
feat: improved copy_to_directory performance & globbing support using copy_to_directory_bin_action (#311) 2023-01-07 11:26:27 -08:00
Greg Magolan bf76da829c
fix: handle directory symlinks in copy_to_directory_bin_action tool binary (#314) 2023-01-06 10:29:45 -08:00
Greg Magolan ec13ec9a69
feat: improve performance of copy_to_directory by moving glob match & copying to a golang binary (#308) 2023-01-03 09:42:20 -08:00
Greg Magolan 2c66c1c778
fix: fail with better error message with trying to base64 decode a string that is not base64 encoded (#298) 2022-12-12 12:03:18 -08:00
Greg Magolan 35b7662e55
fix: write_source_files should use target platform for additional_update_targets (#297) 2022-12-03 15:02:33 -08:00
Greg Magolan 68aee64093
feat: add write_source_file to public API (#295) 2022-12-03 14:57:28 -08:00
Greg Magolan 421cf266bc
fix: add diff_test to docs (#296) 2022-12-03 11:32:37 -08:00
Greg Magolan 0109a2eee3
refactor: use rm -R instead -r as it is the primary option and lowercase -r is the alias (#294) 2022-12-03 10:52:52 -08:00
Greg Magolan 9059f8fa5e feat: add executable attribute to write_source_files 2022-12-03 10:46:08 -08:00
Greg Magolan 3d73637ee5
feat: add base64 encode & decode utility functions (#292) 2022-11-25 17:00:02 -08:00
Greg Magolan b5e0ac13e1
perf: optimize glob_match if the expression does not have any glob symbols (#283) 2022-11-14 14:45:25 -08:00