Talend: Task Execution Fails when re-built sub-job is deployed - talend

We have a perfectly working Talend Workflow which has 4 sub-jobs. One of the jobs needed a change, so we modified it and re-built the job within Talend Open Studio. Copied the jar to our production machine. However, when the Task executed, it failed with a "No Class Def Found" error message.
So, is this not how its supposed to be done? Do we have to re-build and re-deploy the main task and all the sub-jobs even for a minor change in a sub-job? Any ideas?
TIA,
Bee

You need to rebuild and deploy the main job.
I don't know why, mays be have you increased the version of your subjob ?

Related

Extraction failed for file: in ExtractFiles#1

I have a react js application, that one currently set for Azure CI/CD pipelines.
Suddenly it started failing at the release phase. it's building successfully and I can see .zip file created in artifacts.
Extract file task set in the following way
error occurring this way, no more details about the extraction failing
Extraction failed for file:
/home/vsts/work/r1/a/{pipeline_project}/drop/{build_number}.zip
ExtractFiles task has been migrated from the Node 10 handler to the Node 16 handler.
There's a known issue here in the Node 16 handler compared to the Node 10 handler. A Pull Request to increase the value of the maxBuffer option has been created to fix the issue.
Currently, the task version has been overridden to the previous one (1.200.0). Tested it, now it works.
Please try it again using the task version 1.200.0.

deploying webjobs through CI-CD pipeline

I have a continuous webJob and am running it through CI-CD pipeline. After successful release webjob is showing as restart pending. Getting an error in the logs
D:\local\Temp\jobs\continuous\MiddleCompassServer\rrwnz5aj.4el>dotnet
MiddleCompassServer.exe
A fatal error was encountered. The library 'hostpolicy.dll' required
to execute the application was not found in
'D:\local\Temp\jobs\continuous\MiddleCompassServer\rrwnz5aj.4el\'.
Failed to run as a self-contained app. If this should be a
framework-dependent app, add the
D:\local\Temp\jobs\continuous\MiddleCompassServer\rrwnz5aj.4el\MiddleCompassServer.runtimeconfig.json
file specifying the appropriate framework.
There was chance that the dotnet core version specified in .json file mismatch with the version installed. You can try the solutions given in this thread mentioned by TrevorBrooks.
If above thread didnot workout for you.Try run .exe directly from console (./MiddleCompassServer.exe ) without using dotnet. as pointed out in this thread.
You can also try adding the runtimes setting in project.json and modify the RuntimeIdentifiers in .csproj file as this thread pointed out.

Buildbot Triggerable Scheduler and working dir relation

Trying to setup a Triggerable Scheduler in buildbot nine (0.9.1) but I think I'm misunderstanding how this is supposed to work.
I have two builders:
CompilerBuilder
PackageBuilder
Last step of the CompilerBuilder is a trigger step:
steps.Trigger (schedulerNames=['package'],
waitForFinish=True)
The master configuration file has a Triggerable scheduler:
c['schedulers'].append(schedulers.Triggerable(
name="package",
builderNames=['package']))
What I want to achieve/expect
A SingleBranch Scheduler starts the CompilerBuilder
When the CompilerBuilder reaches the last step, the PackageBuilder is triggered, so the freshly compiled software is packaged.
What really happens
The SingleBranch Scheduler starts the CompilerBuilder
When the CompilerBuilder reaches the last step, the PackageBuilder is triggered
...so far so good, unfortunately the PackageBuilder is started inside a different working dir from the one where the code has been checked-out and compiled, so the package creation process fails.
My understanding was that a Triggered builder would be run in the same working dir of the "calling" builder but I think I'm not understanding how to correctly configure the builders/schedulers correcty.
Any hint?
Unfortunately, each builder has it own working directory. I recommend using addSteps (not addStep) with a list of package steps as part of the single branch scheduler builder. If you don't always want to package, add a doStepIf with some additional logic.

Executing tests in another build.gradle project

I am finishing a Continuous Integration system with Jenkins and Gradle for a REST service. It will build the App and dependent sub-libraries, build a Docker, start main docker and secondary ones (database, ...) all in Gradle.
As it is a REST service I have a separate project that executes the REST tests completely from outside my project just as it is a REST client, and works ok...
Once my project is built and everything running I need to execute the build in the other project (which is just for tests) as a subproject, and wether it passes or not the tests I want to continue the main script as Dockers need to be stopped and deleted. What is the best approach for this?
Thanks
You just need to create a task with type: GradleBuild in parameter
Example:
task buildAnotherProjectTask(type: GradleBuild) {
buildFile = '../pathToBuildFileInTheOtherProject/build.gradle'
tasks = ['build'] // You can run any task like that
tasks = ['test']
}
and to run it u can use the following command
gradle buildAnotherProjectTask
This is worked with me when i tried it.
Hope my answer will help :)

In UrbanCode Deploy, how do I cause an application process to fail if not all component versions were specified?

Currently, when I run an application process that installs various components, if I don't specify a version for any of them, the deploy component process doesn't run, and it says "No Version Selected". However, the step doesn't fail, and the process continues. Is there a way to configure the process to fail if not all components have a version? Or is there a way for me to interrogate the manifest for the process in a step at the top to figure it out myself and fail accordingly? I currently can find no way to do either of these things. The version of UCD I am using is 6.1.1.3.
If your component process is configured as "Process Type* Operational (With Version)" then if you don't select the version the job will fail.