I am working on Liferay 7.2 deployment automation using Jenkins, We have Liferay workspace (Source code) in GitLab repository, my problem is i am not able to clone only single module (portlet) which is changed/modified and build it after push event in GitLab, instead whole workspace is getting cloned and build which consumes time to build all modules. I have implemented post commit hook in GitLab for any change in git repository. Please suggest how to implement this.
Liferay dxp 7.2 jenkins CI/CD
977 Views Asked by Nitin Mestry At
1
There are 1 best solutions below
Related Questions in GRADLE
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- Gradle 8.7 cannot find installed JDK 22 in IntelliJ
- Every Time i run the app it gives me an error related to gradle
- How Do I Create A Path In The pubspec.yaml File?
- Gradle dependencies recursively
- Android Configuring settings.gradle for different app flavours
- How to set test build type to current build type in gradle kotlin dsl?
- Media3 dependencies for build.gradle.kts for Android Studio 2023.2.1 Patch 2
- Jetbrains Intellij Works but Fleet does not : "is not recognized as an internal or external command, operable program or batch file."
- The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher"
- Gradle SAXParseException cvc-complex-type.2.4.a
- How to solve Execution failed for task ':generateReleaseBuildConfig'. error in a flutter project
- Gradle build not using jar files from local projects
- Android SafeArgs gives error with GitHub actions
Related Questions in LIFERAY
- Liferay DXP Service builder @BeanReference field is null
- How to customize mention notifications in liferay 7.3.5
- Could not find method compileOnly() for arguments
- "error: cannot find symbol import com.liferay.portal.kernel.uuid.PortalUUID;" in Liferay 7.4
- java:41: error: cannot find symbol import com.liferay.portal.kernel.uuid.PortalUUID; in liefray DXP
- liferay, how to add a new permission to liferay using admin panel portal
- Why jmeter/blazemeter is not recording web actions which are in angular?
- liferay-amd-loader - Missing react dependency error in Liferay react application
- Liferay 7.4 | How to Check File Entry Permissions in a Servlet?
- Liferay 7.4 GA107: Unresolved requirement: Import-Package: com.ironsoftware.ironpdf_ [Sanitized]
- Liferay 7.4 theme development with bootstrap/clay css variables in browser
- Liferay 7 Taglib issue with new module in Dev Studio
- Liferay 7.4 GA27+: DLURLHelperUtil.getPreviewURL returning old legacy URL format for Document and Media images
- Freemarker if statements inside html elements
- Uncaught TypeError: A.LiferayItemSelectorDialog is not a constructor - Liferay Portal 7.4 GA 105
Related Questions in LIFERAY-7
- How to customize mention notifications in liferay 7.3.5
- ClassNotFoundException: com.liferay.portal.kernel.service.PersistedModelLocalServiceRegistry cannot be found by Service.service
- "error: cannot find symbol import com.liferay.portal.kernel.uuid.PortalUUID;" in Liferay 7.4
- Problem with opening a script tag with < and < through a CMS
- I need to setup session replication on liferay servers
- How to add validations on <aui:input type="editor" />?
- Liferay 7.4 | How to Check File Entry Permissions in a Servlet?
- The Error "instantiatedGenerator.run is not a function" Occurs when Generating the Angular Widget use yo angular-js
- How to enable X-Frame options in Liferay CE 7.4 for an specific URL - Embed a Liferay page in another Domain
- Liferay 7.4 theme development with bootstrap/clay css variables in browser
- Liferay 7 Taglib issue with new module in Dev Studio
- Error creating new liferay module project in eclipse 2022-3
- Uncaught TypeError: A.LiferayItemSelectorDialog is not a constructor - Liferay Portal 7.4 GA 105
- How to retreive instance scoped configuration in Liferay 7.4.3 (ga104)?
- liferay 7.4 - I am trying to add roles programatically but get error when trying to view Roles page
Related Questions in LIFERAY-7.2
- <aui:button> not working after deploying project into AWS
- how to change data type range in liferay
- Blank data comming in controller layer
- In liferay project While fetching html form values getting null result
- How to access a text file in root directory from a browser in Liferay 7.2?
- Use Liferay 7.2 Elastisearch Custom Filter to exclude all Web Content Articles with specific tag
- Add pannel in Liferay 7.2 doesnt show the basic web content
- Liferay Elastic Search Query: Search for DLFileEntries that have a Custom Document Type
- Which version of log4j is used in Liferay 7.2
- How to use slf4j logger instead of builtin Liferay DXP 7.2 logger in mvc-portlet?
- Liferay 7.2 - use journalarticle class in custom jsp hook
- Liferay 7.3 java.lang.NullPointerException after porting from 7.2
- Programmatically get list of Portlets deployed in Liferay 7.2
- How to refresh a portlet on a page where there is more portlets? (liferay-7.2)
- Errors when adapting an Angular application in Liferay
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
This is a really broad question and it will mainly depend on how your organization uses Jenkins.
With the push event you only know that it happens and Jenkins will load the code. It will not clone every time, unless you build a script that does that.
In any case, you will have a work environment created in Jenkins to represent that job, with an exclusive directory for it. To take advantage of modules already built, you will need to code your script for that.
Let's say, one idea is to take advantage of Gradle (BTW you can use the same programming language you use for Jenkins - Groovy). You can start by having a wrapper inside your workspace, saving the time to get it along all advantages a Gradle wrapper brings if living inside of your GitLab project.
With Gradle you can have building caches that really speed up you process, but it is kind of hard to make this happen inside a Jenkins job that has its own set of build artifacts for every job execution. You could however use Gradle to check or chose modules to build with a custom logic.
Let's say you started to tag modules with a file called
version.propetiesor a regularbuild.gradlewith some indicator like "snapshot". This could be used by your Gradle building logic to select subprojects of your workspace (which is a Gradle project).But in the end, you might end up noticing you have groups of modules that could be in other projects and some that are almost never updated, you might put them into their own workspace. There is no harm on doing that.
Another point is making sure you are using parallel building settings for Gradle and your hardware is up to the task. A Gradle daemon for your builds could help too.
There is an infinity set of factors that might help, but your environment is your main guide to tell you what you can do. An example of this is that your Jenkins sys admin could have already installed a global Gradle daemon, and a global Gradle environment where an artifact cache can live for your maven dependencies. They could also have installed a maven server that also acts as a cache for remote dependencies...
In the end, it is too broad to tell you any specific advise. But I will leave you with this: focus on Gradle more than Jenkins. Also, if you can speed up your dependency resolution and download time, that helps a lot in several projects.