1
0
mirror of https://github.com/firstBitMarksistskaya/jenkins-lib.git synced 2025-08-25 20:09:25 +02:00

Merge pull request #153 from firstBitMarksistskaya/develop

Sync
This commit is contained in:
Nikita Fedkin
2025-01-27 18:37:45 +01:00
committed by GitHub
5 changed files with 73 additions and 35 deletions

View File

@@ -86,7 +86,10 @@ class Yaxunit implements Serializable, Coverable {
FilePath pathToAllureReport = FileUtils.getFilePath("$env.WORKSPACE/$allureReport")
String allureReportDir = FileUtils.getLocalPath(pathToAllureReport.getParent())
pathToJUnitReport.copyTo(pathToAllureReport)
String pathToJUnitReportString = pathToJUnitReport.getRemote()
if (steps.fileExists(pathToJUnitReportString)) {
pathToJUnitReport.copyTo(pathToAllureReport)
}
steps.stash(YAXUNIT_ALLURE_STASH, "$allureReportDir/**", true)
}

View File

@@ -29,17 +29,20 @@ class FileUtils {
static String getLocalPath(FilePath filePath) {
IStepExecutor steps = ContextRegistry.getContext().getStepExecutor()
String workspacePath = steps.env().WORKSPACE
String fileRemotePath = filePath.getRemote()
def env = steps.env();
// Нормализуем пути: заменяем обратные слэши на прямые
workspacePath = workspacePath.replace('\\', '/')
fileRemotePath = fileRemotePath.replace('\\', '/')
Path workspacePath = new File(env.WORKSPACE).toPath()
Path rawFilePath = new File(filePath.getRemote()).toPath()
// Проверяем, что файл находится внутри рабочей директории
if (!fileRemotePath.startsWith(workspacePath)) {
throw new IllegalArgumentException("File path is not within the workspace directory")
}
return workspacePath.relativize(rawFilePath)
.toString()
.replaceAll('\\\\\\\\', '/')
.replaceAll('\\\\', '/')
.toString()
// Вычисляем относительный путь
return fileRemotePath.substring(workspacePath.length() + 1)
}
static void loadFile(String filePathFrom, def env, String filePathTo) {

View File

@@ -7,7 +7,7 @@ import java.io.IOException;
public class EnvUtils implements EnvironmentAction {
public String NODE_NAME = "node";
public String NODE_NAME = "built-in";
public String WORKSPACE = "ws";
public String BRANCH_NAME = "master";

View File

@@ -0,0 +1,32 @@
package ru.pulsar.jenkins.library.utils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import ru.pulsar.jenkins.library.IStepExecutor;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
class FileUtilsTest {
private final IStepExecutor steps = TestUtils.getMockedStepExecutor();
@BeforeEach
void setUp() {
TestUtils.setupMockedContext(steps);
}
@Test
void testGetLocalPath() {
// given
var env = new EnvUtils();
when(steps.env()).thenReturn(env);
var filePath = FileUtils.getFilePath(env.WORKSPACE + "/src/cf");
// when
String localPath = FileUtils.getLocalPath(filePath);
// then
assertThat(localPath).isEqualTo("src/cf");
}
}