Commit ea4c12a8 authored by Jose Luis Osorno's avatar Jose Luis Osorno
Browse files

Archetypes - Change platform archetype build approach

- Build the project using package goal instead of install
- Copy the test dependencies only when IT is executed
- Add the build_start_it_supported task to execution scripts
parent d949a778
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ All the services of the project are now run as docker containers. The run script

 * `build_start`. Build the whole project, recreate the ACS docker image, start the dockerised environment composed by ACS, Share (optional), ASS 
 and PostgreSQL and tail the logs of all the containers.
 * `build_start_it_supported`. Build the whole project including dependencies required for IT execution, recreate the ACS docker image, start the dockerised environment 
 composed by ACS, Share (optional), ASS and PostgreSQL and tail the logs of all the containers.
 * `start`. Start the dockerised environment without building the project and tail the logs of all the containers.
 * `stop`. Stop the dockerised environment.
 * `purge`. Stop the dockerised container and delete all the persistent data (docker volumes).
+47 −53
Original line number Diff line number Diff line
@@ -192,6 +192,44 @@
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-repository-extension</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>target</directory>
                                    <includes>
                                        <include>${build.finalName}.jar</include>
                                    </includes>
                                    <filtering>false</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-repository-tests</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>target</directory>
                                    <includes>
                                        <include>${build.finalName}-tests.jar</include>
                                    </includes>
                                    <filtering>false</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

@@ -200,73 +238,29 @@
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <!-- Copy the repository extension and the dependencies required for execute integration tests -->
                    <!-- Copy the dependencies required for execute integration tests -->
                    <execution>
                        <id>copy-repo-extension</id>
                        <id>collect-test-artifacts</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>copy</goal>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${groupId}</groupId>
                                    <artifactId>${artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                                </artifactItem>
                                <!-- Test dependencies -->
                                <!-- We need these dependencies installed in ACS in order to execute the test remotely making use of the Alfresco RAD module -->
                                <artifactItem>
                                    <groupId>${groupId}</groupId>
                                    <artifactId>${artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <classifier>tests</classifier>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.alfresco.maven</groupId>
                                    <artifactId>alfresco-rad</artifactId>
                                    <version>${alfresco.sdk.version}</version>
                                    <overWrite>false</overWrite>
                            <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>junit</groupId>
                                    <artifactId>junit</artifactId>
                                    <version>4.12</version>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.mockito</groupId>
                                    <artifactId>mockito-all</artifactId>
                                    <version>1.9.5</version>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.httpcomponents</groupId>
                                    <artifactId>httpclient</artifactId>
                                    <version>4.5.2</version>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                            <excludeScope>compile</excludeScope>
                        </configuration>
                    </execution>
                    <!-- Copy other dependencies (JARs or AMPs) declared in the platform module -->
                    <!-- Collect extensions (JARs or AMPs) declared in this module to be deployed to docker -->
                    <execution>
                        <id>copy-third-party-dependencies</id>
                        <phase>pre-integration-test</phase>
                        <id>collect-extensions</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                            <includeScope>runtime</includeScope>
                            <!-- IMPORTANT: if using amp dependencies only, add <includeTypes>amp</includeTypes> -->
                        </configuration>
                    </execution>
                </executions>
+14 −2
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ IF NOT [%M2_HOME%]==[] (
)

IF [%1]==[] (
    echo "Usage: %0 {build_start|start|stop|purge|tail|build_test|test}"
    echo "Usage: %0 {build_start|build_start_it_supported|start|stop|purge|tail|build_test|test}"
    GOTO END
)

@@ -23,6 +23,14 @@ IF %1==build_start (
    CALL :tail
    GOTO END
)
IF %1==build_start_it_supported (
    CALL :down
    CALL :build
    CALL :prepare_test
    CALL :start
    CALL :tail
    GOTO END
)
IF %1==start (
    CALL :start
    CALL :tail
@@ -44,6 +52,7 @@ IF %1==tail (
IF %1==build_test (
    CALL :down
    CALL :build
    CALL :prepare_test
    CALL :start
    CALL :test
    CALL :tail_all
@@ -70,7 +79,7 @@ EXIT /B 0
    )
EXIT /B 0
:build
	call %MVN_EXEC% clean install -DskipTests
	call %MVN_EXEC% clean package
EXIT /B 0
:tail
    docker-compose -f "%COMPOSE_FILE_PATH%" logs -f
@@ -78,6 +87,9 @@ EXIT /B 0
:tail_all
    docker-compose -f "%COMPOSE_FILE_PATH%" logs --tail="all"
EXIT /B 0
:prepare_test
    call %MVN_EXEC% verify -DskipTests=true
EXIT /B 0
:test
    call %MVN_EXEC% verify
EXIT /B 0
+14 −2
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ purge() {
}

build() {
    ${symbol_dollar}MVN_EXEC clean install -DskipTests=true
    ${symbol_dollar}MVN_EXEC clean package
}

tail() {
@@ -40,6 +40,10 @@ tail_all() {
    docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs --tail="all"
}

prepare_test() {
    ${symbol_dollar}MVN_EXEC verify -DskipTests=true
}

test() {
    ${symbol_dollar}MVN_EXEC verify
}
@@ -51,6 +55,13 @@ case "${symbol_dollar}1" in
    start
    tail
    ;;
  build_start_it_supported)
    down
    build
    prepare_test
    start
    tail
    ;;
  start)
    start
    tail
@@ -68,6 +79,7 @@ case "${symbol_dollar}1" in
  build_test)
    down
    build
    prepare_test
    start
    test
    tail_all
@@ -77,5 +89,5 @@ case "${symbol_dollar}1" in
    test
    ;;
  *)
    echo "Usage: ${symbol_dollar}0 {build_start|start|stop|purge|tail|build_test|test}"
    echo "Usage: ${symbol_dollar}0 {build_start|build_start_it_supported|start|stop|purge|tail|build_test|test}"
esac
 No newline at end of file