Как удалить старую подпапку из целевой папки maven на jenkins?

Я использую гатлинг в отдельном проекте maven на Jenkins. Gatling создает отчеты в целевой папке на jenkins. Как удалить сгенерированные отчеты кроме последних 15?

Я пытаюсь сделать это с помощью плагина maven-invoker-plugin и скрипта beanshell. Есть ли способ лучше? Плагин maven-invoker не работает. У меня ошибка:

[INFO] --- maven-inviker-plugin:1.6:integration-test (integration-test) @ gatling-loadtests ---
[INFO] No project were selected for execution

Вот pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>vf.gatling.loadtests</groupId>
    <artifactId>gatling-loadtests</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <name>gatling-loadtests</name>
    <description>Demo project for Gatling loadtests</description>


    <properties>
        <source.property>1.8</source.property>
        <target.property>1.8</target.property>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <gatling.version>2.2.3</gatling.version>
        <gatling-plugin.version>2.2.1</gatling-plugin.version>
        <scala-maven-plugin.version>3.2.2</scala-maven-plugin.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>io.gatling.highcharts</groupId>
            <artifactId>gatling-charts-highcharts</artifactId>
            <version>${gatling.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>io.gatling</groupId>
                <artifactId>gatling-maven-plugin</artifactId>
                <version>${gatling-plugin.version}</version>
                <configuration>
                    <runMultipleSimulations>false</runMultipleSimulations>
                    <includes>
                        <param>${simulation}</param>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Plugin for Post-Build-Script -->
            <plugin>
                <artifactId>maven-invoker-plugin</artifactId>
                <version>1.6</version>
                <configuration>
                    <debug>true</debug>
                    <projectsDirectory>test/beanshell</projectsDirectory>
                    <postBuildHookScript>postbuild_delete_old_reports.bsh</postBuildHookScript>
                </configuration>
                <executions>
                    <execution>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Это структура проекта

./
+- pom.xml
+- src/
   +- test/
      +- beanshell/
      |  +- postbuild_delete_old_reports.bsh
      +- resources/
         ...            
      +- scala/
         ...
+- target/
   +- gatling/
      +- loadscenario-1479475762095/
         +- js/
         +- style/
         +- index.html
         ...
      +- loadscenario-1479475768887/
      +- loadscenario-1479477505729/
      +- loadscenario-1479479138171/
      +- loadscenario-1479479173198/
   +- genarated-test-sources/
   +- invoker-reports/
   +- maven-archiver/
   +- test-classes/
      ...

person Hans Holzbart    schedule 13.12.2016    source источник
comment
Можете ли вы показать структуру этих 15 файлов? Как они называются? Пожалуйста, опубликуйте полный путь и схему именования   -  person Tunaki    schedule 13.12.2016
comment
@Tunaki это папки loadcenario-....   -  person Hans Holzbart    schedule 13.12.2016


Ответы (3)


Лучше и проще всего использовать следующий плагин jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin

https://groups.google.com/d/msg/gatling/z9slKmdw9-0/ZO01W55ACwAJ

person Hans Holzbart    schedule 14.12.2016

Вы можете просто использовать опцию удаления рабочего пространства Jenkins, а затем каждый раз, когда вы создаете приложение, оно будет удалять рабочее пространство предыдущего запуска.

person Pritam Banerjee    schedule 15.12.2016
comment
Я не могу удалить всю рабочую область, потому что мне нужны результаты последних 15 отчетов Гатлинга. Они находятся в рабочей области. - person Hans Holzbart; 28.02.2017

Я бы сохранил результаты в отдельном каталоге и использовал хук after, предоставленный Gatling, для выполнения этого действия. Как правило, вы также не должны хранить важные вещи в целевой папке.

person user666    schedule 19.12.2016