I am setting up a build environment with a unique master buildbot and multiple buildslaves. I have multiple builders which will run on the available slaves. The builders can be triggered on-force or scheduled to run as nightly builds or can be scheduled to run when some changes are detected.
I have setup a MailNotifier to send the results/status of the builds. This MailNotifier will send one email for each of the builder. What I want to do now is to send a single email for multiple builders. For e.g. all the nightly builders after successfully building, trigger some function in master buildbot which will trigger the buildbot to send a single email which includes the results of all the nightly builders.
I would like to know whether something like this is possible and whether buildbot provides support to send a single email for multiple builders. If not any pointer how to accomplish this ??
Thanks in advance !!
You are looking for buildSetSummary parameter to MailNotifier: if you set this parameter to True, it will send a single e-mail listing statuses of all completed builds.
More information: Buildbot Manual
It's been quite a while since you asked this but just in case you still need an answer, look at the settings for buildbot's MailNotifier. The default behaviour is to send an e-mail for each builder, so you have to specify which ones you're interested in using the builders argument (scroll down the page):
builders (list of strings). A list of builder names for which mail
should be sent. Defaults to None (send mail for all builds). Use
either builders or categories, but not both.
Hope this is what you were looking for!
Create a TriggerableScheduler with all your builders in builderNames. Then, create a "super" builder with the following 2 steps:
trigger the new TriggerableScheduler with waitForFinish=True
send the email
Related
I want to be able to talk with Google Assistant, but connect the Actions project directly to an NLP service I already have running on my server. In other words, NOT use dialogflow.
All the following examples show how to do this.
With Rasa
https://blog.rasa.com/going-beyond-hey-google-building-a-rasa-powered-google-assistant/
With LUIS
https://www.grokkingandroid.com/using-the-actions-sdk/
https://dzone.com/articles/using-the-actions-sdk-for-google-assistant-develop
With Watson
https://www.youtube.com/watch?v=no0R0bSkHXc
They use the actions.intent.MAIN as the invocation and actions.intent.TEXT for all other utterances from the talker.
This is what I need. I don’t want to create a load of intents, with utterance phrases, inside the Action because I just want all the phrases spoken by the talker to be passed to my server, and for my NLP service to deal with them.
So I set up a new Action project, install the Actions CLI and then spend 3 days trying all possible combinations without success, because all these examples are using gactions cli 2.1.3 and Google have now moved on to gactions cli 3.1.0.
Not only have the commands changed, but so too has the file formats and structure.
It appears there is also a new Google Actions Console, and actions.intent.TEXT is no longer available.
My Action is webhook connected to my server, but I cannot figure out how to get the action.intent.TEXT included and working.
Everything I find, even here
Publishing Actions on google without Dialogflow
is pre version update and follows the same pattern.
Can anyone point to an up-to-date, v3.1.0, discussion, tutorial or example about how to send all talker phrases through to an NLP that isn’t dialogflow, or has Google closed that avenue?
Is it possible to somehow go back and use the 2.1 CLI either with the new Console or revert the console back. (I have both CLI versions, I can see how different their commands are)
Is it possible to go back and use 2.1?
There is no way to go back to AoG 2. You probably also don't want to do so - newer features aren't available with v2 and are only available with v3.
Can I use my own NLP with v3?
Yes, although it isn't as obvious, and there are some changes in semantics.
As an overview, what you'll need to do is:
Create a Type that can accept "Free form text". I usually call this type "Any".
In the console, it looks something like this:
Create a Custom Intent that has a single parameter of this Any Type and at least one phrase that captures everything for this parameter. (So you should add one training phrase, highlight the entire phrase, and set it for the parameter. Sometimes I also add additional phrases that includes words that I don't want to capture.) I usually call the Intent "matchAny" and the parameter "any".
In the console, it could be something like this:
Finally, you'll have a Scene that you transition to from the Main invocation. When it matches the "matchAny" Intent, it should call your webhook with a handler name. Your webhook will be called with the "any" parameter set with the user utterance. (Note that the JSON has also changed.
Again, the console might have it looking something like this:
That seems like a lot of work. Isn't there just some way to do all that from the command line?
Yes. You can do all of that in the configuration files that the CLI accesses and then upload it. (You can then also use the console to review the configuration, if necessary, to make sure they're configured as you expect. You can shift back and forth between them as appropriate.)
Google also has a github repository that contains most of the files pre-configured for this sort of setup.
You will need to update the configuration from the repository to handle the webhook correctly (it includes code to illustrate what is happening using the inline code editor) and to add your project ID.
I want to send mail with attachment to recipients in post build task if value of Env parameter is "FAILEDBUILD". This value I am providing at the start of the build in "build with parameter" window.
One thing what you can do is, in Build Section of the Jenkins Job, you can configure something like below.
Then in Post Build Action, using the below plugin will help you in doing that.
Try with the text finder plugin , you can set the build status depending on a single keyword or regular expresion looking on the console output.
Just wanted to ask some help on the Inbound Email scenario. I have setup one mailbox to receive CSV files that contains different mappings for each. I know I can use the choice filetr for it but I can seem to get the correct attachment name values on the email. Any thoughts?
Thanks
I will give you a general answer for situations like this.
When you don't know exactly what property values you are looking for, or what classtype they are, use the debugger in Anypoint Studio. Open your project, add a logger and set a breakpoint on it just after your inbound, and run it in debug mode. Trigger the flow to start, in this case by sending an email to the box it is polling.
Next, you will see the debug perspective and will be able to see the attachment as an inbound property (if i remember correctly). You will also see its type. If you are handling a more complex object, just add a Groovy Script to build the logic needed, and set a simple flag in another property that you will later use in your filter.
Hope it helps.
I am stuck at a point where I run a perl script through jenkins and I want a conditional email notification to be sent.
For eg ..
if at the end of script the value of a certain variable is > 1 then send the email notification
else
dont send
Can anybody help me with this ? or knows a better way to do this ?
This can be solved using
Email-ext plug-in
https://wiki.jenkins.io/display/JENKINS/Email-ext+plugin
And you can use the above link to view information regarding plugin
if i'm correct you want to send mails based on your build condition result.
you can use triggers for this in Editable email notification.
you can use post build step and pre build steps to trigger emails based on your conditions
you need to write a script for your requirement and place it in post & pre build steps.
I haven't any of this, however:
There is an Any Build Step plugin. Among other things, it allows post-build actions to be executed as build steps. In theory, this should allow you to execute "Editable Email Notification" post-build step as a build step. This is the biggest wildcard in this solution. Try this first. I don't know if the email notification will work properly when done before the Jenkins' "build cycle" of a job is complete.
Next, there is Conditional Build Step plugin. It allows you to execute a build step based on various conditions.
If you were able to trigger email in the middle of the build cycle with "Any Build Step" plugin, you should be able to wrap it with the "Conditional Build Step" plugin to be executed conditionally.
Let me know if this actually works
I was having a similar condition where I need to send out an email when jenkins build log has a string. Here is how I handled in the presend script of the jenkins job.
logger.println(build.getLog(50))
if (build.getLog(50).contains("NoChangesPresent")) {
cancel = true;
}
I am trying to get the last 50 lines of build log and search through it to see if there is a string present. If it is present then I am setting cancel to true which would stop triggering the email from jenkins.
Hope this helps.
I like siri's answer. There is one think missing.
logger.println(build.getLog(50)) if
(build.getLog(50).toString().contains("NoChangesPresent")) { cancel = true; }
It doesn't appear that contains will function without converting it first to a string. Good luck!
I have created a custom workflow activity that copies attachments from a case to an email, both supplied as Lookup parameters. I installed the workflow assembly, created a case with attachments and an email. I then used the workflow design to create a new workflow with one step that runs my custom activity. The attachments copied nicely.
The first use of the custom workflow assembly is to create the email before doing the copying the attachments. I therefore created a new workflow that created an email using details from a case. I set this up as a manual workflow as this it what the end user (CRM consultant) will be doing. I ran that workflow and an email was created as expected.
I then modified the second workflow to add a second step. The second step copies the attachments from the current case to the created email. When I ran the workflow, it failed on step 1.
I modified the workflow so that the email from step 1 was not used in step 2. Instead, I used an existing email as per my very first test. This means that the two steps when executed individually work and if they ran concurrently they should work because there is no link between them. However, when I ran the workflow, it failed on step 1.
Can anyone suggest why this may be happening?
I found the answer so thought I would post it here. I had a class in use that was not marked with the [Serializable] attribute. Once the attribute was added, the problem went away.