Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0522a5d
Merge pull request #5 from jenkinsci/master
devalex88 Jan 18, 2019
ce3eb99
Update README.md
HieuBui419 Feb 15, 2022
78f740a
Merge pull request #11 from katalon-studio/STUDIO-1555
duyluonganh Feb 21, 2022
9640946
merge katalon-plugin into jenkins-plugin
linhtnlK May 29, 2023
23c29a7
Update libraries
Minh-Chien May 29, 2023
1d9f822
Move plugin description to jelly file
Minh-Chien May 29, 2023
209a5fb
Update README
Minh-Chien May 29, 2023
c5384b2
Update version
Minh-Chien May 29, 2023
907e0dd
Merge pull request #12 from katalon-studio/STUDIO-3653
huyennguyen-katalon May 31, 2023
614fe0d
[STUDIO-5046] Bump up jenkins core to 2.448 (#14)
nghiadhd-2702 Mar 20, 2024
0eedc4c
Update URL to https://github.com/katalon-studio/katalon-studio-jenkin…
nghiadhd-2702 Mar 22, 2024
9df6a05
Update libraries
Minh-Chien May 29, 2023
8158929
Move plugin description to jelly file
Minh-Chien May 29, 2023
410af2a
Update README
Minh-Chien May 29, 2023
5b2158d
Update version
Minh-Chien May 29, 2023
2423361
[STUDIO-5046] Bump up jenkins core to 2.448 (#14)
nghiadhd-2702 Mar 20, 2024
9455f86
Update URL to https://github.com/katalon-studio/katalon-studio-jenkin…
nghiadhd-2702 Mar 22, 2024
4a36a69
Revert "Update URL to https://github.com/katalon-studio/katalon-studi…
nghiadhd-2702 Mar 28, 2024
567c712
Merge branch 'master' into Rebase-with-jenkinsci-master
nghiadhd-2702 Apr 5, 2024
9c64417
Merge pull request #16 from katalon-studio/Rebase-with-jenkinsci-master
nghiadhd-2702 Apr 5, 2024
51bba59
Switch to use JDK 17 (#18)
nghiadhd-2702 Apr 8, 2024
fd02fe9
Switch to use JDK 17 on JenkinsCI (#19)
nghiadhd-2702 Apr 8, 2024
2b8f3c2
[STUDIO-7889] Official Support Request for Plugin with stop Implement…
thoaitran-katalon Jul 15, 2025
a5fb44a
[STUDIO-7889] Increase the version from 1.0.37 to 1.0.38 (#21)
thoaitran-katalon Jul 15, 2025
b068a21
[STUDIO-7889] [KSR] Official Support Request for Plugin with stop Imp…
thoaitran-katalon Jul 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/cd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,11 @@ jobs:
uses: actions/checkout@v2.4.0
with:
fetch-depth: 0
- name: Set up JDK 8
- name: Set up JDK 17
uses: actions/setup-java@v2.5.0
with:
distribution: temurin
java-version: 8
java-version: 17
- name: Check Secrets
env:
DEBUG_USERNAME: ${{ secrets.MAVEN_USERNAME }}
Expand Down
7 changes: 6 additions & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
buildPlugin()
buildPlugin(
useContainerAgent: true, // Set to `false` if you need to use Docker for containerized tests
configurations: [
[platform: 'linux', jdk: 17],
]
)
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@ To learn more about using this plugin, you can refer to the following documents:

## Development

Use `mvn` version from `3.8.1`.

Use the command `mvn clean hpi:run -Djetty.port=8090` to debug the plugin.

See the instructions at https://wiki.jenkins.io/display/JENKINS/Plugin+tutorial.

### Requisition

Jenkins: 2.448

## Companion products

### Katalon TestOps
Expand Down
23 changes: 10 additions & 13 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,28 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.56</version>
<version>4.79</version>
<relativePath />
</parent>

<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>katalon</artifactId>
<version>1.0.34</version>
<version>1.0.38</version>
<packaging>hpi</packaging>
<name>Katalon Plugin</name>
<description>Execute Katalon Studio in Jenkins</description>
<url>https://github.com/jenkinsci/katalon-plugin</url>
<url>https://github.com/katalon-studio/katalon-studio-jenkins-plugin</url>

<properties>
<!-- Baseline Jenkins version you use to build the plugin. Users must have this version or newer to run. -->
<jenkins.version>1.625.3</jenkins.version>
<java.level>8</java.level>
<jenkins.version>2.448</jenkins.version>
<java.level>17</java.level>
<!-- Other properties you may want to use:
~ java.level: set to 6 if your jenkins.version <= 1.611 ~ jenkins-test-harness.version: Jenkins Test Harness version you use to test the plugin. For Jenkins version >= 1.580.1 use JTH 2.0 or higher.
~ hpi-plugin.version: The HPI Maven Plugin version used by the plugin..
~ stapler-plugin.version: The Stapler Maven plugin version required by the plugin.
-->
<junit.plugin.version>1.20</junit.plugin.version>
<jackson.version>2.13.13</jackson.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
<utils.version>1.0.17</utils.version>
<utils.version>1.0.18</utils.version>
<httpclient.version>4.5.13</httpclient.version>
</properties>

Expand All @@ -49,9 +46,9 @@

<developers>
<developer>
Comment thread
nghiadhd-2702 marked this conversation as resolved.
<id>devalex88</id>
<name>Alex</name>
<email>dev.alex.88@gmail.com</email>
<id>thvu-katalon</id>
<name>Vu</name>
<email>vu.than@katalon.com</email>
</developer>
</developers>

Expand All @@ -60,7 +57,7 @@
<developerConnection>scm:git:git@github.com:jenkinsci/${project.artifactId}-plugin.git</developerConnection>
<url>https://github.com/jenkinsci/${project.artifactId}-plugin</url>
<tag>HEAD</tag>
</scm>
</scm>

<repositories>
<repository>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,14 @@ public void setXvfbConfiguration(String xvfbConfiguration) {

@Override
public boolean perform(AbstractBuild<?, ?> abstractBuild, Launcher launcher, BuildListener buildListener)
throws InterruptedException, IOException {
throws InterruptedException, IOException {

// Check for interruption before starting
if (isInterrupted()) {
buildListener.getLogger().println("Build was cancelled before Katalon execution started");
throw new InterruptedException("Build was cancelled");
}

FilePath workspace = abstractBuild.getWorkspace();
EnvVars buildEnvironment = abstractBuild.getEnvironment(buildListener);
return doPerform(workspace, buildEnvironment, launcher, buildListener);
Expand All @@ -94,24 +101,37 @@ public boolean perform(AbstractBuild<?, ?> abstractBuild, Launcher launcher, Bui
@Override
public void perform(@Nonnull Run<?, ?> run, @Nonnull FilePath filePath, @Nonnull Launcher launcher,
@Nonnull TaskListener taskListener)
throws InterruptedException, IOException {
throws InterruptedException, IOException {

// Check for interruption before starting
if (isInterrupted()) {
taskListener.getLogger().println("Build was cancelled before Katalon execution started");
throw new InterruptedException("Build was cancelled");
}

EnvVars buildEnvironment = run.getEnvironment(taskListener);
doPerform(filePath, buildEnvironment, launcher, taskListener);
}

private boolean doPerform(FilePath workspace, EnvVars buildEnvironment,
Launcher launcher, TaskListener taskListener)
throws IOException, InterruptedException {
return ExecuteKatalonStudioHelper.executeKatalon(
workspace,
buildEnvironment,
launcher,
taskListener,
version,
location,
executeArgs,
x11Display,
xvfbConfiguration);
throws IOException, InterruptedException {

try {
return ExecuteKatalonStudioHelper.executeKatalon(
workspace,
buildEnvironment,
launcher,
taskListener,
version,
location,
executeArgs,
x11Display,
xvfbConfiguration);
} catch (InterruptedException e) {
taskListener.getLogger().println("Katalon execution was interrupted due to build cancellation");
throw e; // Re-throw to ensure proper build status
}
}

@Symbol("executeKatalon")
Expand All @@ -133,4 +153,8 @@ public boolean configure(StaplerRequest req, JSONObject formData) throws FormExc
return super.configure(req, formData);
}
}

private static boolean isInterrupted() {
return Thread.currentThread().isInterrupted();
}
}
Loading