Is there any way to setup Travis CI on our own machines for private repositories and have it connect to our own git server?
Looks like they are working on private repository support. It's in private beta testing now. Checkout this thread https://groups.google.com/forum/?fromgroups#!topic/travis-ci/Asq30ulew4E
Update:
You can also check https://circleci.com/ for private repos.
Another alternative is gitlab-ci. This works well with gitlabhq and is open source.
UPDATE:
I have recently tried Jenkins with GitlabHQ. They both can co-exist very well too, but with the help of additional plugins. Jenkins does not come with support for git out of the box, but a plugin is readily available for that.
Installing Jenkins was very straight forward on Ubuntu. I am guessing it must be as easy on other platforms as it is written in Java and is available as a .war file. Configuring it is also very easy from its web interface.
Numerous plugins are available (including those for GitlabHQ, Github etc.). Plugins can be downloaded and installed right from its web interface.
Travis now has a private offering, the starting price at the time of writing this is $129.00 USD per month for unlimited repositories with two simultaneous builds. Very easy to set up and if you're already on GitHub it integrates very nicely: https://magnum.travis-ci.com/
I think this is what you are looking for. I especially like only paying for build time.
http://beta.travis-ci.com/?r=http://about.travis-ci.org/docs/user/travis-pro/
Jenkins is also a possible CI tool. cloudbees offers enterprise support.
Travis CI now offers Travis Pro for private repositories. Users with a student email address can sign up for GitHub's Student Developer Pack and get access to build from private repositories for free.
Related
is there a way to notify a CI system about a new published version of an artifact and trigger a build?
The scenario looks like that:
Developer of team A working on component C commits changes
CI is triggered, builds and runs tests
After tests are passing the binaries are published to an artifact repo (Nexus)
Another CI job receives this notification and triggers a build where other components + the new component C version are tested (integration tests).
Is there any plugin available on the market that supports such a notification mechanism? I haven't found yet such a tool for Nexus(Ivy)? The only thing I found is an Artifactory plugin from JFrog where you can publish from Teamcity directly.
Thanks,
Martin
I'm not aware of anything pre-made that does this. But you could easily write a small plugin that does this. Have a look at the "virusscan" example here, it would just take a few small modifications to make it do what you want:
https://github.com/sonatype/nexus-example-plugins/
Artifactory nowadays supports webhooks to achieve what I asked years ago: https://www.jfrog.com/confluence/display/JFROG/Webhooks
What is a 'scoped' repository workspace ?
Does this mean only members in current team will be able to view the repository rather than 'public' where everyone in the prject area can view the repository.
Scoped is what I always recommend when creating a repo workspace:
It allows other member of the project area to access your repo workspace by adding it to their flow targets.
That allows them to accept changesets from your repo workspace even though you haven't delivered them on the Stream.
This is a nice change to the "reserved checkout" issue with ClearCase, when a collaborator is no longer there and the file is blocked.
Here, as long as you have checked in your changes, even if you are not there to deliver them, those changes aren't locked in your computer, but are available for the other members.
This is different from scoped flow target.
And RTC4.0 has introduced Scope read permissions on files and folders.
That being said, a "public" repo workspace has its use (see this thread):
The idea of using a public repository workspace, is to provide an up and running development environment for the team.
I do not want a developer to spend 2-3 hours with the support of somebody else to setup is workspaces, to run a web application with the J2EE artifacts. Currently we are using MAVEN to build are applications and setting up the development environment and we are struggling with it.
To much knowledge required by the developer and way to much money trying to automagically configure the RAD 7.5 workspace with MAVEN and are own scripts.
The idea is to setup pre-configured public repository workspace with all the necessary RAD 7.5 artifacts (server, EAR configuration, web configuration, link between projects and link to MAVEN repository for component that you dont want to load in your workspace.
For our team we may have around 8 public repository workspaces, some with only the front-end projects other with only the back end projects or a mix of both depending on our specific needs.
The developer come in the morning pick the proper public repository workspace for his task and is up and running in 10 minutes. He can see ongoing changes from other, accept changes from his team mate or not. Of Course, from the workspace the changes can be delivered in the stream used for continuous integration.
I think its cool.
Is there any free online private maven2 or maven3 repository? So that team can access the repository from various region.
If you use github, you could use a private github project as your maven repository. There are instruction on how to publish your maven artifacts to github here: https://stackoverflow.com/a/14013645/82156
we can use dropbox for online maven repository. But it is not completely private. you can use it if it gives you enough privacy.
This is the instruction to create free maven online maven repository on dropbox
Create an account on dropbox
Download and install dropbox client
After you install dropbox client, A folder called "Dropbox" will create in Users folder. There is a public folder in it. Create a sub folder in public folder and copy the url of that sub folder(ex: C:\Users\Lakshman\Dropbox\Public\repository)
Execute the following command to deploy the project artifacts to this path
mvn deploy -DskipTests=true -DaltDeploymentRepository=dropbox::default::file:///C:/Users/Lakshman/Dropbox/Public/repository
you can use this in your pom file to the above task
<distributionManagement>
<repository>
<id>dropbox.repo</id>
<url>file:///C:/Users/Lakshman/Dropbox/Public/repository</url>
</repository>
</distributionManagement>
if you have sync your local folder with dropbox it will automatically upload artifacts to online repository. you can get the link by login to Dropbox and go to public folder and click copy public link.
This solution got from here and referenced this also.
I just found a free repo for personal projects. Might not be suitable for team work and/or professional use though. Note that it seems to be from Russia. I am not connected in any kind to that project so I have no idea about the privacy of the data posted there. But it seems to work ok.
https://mymavenrepo.com
I have not tried but there is also
https://bintray.com/
This one might have a better reputation :)
We use https://repsy.io in one of our project. It's straight simple and convenient with 1GB free limit.
Update: GitHub launches the Package feature in Beta which supports the Maven: https://github.com/features/package-registry
Update: the Deveo has been acquired by Perforce, see this link
As of September 12, Deveo is now Helix TeamHub. The new name and branding represent our new, integrated solution from Deveo and Perforce.
Helix TeamHub can be hosted in our cloud or on your own servers with Helix TeamHub Enterprise, powered by Helix4Git.
Have you tried Deveo, I am using this cloud service and has 1G storage for free. You can deploy the Maven repository on it.
New features in Deveo 3.17
Pull requests between repositories
Maven and Ivy repositories
Deadlines for issues
Emojis
I recently wrote a lightweight Google App-Engine application to host my private repositories, backed by Google Cloud Storage (which is multi-regional per default):
https://github.com/renaudcerrato/appengine-maven-repository
Thanks to Google App-Engine free quotas, and depending on the scale needed, you won't have to pay anything.
For this purpose you could use a SVN repository. Some of them are available for private usage for free. Take a look on Maven: Commit single artifact to svn repository
Is it possible to publish your site reports to github? For instance, I run Checkstyle, Findbugs, Cross Reference, and other plugins and would like to have that publicly available. Since my project is already there, I'd like to just keep it there.
With the state of the plugins that exist now, you'd have to do some shimming. The site command (per your comments: wanting to use mvn:site) has a mechanism (stage) for pushing the resulting site somewhere, but it's all mostly predicated on SCP'ing it around to some final destination. For github, I don't think there's any obvious place to land things like that.
The solution would be to write something that extended the site plugin to check in the results to Github using the github pages functionality. Details on the github pages bits are available at http://pages.github.com/. To get there, you'll be writing something that checks in your resulting site to a root branch "gh-pages" and going from there.
There are maven github plugins wich works fine for me.
feature:
deploy artifacts
download artifacts
deploy site to gh-pages
See: https://github.com/github/maven-plugins and fork the example project at https://github.com/kevinsawicki/github-maven-example to try out.
The Maven way to publish your reports would be to build the Maven site and to deploy it using FTP, SCP or DAV.
I don't know if GitHub provides hosting space and supports any of this protocol. If it does, then the following resources will help:
Deploying a Site in the site plugin Usage page
10.6. Deploying Your Project Website
Maven 2: Getting "mvn site:deploy" to work
Releasing Maven projects to Github
Site Distribution in the POM Reference
If it doesn't, better look for another place to host your site.
I'm using this plugin for that: http://synergian.github.com/wagon-git/
I have a stable opensource library and was wondering how (and if) I can publish my lib to maven official repositories so people can include it in their pom.xml files and get the dependency downloaded automatically.
The process to get your library in the central repostiory is documented in the Guide to uploading artifacts to the Central Repository. In short, the new process is to get your project hosted by one of the approved Forges that will be synced with central, the Maven folks don't rsync personal repository anymore. In your case, your best bet would be to use the Sonatype Forge (open to any OSS Project). Check the given link (and also this document).
If you want reliable access for everyone out there, you need to stick with central. Due to the tendency of people at dev.java.net to break rules about the immutability of released artifacts, some people don't trust it. Further, it can be Very Slow.
To get your project into central, you need have your code in some public repo that they can sync from.
Central repository
A bit less bureaucratic dev.java.net Maven2 repository - allows completely automatic deployment.