Scripting responses for use in the Maven Release Plugin - maven-plugin

We are a SVN/Maven/Hudson shop. We are experimenting with using the Maven Release Plugin to help automate our very laborious tagging and releasing process. We are happy with what we are seeing and have researched thus far in regards to this plugin.
Our question is - if we need to have different tags for some of the modules / applications being built, is there a way to script the responses?
We have waded through the interactive dry runs successfully, however we are looking to script these out to further our automation.
Has anyone tried this or know if it is possible?
Does the "Batch Mode" allow this functionality?
Thanks
Joe R

You can -B but it will use default version names (removing -SNAPSHOT at the end).
regarding tags per module you can have a look at the parameter : autoVersionSubmodules 1
/Olivier

Related

How to create Salesforce incremental package.xml automatically?

Does anyone experiment in creating salesforce Package.xml automatically for continuous integration? If there any script or some idea please share.
You know incremental package.xml helps to deploy only the modified files rather than using complete package.xml that redeploy unmodified files as well which takes a lot of time.
Thanks in advance!
Tricky. And not really a programming-related problem, consider cross-posting this to https://salesforce.stackexchange.com/ or maybe even https://devops.stackexchange.com/
I don't think there's no clear answer, you'll have to experiment. Especially that you tagged "migration tool" (so old-school, battle-tested but lower priority Metadata API; seems that all focus is now on SFDX style of deployments). Do you use any version control (ideally Git) or do you hope to somehow compare source & target org, figure out the deltas and deploy only them?
Remember that often SF gets better at detecting "no changes" with every release (how old is your migration tool's jar file?). For example when I deploy my current project to an empty sandbox (exact copy of prod, no custom objects, code etc yet) the initial deploy takes ~7 minutes. But any subsequent deploy with same content or slight changes takes just 3-4. So try to calculate time lost in the grand scheme of things and decide what gains you want to see / how much time you want to spend on experimenting and tweaking the solution.
You could look into dedicated deployment solutions such as Gearset, Autorabit, Odaseva (I'm not affiliated with either and this list is not exhaustive). They often are capable of running a comparison for you.
There are several projects that try to compose package.xml based on Git diff(erence) between two commits. Of course you need to have a repo first and some regime:
https://github.com/cloudsandbox/sfdx-gen-pack saw presentation about it at Cloudforce London 2019
https://github.com/Accenture/sfpowerkit seems to have a "diff" command (disclaimer: I used to work for Accenture but not affiliated now, haven't worked on the tool, haven't used it personally)
https://cumulusci.readthedocs.io/en/latest/ this seems to be interesting and mature. Built by SF employees, not an official tool but used to CI deploy the non-profit packages they build (maybe you heard about Non Profit Starter Pack, especially if you ever considered enabling Person Accounts). I'm not sure if they do delta deployments as such but there seems to be a command that updates package.xml with files in repository so it's a start? https://cumulusci.readthedocs.io/en/latest/tutorial.html#part-4-running-tasks
I'm not saying CumulusCI will be a silver bullet but out of these 3 seems to be most actively maintained ;) But sounds like you'd have to get familiar with SFDX (if not whole thing then at least commands to convert the project back and forth between "source" (SFDX) structure and Metadata API structure
Answering my question by myself: I found git diff master feature/vat | force-dev-tool changeset create vat working!
Thanks to Roman answered in https://salesforce.stackexchange.com/questions/184332/is-there-a-pre-build-solution-for-generating-a-package-xml-from-a-git-repo

Zeppelin: Need to know more about zeppelin

I have recently started learning zeppelin. I know we can use angular and PostgreSQL e.t.c within it using interpreter. I have gone through its tutorial as well. But it is not as descriptive as I thought. I have many doubts which I am asking to you and which may help other beginners as well.
1> How we can create API for the zeppelin (if possible)?: As most of the client side apps uses API, is it possible to create API in zeppelin ? and in which language we can create API. If possible I am thinking to create API in java or node.js(JS).
2> Is it possible to integrate zeppelin graphs in any UI(angular or html ?)?
3> How we can deploy zeppelin based application in production environment ?
If you have any good tutorial source please attach it.
If I have asked unrelated questions please point out. I will change it.
Thanks in advance for provide help and giving you precious time!
Apache Zeppelin has wide and well described API [1]. You can use any language to work with API.
Yes [2]. You can embed the paragraph result to your website.
You can use binary package or built from source [3].
[4] contains a lot of code in setup section.
--
http://zeppelin.apache.org/docs/0.8.0/usage/rest_api/notebook.html
http://zeppelin.apache.org/docs/0.8.0/usage/other_features/publishing_paragraphs.html
http://zeppelin.apache.org/docs/0.8.0/quickstart/install.html
http://zeppelin.apache.org/docs/0.8.0/

Is PAA a good candidate for automating wcm library deployment and setup in portal?

I have created a Web Content Management library for use in WebSphere Portal. At the moment I'm using import-wcm-data to import the library, then I need to add some additional propeties to 2-3 files on the server under Resource Environment Providers and then restart particular services so those changes are detected.
Can anyone explain the benefits of using a paa over writing a simple bash (or similar) script to automate this process?
I don't understand if I get any advantages when using paa, or is paa even capable of updating properties files and restarting services?
I have been working intensively with PAA files and I must say that it is a very stable way of deploying a app requirering multiple depl steps and components.
It does need a startup process but is well worth it in a multi server environment.
You can do all the tasks that you can do in a Ant file as well as using the wsadmin script interface. I only update res env settings and the such in WAS and do not touch any props files for that reason since all settings are stored in WAS.
In my experience, a PAA is not a good method if you're merely importing a content library.
I don't think I understand why you are doing the import manually and not syndicating, but even if there's a good reason not to syndicate, the PAA process was too involved and required too many precursor actions (deleting libraries, remove PAA, deploy PAA and then activate the portliest) to be a viable option for something as simple as importing a WCM library.
Since activating the portlets I was importing with the PAA was an extra step, I don't believe you can restart applications either.

Installing Sitecore package from a command line

Is it possible to install a Sitecore package (containing content tree changes only) from a command line via batch/power shell instead of going into Sitecore UI?
I am looking for the best way to automate our build deployments.
Thanks.
You can do this with Power Shell. Great source of information on how to use Power Shell with Sitecore can be found on Adam Najmanowicz blog ( http://blog.najmanowicz.com/category/software-development/powershell/ ).
And some information about exporting and importing packages is in his post http://blog.najmanowicz.com/2011/12/19/continuous-deployment-in-sitecore-with-powershell/
There is also an experimental powershell install script avaliable at the Sitecore GitHub that also might be useful if you are doing full build deployments from scratch .. https://github.com/Sitecore/PowerShell-Script-Library
(Please feel free to fork and feedback any improvements !)

Should i be using gradle for continuous deployment?

anyone has past experience with gradle? i'm thinking of using it for continuous deployment... i'm considering either using my own scripts (python) or gradle.
can anyone tell from experience which way he thinks recommanded to go? note i already use maven and i don't intend to move away for my dependency management and project management.
thanks
We have implemented Gradle-based deployment and environment management in a big governmental project (100+ servers). But we had to develop a custom set of plugins (which is actually rather straight forward process in Gradle) to handle tasks like remote SSH command execution through Groovy DSL, creation of application server domains/clusters (we are using WebLogic), application/configuration deployment.
We also are thinking of integrating Gradle with Puppet for easier Linux administration.
If you are coming from Java world, then using Gradle (which is Groovy-based) would be rather simple for you, because you can reuse your Java/Ant/Maven/Groovy knowledge to write scripts. Also an ability to create DSLs in Groovy may allow you to build interesting abstractions. Gradle also has very clean API which allows building nice dependencies between tasks. It also integrates very well with Maven infrastructure and you can reuse all Ant tasks.
Yes, Gradle-based deployment possible with gradle-ssh-plugin
Here is an article with good usage example.

Resources