what CI are you using with pants ?
# general
b
what CI are you using with pants ?
a
we use travis ci from github in open source. twitter uses jenkins internally. google cloud has already or will soon make available an api for cacheable remote execution of build tasks (which was developed through a collaboration of pants and bazel developers), which we would definitely make use of as much as possible in our open source pantsbuild ci.
do you have questions about using pants in your own ci?
b
not particulary. Wa are having some trouble to have a "stable" build. We were just wondering how pants is used elsewhere … thank you for your answer !
a
one thing to note is that at twitter we are still making use of
./pants --changed=... list
, then filtering, then running
./pants test
on the result. our larger goal is to get to be able to run
./pants test ::
, and the only reason we're not there yet is legacy code which we are working on improving. what kind of stability do you mean?
b
yes, we are using something similar :
Copy code
changed=$(./pants --changed-parent=${changedParent} list)
dependees=$(./pants dependees --dependees-transitive --dependees-closed ${changed})
filtered=$(mktemp)
./pants filter --filter-type=junit_tests \
               --filter-tag-regex=-integration,test-dev ${dependees} | sort > ${filtered}
what is this
--changed=...
argument ?
We have stability problems with tests but it's under resolution. When we have multiple concurrent build, we heavy integration tests with tons of docker … it becomes difficult. But one of our lead-dev is studying the problem and he almost fixed all our problems
👌 1
a
that's great to hear! i meant
--changed-parent
earlier, was typing too fast. do you mean that tests begin to fail nondeterministically when you say it becomes difficult? if your problems are being fixed that sounds great
b
yes that's exactly what I means. Essentially timeouts. Thank you
a
are you familiar with the
timeout
argument on
python_tests()
? https://www.pantsbuild.org/build_dictionary.html#bdict_python_tests just making sure
if you mean timeout on an external service that actually makes sense now, sorry
b
if a docker hosted on the build machine is an external service yes. these tests works locally or when launched one by one but cause spurious fails (timeout) when our build server become busy
a
when you say timeout, do you mean pants is returning an error due to the test taking too long to complete, or that tests begin to fail because external requests made in your tests are timing out and therefore failing?
b
second option