Comments (11)
Interesting. I haven't used the plugin before, but it looks like it's supposed to be adding the "exported path" into your path... Will try and repro later today.
from phabricator-jenkins-plugin.
I can repro the issue, but can't seem to extract the environment variables from the Custom Tools plugin into my build wrapper. As a workaround (and necessary for the other issue) I can add a custom PATH to look for arc in, but I am still hoping to figure out a way to make this one work more seamlessly. In other words, echo $PATH
during the build step works fine, but PATH
isn't overridden at the time the differential is being applied.
from phabricator-jenkins-plugin.
I got this to work with #23 by configuring the custom tools like so:
Does this seem like a reasonable tradeoff, or can you think of a better way for the tools to work together (e.g. try to install arcanist/phutil by default)
from phabricator-jenkins-plugin.
In the short term, I think this is fine. In the long term, it feels clunky (it is sort of tied to the implementation of Custom Tools).
Alternatively, we could have this plugin just install arcanist/libphutil itself. That way, I don't need to use the Custom Tools plugin for this purpose.
from phabricator-jenkins-plugin.
Ok, so here's what I'm thinking:
Merge this PR as-is, since this solves #19.
Next, we add a step that attempts to auto-install (and update?) arcanist and libphutil if none is found in the system path and no custom path is configured.
@jjx what do you think? (also @joshuaspence: are there other phab contributors that would like access to this repo? i don't intend to be the gatekeeper, just trying to contribute back the work we've done at uber to make CI seamless (which for us, involves puppetizing a ~/.arcrc for jenkins slaves and cloning arcanist into a path that gets sets into bin, which I'm now realizing is not something most people want to be doing).
Thanks for all the suggestions!
from phabricator-jenkins-plugin.
+1. Yes, an option to auto-update would be appreciated (I like to live on the bleeding edge).
I don't know of any other Phabricator contributors that even use Jenkins to be honest.
Yeah, I was considering puppetizing the ~/.arcrc
and arcanist installation... but I prefer to do this within CI itself. It simplifies our puppet manifests and means that we only install tools such as arcanist on slaves which actually need them. Furthermore, it makes it possible for us to run different versions of these tools if we need to (as opposed to installing a single version globally).
from phabricator-jenkins-plugin.
@joshuaspence Oh, Custom Tool. I've never heard of it. That's cool. That would probably solve the installation part of #19 if I can set it up correctly.
What do Phabricator contributors use for CI? Travis, Harbormaster? Are any of them as robust and customizable as Jenkins?
from phabricator-jenkins-plugin.
Next, we add a step that attempts to auto-install (and update?) arcanist and libphutil if none is found in > the system path and no custom path is configured.
@sectioneight As far as installation goes, since there are numerous installation methods for several package manager repos (albeit in "unstable"), installation when arcanist is not found should be a checkbox, not default behavior.
from phabricator-jenkins-plugin.
This isn't really fixed yet
from phabricator-jenkins-plugin.
I think the direction we're going, now that Harbormaster HTTP is being used (as opposed to arc call-conduit) and Staging repos are available, is to encourage people away from the "arc patch" ("Apply Phabricator Differential") step, which means we no longer have to have arc
installed on any of the jenkins nodes.
Does this approach seem reasonable @joshuaspence, or would you prefer to simultaneously pursue a solution where we install/upgrade arcanist for the arc patch
step?
from phabricator-jenkins-plugin.
Closing for now, let me know if you'd like to continue investigating alternative auto-upgrade-arcanist strategies.
from phabricator-jenkins-plugin.
Related Issues (20)
- How to create Conduit API token for bot user? HOT 4
- Xml external entity injection
- getbasecommit fail due to sourceControlBaseRevision is null
- Report back build URL immediately with Jeninksfile/pipelines HOT 1
- (Add option to) Fail if git --reset fails HOT 1
- In pipelines, environment variables from withEnv() are ignored
- Should report better cause of failure
- Getting the whole workspace instead of only the diff HOT 1
- Selecting --output json suppresses errors in the configuration HOT 1
- CVEs in the execution path imported by dependencies
- Option to post partial updates and omit pass/fail HOT 3
- [Question] Is it possible to add custom phabricator comment from a jenkins pipeline step? HOT 10
- Fix compatibility with 2.241+ HOT 2
- Release v2.1.4 ? HOT 6
- Improvenents for Documentation HOT 1
- Refactor code coverage logic into independent lib
- [Proposal] Fix bug for instead of overwrite, we should aggregate multiple coverage file coverage line contains same class
- Make processing unit test results optional
- Plug-in still depends on deprecated (and removed) Apache Commons HttpClient HOT 2
- Please make a new release of phabricator-jenkins-plugin HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phabricator-jenkins-plugin.