Coder Social home page Coder Social logo

Comments (11)

ascandella avatar ascandella commented on September 3, 2024

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.

ascandella avatar ascandella commented on September 3, 2024

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.

ascandella avatar ascandella commented on September 3, 2024

I got this to work with #23 by configuring the custom tools like so:

image

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.

joshuaspence avatar joshuaspence commented on September 3, 2024

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.

ascandella avatar ascandella commented on September 3, 2024

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.

joshuaspence avatar joshuaspence commented on September 3, 2024

+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.

lavahot avatar lavahot commented on September 3, 2024

@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.

lavahot avatar lavahot commented on September 3, 2024

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.

ascandella avatar ascandella commented on September 3, 2024

This isn't really fixed yet

from phabricator-jenkins-plugin.

ascandella avatar ascandella commented on September 3, 2024

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.

ascandella avatar ascandella commented on September 3, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.