Comments (19)
Can you be more specific? Each build already links back to the differential
from phabricator-jenkins-plugin.
I think he wants links back to Diffusion-hosted repositories and their commits. There's a lot of browsers listed in the git plugin for this, I even wrote the AssemblaWeb browser. It's really easy, but if that's what he's really looking for it belongs in the git plugin, and not this one.
from phabricator-jenkins-plugin.
Sorry to be dense, I'm not super familiar... where would the link be?
from phabricator-jenkins-plugin.
Here you go: https://github.com/jenkinsci/git-plugin
from phabricator-jenkins-plugin.
The useful thing about that feature in that plugin is that you can look at diffs, file history, etc. without having to go to a project landing page from the host or whatever. Just click on the diff from the commit in the build and you're there.
from phabricator-jenkins-plugin.
I guess I'm just not totally clear on what the ask here is. Which pages should have these links, and where should they go to? You want a link to diffusion instead of differential? We can add that @ari
from phabricator-jenkins-plugin.
I should explain in more detail. Firstly, I'm using subversion for some of my repositories, and Jenkins has a page of the form /job/${projectname}/changes which shows a list of recent changes. This is very helpful, particularly when you want to dig into changes which broke a build.
This is configured in the job from a list of possible repository browsers.
I'd like Phabricator to be added to the list. Then all we need to know is the phabricator diffusion Callsign and we'll be able to construct the appropriate URL. Does that make sense now?
Can I also suggest that you add an introductory paragraph to the top of https://wiki.jenkins-ci.org/display/JENKINS/Phabricator+Plugin to explain what the goals of the plugin are. If I don't care about Uberalls, what does the plugin do for me?
Thanks for the work on tying together two great systems!
from phabricator-jenkins-plugin.
Yeah, @ari, that is something for the [https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin](SVN plugin). All of those browser settings are a part of that plugin. This plugin is to use features of Phabricator, specifically Differential, with Jenkins. This will change your workflow to one degree or another and require the use of Arcanist, the Phabricator CLI. I recently set up a Phabricator instance for my project and I'm really excited about this workflow and Arcanist features. I think you should check it out. I don't use uberalls either. Since I'm accustomed to a more or less free-for-all workflow, it took me about two days to figure out what that workflow was and how it works with Jenkins with this plugin. I'm excited about it. It has some major advantages.
Unfortunately, this plugin seems to explicitly use Git, not SVN, so I don't think it's for you if you have your heart stuck on SVN. Although if you're good with Java I'm sure the maintainers would welcome a PR to fix that.
from phabricator-jenkins-plugin.
Thanks for the details!
To be clear, Phabricator itself is not a source-of-truth for source code. Diffusion provides a browsers into git and mercurial, but it is itself not a SCM. To me, it seems that you should point your job at the source-of-truth (e.g. the gitolite backend, or SVN in your case), rather than using Diffusion as a proxy for browsing your source.
The wiki page could definitely use some loving (I have very little free time), but it does explicitly call out that the current implementation supports only the Git backend -- I would of course welcome PRs to add support for more VCS's.
from phabricator-jenkins-plugin.
I'm sorry @sectioneight, you're wrong about hosting. I personally think hosting elsewhere is probably a good idea because Phabricator is under heavy development atm and GitHub is far more redundant.
from phabricator-jenkins-plugin.
Oh awesome! That certainly makes setting things up easier for developers. It still seems like the SVN/Git plugins should be pointed at Phabricator though, rather than this plugin providing some sort of browsing functionality.
from phabricator-jenkins-plugin.
You're absolutely correct about that. Let those plugins do what they do.
from phabricator-jenkins-plugin.
@sectioneight Sorry, but that doesn't make any sense to me. The only reason I installed Phabricator is to provide a source code browser for my company. Most of the other Phabricator features are not yet that useful for my particular workflow (or I've already got better alternatives with other tools).
@lavahot Thanks for that. I'll close this task and open one with the svn plugin team. I note that my git repositories include phabricator URLs.
I have to say I'm still confused about the workflow this plugin offers. It creates differential items from failed builds? I'll play with it more...
from phabricator-jenkins-plugin.
I think you're backwards on the workflow, @ari. Upon creation of a Differential, it builds that code and reports the results back to the differential, failed or not. It also adds differential links to associated builds in Jenkins. I think that's all it does. When the build is done and the diff is reviewed, you can arc commit
to push to the repository. Here's a reasonably good tutorial for more on general Phabricator workflow.
from phabricator-jenkins-plugin.
Ah! I see. That makes more sense now. Probably not that useful for my needs since our workflow is based on committing to feature branches and performing reviews after code is already in a repository rather than sending around diffs. But I can see this might be useful for others.
Now, what I'd like is a way to create an "audit" in phabricator automatically when a build fails. That would be cool. If that's in scope of the goals of this plugin, I'll raise a new ticket.
from phabricator-jenkins-plugin.
That would be cool. I suspect that would be on the backburner as Phabricator's team has drank the "pre-push" kool-aid, and for good reason. I think they put Audit in there explicitly to allow people with the more conventional post-push workflows to use the software.
In your workflow, when would a build occur? On feature branch push? On audit approval? On merge? When would you lint/unit test?
from phabricator-jenkins-plugin.
Thanks for the thorough replies all! It's definitely become clear to me that I need to better define what this plugin is for. It's really specific to Differential, which it sounds like you're not using. I'll see if I can rename and/or improve the documentation to be clearer.
from phabricator-jenkins-plugin.
@lavahot I don't really understand the usefulness of "pre-push" concept. Why in 2015 are we creating diffs and sending them to people without using SCM tool? Isn't that why git and svn have branches? Isn't that why github developed pull requests? Perhaps I'm missing out on a fundamental important part of phabricator, but that's OK... I like the other bits :-)
I'll have a think about another plugin that might tie into an audit process, making it easier to see the diff which caused an error. But perhaps that should tie into my task tracking tool instead.
Thanks again everyone.
from phabricator-jenkins-plugin.
Well, while you can do exactly the established GitHub workflow with Phabricator, doing diffs allows more reporting, like linting, unit-testing, reviewer selection, etc. I like the added benifits, and I think it's only there as a necessity. You can still push to remote feature branches, but there's generally no reason to aside from backup. When you're ready to merge, you make a diff with your changes and it gets reviewed in an integrated way.
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.