• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 35191
0%
main: 93%

Build:
Build:
LAST BUILD BRANCH: tdyas/rust/upgrade-v1.97.0
DEFAULT BRANCH: main
Ran 01 Sep 2020 08:43PM UTC
Jobs 1
Files 430
Run time 13min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
35191

push

travis-ci-com

web-flow
Fix retrieval of bytes from artifacts in StreamingWorkunitHandler (#10698)

### Problem

The `digests_to_bytes` method, used to allow the StreamingWorkunitHandler to get the raw bytes associated with a `Digest` item on a workunit, works correctly for the `stdout_digest` and `stderr_digest` items. These effectively represent nameless files whose content is the stdout and stderr stream of a process, and the `Digest`s attached to the workunit yield the bytes the user expects. 

However, `digests_to_bytes` fails for other `Digest`s provided as workunit artifacts, because these generally come from a `Snapshot` that was the output of some `@rule`. The `Digest` contained within a `Snapshot` is generally a directory containing a single named file; trying to transform this kind of `Digest` into bytes with `digests_to_bytes` fails at the `store` level and produces a Python-level error.

### Solution

This commit adds a new method on `StreamingWorkunitContext` called `snapshots_to_file_contents`. This method can convert a sequence of `Snapshot`s into a sequence of sequences of `FileContent` representing the files contained within that snapshot, which in turn contain the byte values of those files. As well, the various python code flows that pass `Digest`s around to be used on the `artifacts` method have been modified to now pass around `Snapshot`s. 

A plugin that receives streaming workunits can now use the `snapshots_to_file_contents` context method to correctly retrieve the bytes of artifacts on a workunit, which are now more-correctly represented as a `Snapshot` rather than a `Digest`. And since an artifact is now a `Snapshot`, in principle any number of discrete files can now constitute a single artifact.

86 of 86 new or added lines in 8 files covered. (100.0%)

0 of 28957 relevant lines covered (0.0%)

0.0 hits per line

Jobs
ID Job ID Ran Files Coverage
5 35191.5 (PANTS_CONFIG_FILES="${TRAVIS_BUILD_DIR}/pants.travis-ci.toml" PANTS_DYNAMIC_UI=false LC_ALL="en_US.UTF-8" AWS_BUCKET=ci-public.pantsbuild.org BOOTSTRAPPED_PEX_KEY_PREFIX=daily/${TRAVIS_BUILD_NUMBER}/${TRAVIS_BUILD_ID}/pants.pex NATIVE_ENGINE_SO_KEY_PREFIX=monthly/native_engine_so PYENV_PY27_VERSION=2.7.18 PYENV_PY36_VERSION=3.6.10 PYENV_PY37_VERSION=3.7.7 PYENV_PY38_VERSION=3.8.3 PYENV_ROOT_OSX=${HOME}/.pants_pyenv PYENV_ROOT="${PYENV_ROOT:-${PYENV_ROOT_OSX}}" PATH="${PYENV_ROOT}/shims:${PATH}" AWS_CLI_ROOT="${HOME}/.aws_cli" AWS_ACCESS_KEY_ID__TO_BE_REEXPORTED_ON_DEPLOYS=AKIAV6A6G7RQ2HFZ5KP7 AWS_SECRET_ACCESS_KEY=[secure] RUST_BACKTRACE="all" BOOTSTRAPPED_PEX_KEY_SUFFIX=py36.linux PANTS_REMOTE_CA_CERTS_PATH=/usr/lib/google-cloud-sdk/lib/third_party/grpc/_cython/_credentials/roots.pem CACHE_NAME=python_tests.py36) 01 Sep 2020 08:43PM UTC 0
0.0
Travis Job 35191.5
Source Files on build 35191
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #35191
  • d6656183 on github
  • Prev Build on master (#35188)
  • Next Build on master (#35195)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc