diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2430ca680aedd6ed53bf48d082f9f787e4225acf..5c4dfe2f408221efa24fae6513454a859a84693a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,21 @@ -image: maven:latest +image: maven:3.9.6-eclipse-temurin-22 variables: # This will supress any download for dependencies and plugins or upload messages which would clutter the console log. # `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work. MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true" MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version" - # -DinstallAtEnd=true -DdeployAtEnd=true" -# Cache downloaded dependencies and plugins between builds. -# To keep cache across branches add '' cache: key: "$CI_JOB_NAME" paths: - .m2/repository +stages: + - build + - test + - deploy + build: stage: build script: @@ -23,3 +25,10 @@ test: stage: test script: - mvn test + +deploy: + stage: deploy + rules: + - if: $CI_COMMIT_TAG + script: + - mvn deploy -s ci_settings.xml diff --git a/ci_settings.xml b/ci_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..59c8c271cb4549ebcad535c1c9e1907839ba440f --- /dev/null +++ b/ci_settings.xml @@ -0,0 +1,16 @@ +<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"> + <servers> + <server> + <id>gitlab-maven</id> + <configuration> + <httpHeaders> + <property> + <name>Job-Token</name> + <value>${env.CI_JOB_TOKEN}</value> + </property> + </httpHeaders> + </configuration> + </server> + </servers> +</settings> diff --git a/hotreload-demo/pom.xml b/hotreload-demo/pom.xml index 561904ffffd26a742bc17e039b3d3c8392856441..0afda9b8c07138282f55325f9672292abcf263a3 100644 --- a/hotreload-demo/pom.xml +++ b/hotreload-demo/pom.xml @@ -1,7 +1,7 @@ <project> <modelVersion>4.0.0</modelVersion> <artifactId>hotreload-demo</artifactId> - <version>2.0.1-SNAPSHOT</version> + <version>2.0.2</version> <name>Hot reloader demo</name> <url>https://gitlab.utu.fi/tech/education/gui/hotreload</url> <packaging>jar</packaging> @@ -9,12 +9,12 @@ <parent> <groupId>fi.utu.tech</groupId> <artifactId>hotreload-meta</artifactId> - <version>2.0.1</version> + <version>2.0.2</version> </parent> <properties> <project.mainclass>fi.utu.tech.demo.Main</project.mainclass> - <hotreload.version>2.0.1</hotreload.version> + <hotreload.version>2.0.2</hotreload.version> </properties> <dependencies> diff --git a/hotreload-demo/src/main/java/fi/utu/tech/demo/Main.java b/hotreload-demo/src/main/java/fi/utu/tech/demo/Main.java deleted file mode 100644 index c90aa11dd7a9f429d7a607ecbe74f46693e5fced..0000000000000000000000000000000000000000 --- a/hotreload-demo/src/main/java/fi/utu/tech/demo/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package fi.utu.tech.demo; - -public class Main { - public static void main(String[] args) { - MainApp.launch(MainApp.class, args); - } -} diff --git a/hotreload-demo/src/main/java/fi/utu/tech/demo/MainApp.java b/hotreload-demo/src/main/java/fi/utu/tech/demo/MainApp.java index 5e6ebe2d7dd121d6ead70f3883185a4032caac0b..236a13b9755119f6644a4658ec77a9f8254ac1f7 100644 --- a/hotreload-demo/src/main/java/fi/utu/tech/demo/MainApp.java +++ b/hotreload-demo/src/main/java/fi/utu/tech/demo/MainApp.java @@ -69,4 +69,8 @@ public class MainApp extends Application implements ReloadableApplication { // should work even without hot reloading setScene(stage); } + + public static void main(String[] args) { + MainApp.launch(MainApp.class, args); + } } diff --git a/hotreload/pom.xml b/hotreload/pom.xml index 16c2fa14569cec20c83ec1974f54ad560fa3b224..84cb4416bf6301a87da9c2bf4cc2c2badd18d3ca 100644 --- a/hotreload/pom.xml +++ b/hotreload/pom.xml @@ -1,7 +1,7 @@ <project> <modelVersion>4.0.0</modelVersion> <artifactId>hotreload</artifactId> - <version>2.0.1</version> + <version>2.0.2</version> <name>Hot reloader</name> <url>https://gitlab.utu.fi/tech/education/gui/hotreload</url> <packaging>jar</packaging> @@ -9,6 +9,6 @@ <parent> <groupId>fi.utu.tech</groupId> <artifactId>hotreload-meta</artifactId> - <version>2.0.1</version> + <version>2.0.2</version> </parent> </project> diff --git a/pom.xml b/pom.xml index de4cb245fdc222b01355d691e14ccc0a8f487094..140f2ae4573b08499eb57586b51e2c8a5ed94db2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,14 +1,10 @@ -<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"> +<project> <modelVersion>4.0.0</modelVersion> - <groupId>fi.utu.tech</groupId> <artifactId>hotreload-meta</artifactId> - <version>2.0.1</version> - + <version>2.0.2</version> <name>Hot reload meta</name> <url>https://gitlab.utu.fi/tech/education/gui/hotreload</url> - <packaging>pom</packaging> <modules> @@ -17,32 +13,27 @@ </modules> <properties> - <project.mainclass>fi.utu.tech.demo.Main</project.mainclass> + <project.mainclass>fi.utu.tech.demo.MainApp</project.mainclass> <project.mainmodule>fi.utu.tech.demo</project.mainmodule> + <project.launcher>hotreload</project.launcher> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - - <jdk.version>11</jdk.version> - <jqwik.version>1.5.1</jqwik.version> - <junit.version>5.7.1</junit.version> - <junitplatform.version>1.7.1</junitplatform.version> - <javafx.version>16</javafx.version> - <classloader.version>1.2.0</classloader.version> + <jdk.version>17</jdk.version> + <junit.version>5.10.2</junit.version> + <junitplatform.version>1.10.2</junitplatform.version> + <javafx.version>22</javafx.version> + <classloader.version>1.2.1</classloader.version> </properties> <repositories> <repository> - <snapshots> - <enabled>false</enabled> - </snapshots> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2</url> </repository> - + <!-- classloader --> <repository> - <id>ftdev</id> - <name>ftdev</name> - <url>https://ftdev.utu.fi/maven2</url> + <id>gitlab-classloader</id> + <url>https://gitlab.utu.fi/api/v4/projects/4566/packages/maven</url> </repository> </repositories> @@ -71,14 +62,6 @@ <version>${junitplatform.version}</version> <scope>test</scope> </dependency> - <dependency> - <groupId>net.jqwik</groupId> - <artifactId>jqwik</artifactId> - <version>${jqwik.version}</version> - <scope>test</scope> - </dependency> - - <!-- JavaFX (remove if not needed to speed up dep downloads)--> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-base</artifactId> @@ -94,8 +77,6 @@ <artifactId>javafx-graphics</artifactId> <version>${javafx.version}</version> </dependency> - - <!-- UTU libraries --> <dependency> <groupId>fi.utu.tech</groupId> <artifactId>distributed-classloader</artifactId> @@ -105,11 +86,10 @@ <build> <plugins> - <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> - <version>0.0.6</version> + <version>0.0.8</version> <configuration> <mainClass>${project.mainmodule}/${project.mainclass}</mainClass> <stripDebug>true</stripDebug> @@ -119,25 +99,11 @@ <launcher>${project.launcher}</launcher> </configuration> </plugin> - - <!-- Make the packaged jar executable --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> - <configuration> - <!-- DO NOT include log4j.properties file in your Jar --> - <excludes> - <exclude>**/log4j.properties</exclude> - </excludes> - <archive> - <manifest> - </manifest> - </archive> - </configuration> </plugin> - - <!-- JDK source/target versions --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> @@ -147,7 +113,6 @@ <target>${jdk.version}</target> </configuration> </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> @@ -161,121 +126,32 @@ </execution> </executions> </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>3.2.0</version> - <executions> - <execution> - <id>attach-javadocs</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - <configuration> - <tags> - <tag> - <name>toDo</name> - <placement>a</placement> - <head>To do:</head> - </tag> - <tag> - <name>classInvariant</name> - <placement>t</placement> - <head>Class invariant:</head> - </tag> - <tag> - <name>classInvariantProtected</name> - <placement>t</placement> - <head>Protected class invariant:</head> - </tag> - <tag> - <name>classInvariantPrivate</name> - <placement>t</placement> - <head>Private class invariant:</head> - </tag> - <tag> - <name>abstractionFunction</name> - <placement>t</placement> - <head>Abstraction function:</head> - </tag> - <tag> - <name>pre</name> - <placement>cm</placement> - <head>Precondition:</head> - </tag> - <tag> - <name>post</name> - <placement>cm</placement> - <head>Postcondition:</head> - </tag> - <tag> - <name>postProtected</name> - <placement>cm</placement> - <head>Protected postcondition:</head> - </tag> - <tag> - <name>postPrivate</name> - <placement>cm</placement> - <head>Private postcondition:</head> - </tag> - <tag> - <name>time</name> - <placement>cmf</placement> - <head>Time complexity:</head> - </tag> - <tag> - <name>space</name> - <placement>cmf</placement> - <head>Space complexity:</head> - </tag> - <tag> - <name>correspondence</name> - <placement>a</placement> - <head>Correspondence:</head> - </tag> - <tag> - <name>download</name> - <placement>a</placement> - <head>Download:</head> - </tag> - </tags> - <show>protected</show> - <failOnError>false</failOnError> - <sourceFileExcludes> - <sourceFileExclude>**/module-info.java</sourceFileExclude> - </sourceFileExcludes> - </configuration> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.3.0</version> </plugin> - - <!-- JUnit & JQwik test integration --> <plugin> - <groupId>de.sormuras.junit</groupId> - <artifactId>junit-platform-maven-plugin</artifactId> - <version>1.1.0</version> - <extensions>true</extensions> - <configuration> - <executor>JAVA</executor> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <version>3.3.0</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + <version>3.3.0</version> </plugin> - </plugins> - <extensions> - <!-- Enables the use of SSH for deployments --> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>3.4.1</version> - </extension> - </extensions> </build> + <distributionManagement> <repository> - <id>ftdev</id> - <name>UTU tech ftdev repository</name> - <url>scp://localhost:2222/var/www/maven2</url> + <id>gitlab-maven</id> + <url>${env.CI_API_V4_URL}/projects/${env.CI_PROJECT_ID}/packages/maven</url> </repository> + <snapshotRepository> + <id>gitlab-maven</id> + <url>${env.CI_API_V4_URL}/projects/${env.CI_PROJECT_ID}/packages/maven</url> + </snapshotRepository> </distributionManagement> </project>