Skip to content

Commit df5292c

Browse files
authored
ops(release): finish structure to build app uber-jar for releasing
1 parent 849493d commit df5292c

24 files changed

+310
-148
lines changed

.github/workflows/build-jar.yml

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ on:
66
pull_request:
77
branches:
88
- master
9+
release:
10+
types: [published]
911
workflow_dispatch:
1012

13+
permissions:
14+
contents: write
15+
1116
jobs:
12-
build_client_jar:
13-
name: Build Client JAR
17+
build-desktop-jar:
18+
name: Build Desktop JAR
1419
runs-on: ubuntu-latest
1520
steps:
1621
- name: Checkout repository
@@ -19,16 +24,29 @@ jobs:
1924
- name: Setup environment
2025
uses: ./.github/actions/setup-environment
2126

22-
- name: Build Client JAR
23-
run: mvn -B -f ./client/pom.xml clean package
27+
- name: Build Desktop JAR
28+
run: |
29+
mvn -B -f ./pom.xml clean install
30+
mvn -B -f ./desktop/pom.xml package
2431
25-
- name: Upload Client JAR artifact
32+
- name: Upload Desktop JAR artifact
33+
if: github.event_name != 'release'
2634
uses: actions/upload-artifact@v4
2735
with:
28-
name: client-jar
29-
path: "./client/target/*.jar"
36+
name: desktop-jar
37+
path: |
38+
"./desktop/target/*.jar"
39+
!./desktop/target/original-*.jar
40+
41+
- name: Upload Desktop JAR to GitHub Releases
42+
if: github.event_name == 'release'
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
run: |
46+
find ./desktop/target -maxdepth 1 -type f -name 'original-*.jar' -delete
47+
gh release upload ${{ github.event.release.tag_name }} ./desktop/target/*.jar --clobber
3048
31-
build_server_jar:
49+
build-server-jar:
3250
name: Build Server JAR
3351
runs-on: ubuntu-latest
3452
steps:
@@ -39,10 +57,20 @@ jobs:
3957
uses: ./.github/actions/setup-environment
4058

4159
- name: Build Server JAR
42-
run: mvn -B -f ./server/pom.xml clean package
60+
run: |
61+
mvn -B -f ./server/pom.xml clean package spring-boot:repackage
4362
4463
- name: Upload Server JAR artifact
64+
if: github.event_name != 'release'
4565
uses: actions/upload-artifact@v4
4666
with:
4767
name: server-jar
48-
path: "./server/target/*.jar"
68+
path: |
69+
"./server/target/*.jar"
70+
71+
- name: Upload Server JAR to GitHub Releases
72+
if: github.event_name == 'release'
73+
env:
74+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
75+
run: |
76+
gh release upload ${{ github.event.release.tag_name }} ./server/target/*.jar --clobber

.github/workflows/run-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
workflow_dispatch:
1010

1111
jobs:
12-
test_all:
12+
test-all:
1313
name: Run all tests
1414
runs-on: ubuntu-latest
1515
steps:

client/pom.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77
<parent>
88
<groupId>io.exterminator3618</groupId>
99
<artifactId>common</artifactId>
10-
<version>mainline</version>
10+
<version>0.1.0-dev</version>
1111
<relativePath>../pom.xml</relativePath>
1212
</parent>
1313

1414
<!--<name>Exterminator3618-Client</name>-->
1515
<artifactId>client</artifactId>
16-
<version>0.1.0-dev</version>
17-
<packaging>jar</packaging>
16+
<version>${project.parent.version}</version>
1817

1918
<properties>
2019
<maven.compiler.source>21</maven.compiler.source>

desktop/pom.xml

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
<parent>
77
<groupId>io.exterminator3618</groupId>
88
<artifactId>common</artifactId>
9-
<version>mainline</version>
9+
<version>0.1.0-dev</version>
1010
</parent>
1111

12-
<!--<name>Exterminator3618-DesktopPlatform</name>-->
12+
<!--<name>Exterminator3618-Desktop</name>-->
1313
<artifactId>desktop</artifactId>
14-
<version>mainline</version>
14+
<version>${project.parent.version}</version>
1515
<packaging>jar</packaging>
1616

1717
<properties>
@@ -22,10 +22,6 @@
2222
</properties>
2323

2424
<repositories>
25-
<repository>
26-
<id>github-packages-libgdx-packr</id>
27-
<url>https://maven.pkg.github.com/libgdx/packr</url>
28-
</repository>
2925
<repository>
3026
<id>jitpack.io</id>
3127
<url>https://jitpack.io</url>
@@ -36,8 +32,6 @@
3632
<dependency>
3733
<groupId>io.exterminator3618</groupId>
3834
<artifactId>client</artifactId>
39-
<version>0.1.0-dev</version>
40-
<scope>compile</scope>
4135
</dependency>
4236

4337
<!-- LibGDX Platform -->
@@ -81,16 +75,6 @@
8175
</exclusions>
8276
</dependency>
8377

84-
<!-- Please add the GitHub Personal Access Token with at least read:packages scope to your Maven settings.xml -->
85-
<!-- to get this dependency from GitHub Packages. -->
86-
<!-- https://github.com/libgdx/packr/packages/394128 -->
87-
<!--<dependency>-->
88-
<!-- <groupId>com.badlogicgames.packr</groupId>-->
89-
<!-- <artifactId>packr-all</artifactId>-->
90-
<!-- <version>3.0.0</version>-->
91-
<!-- <optional>true</optional>-->
92-
<!--</dependency>-->
93-
9478
<!-- https://mvnrepository.com/artifact/com.github.Vatuu/discord-rpc -->
9579
<dependency>
9680
<groupId>com.github.Vatuu</groupId>
@@ -99,4 +83,31 @@
9983
</dependency>
10084
</dependencies>
10185

86+
<build>
87+
<plugins>
88+
<plugin>
89+
<groupId>org.apache.maven.plugins</groupId>
90+
<artifactId>maven-shade-plugin</artifactId>
91+
<version>3.6.1</version>
92+
<executions>
93+
<execution>
94+
<phase>package</phase>
95+
<goals>
96+
<goal>shade</goal>
97+
</goals>
98+
<configuration>
99+
<createDependencyReducedPom>false</createDependencyReducedPom>
100+
<transformers>
101+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
102+
<mainClass>io.exterminator3618.desktop.Launcher</mainClass>
103+
</transformer>
104+
</transformers>
105+
</configuration>
106+
</execution>
107+
</executions>
108+
</plugin>
109+
110+
</plugins>
111+
</build>
112+
102113
</project>

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<name>Exterminator3618</name>
88
<groupId>io.exterminator3618</groupId>
99
<artifactId>common</artifactId>
10-
<version>mainline</version>
10+
<version>0.1.0-dev</version>
1111
<packaging>pom</packaging>
1212

1313
<properties>
@@ -54,6 +54,18 @@
5454

5555
<dependencyManagement>
5656
<dependencies>
57+
<!-- local modules -->
58+
<dependency>
59+
<groupId>io.exterminator3618</groupId>
60+
<artifactId>client</artifactId>
61+
<version>${project.version}</version>
62+
</dependency>
63+
<dependency>
64+
<groupId>io.exterminator3618</groupId>
65+
<artifactId>server</artifactId>
66+
<version>${project.version}</version>
67+
</dependency>
68+
5769
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
5870
<dependency>
5971
<groupId>ch.qos.logback</groupId>
@@ -79,6 +91,7 @@
7991
<groupId>org.projectlombok</groupId>
8092
<artifactId>lombok</artifactId>
8193
<version>1.18.42</version>
94+
<scope>provided</scope>
8295
</dependency>
8396
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
8497
<dependency>

server/Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
FROM ubuntu:latest
2+
LABEL authors="Yuuki"
3+
4+
ENTRYPOINT ["java", "-jar", "server.jar"]

server/pom.xml

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@
77
<parent>
88
<groupId>io.exterminator3618</groupId>
99
<artifactId>common</artifactId>
10-
<version>mainline</version>
10+
<version>0.1.0-dev</version>
1111
<relativePath>../pom.xml</relativePath>
1212
</parent>
1313

1414
<!--<name>Exterminator3618-Server</name>-->
1515
<artifactId>server</artifactId>
16-
<version>0.1.0-dev</version>
16+
<version>${project.parent.version}</version>
1717
<packaging>jar</packaging>
1818

1919
<properties>
2020
<maven.compiler.source>21</maven.compiler.source>
2121
<maven.compiler.target>21</maven.compiler.target>
2222
<maven.compiler.release>21</maven.compiler.release>
2323
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
24-
<springboot.version>3.5.6</springboot.version>
24+
<spring-boot.version>3.5.7</spring-boot.version>
2525
</properties>
2626

2727
<dependencies>
@@ -46,17 +46,17 @@
4646
<dependency>
4747
<groupId>org.springframework.boot</groupId>
4848
<artifactId>spring-boot-starter-web</artifactId>
49-
<version>${springboot.version}</version>
49+
<version>${spring-boot.version}</version>
5050
</dependency>
5151
<dependency>
5252
<groupId>org.springframework.boot</groupId>
5353
<artifactId>spring-boot-starter-data-jpa</artifactId>
54-
<version>${springboot.version}</version>
54+
<version>${spring-boot.version}</version>
5555
</dependency>
5656
<dependency>
5757
<groupId>org.springframework.boot</groupId>
5858
<artifactId>spring-boot-starter-data-redis</artifactId>
59-
<version>${springboot.version}</version>
59+
<version>${spring-boot.version}</version>
6060
</dependency>
6161

6262
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
@@ -67,4 +67,36 @@
6767
</dependency>
6868
</dependencies>
6969

70+
<build>
71+
<plugins>
72+
<plugin>
73+
<groupId>org.apache.maven.plugins</groupId>
74+
<artifactId>maven-compiler-plugin</artifactId>
75+
<version>3.14.1</version>
76+
<configuration>
77+
<annotationProcessorPaths>
78+
<path>
79+
<groupId>org.projectlombok</groupId>
80+
<artifactId>lombok</artifactId>
81+
</path>
82+
</annotationProcessorPaths>
83+
</configuration>
84+
</plugin>
85+
<plugin>
86+
<groupId>org.springframework.boot</groupId>
87+
<artifactId>spring-boot-maven-plugin</artifactId>
88+
<version>${spring-boot.version}</version>
89+
<configuration>
90+
<mainClass>io.exterminator3618.server.Server</mainClass>
91+
<excludes>
92+
<exclude>
93+
<groupId>org.projectlombok</groupId>
94+
<artifactId>lombok</artifactId>
95+
</exclude>
96+
</excludes>
97+
</configuration>
98+
</plugin>
99+
</plugins>
100+
</build>
101+
70102
</project>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.exterminator3618.server;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.springframework.boot.SpringApplication;
5+
import org.springframework.boot.autoconfigure.SpringBootApplication;
6+
import org.springframework.cache.annotation.EnableCaching;
7+
8+
@Slf4j
9+
@SpringBootApplication
10+
@EnableCaching
11+
public class Server {
12+
13+
public static void main(String[] args) {
14+
SpringApplication.run(Server.class, args);
15+
}
16+
17+
}

server/src/main/java/io/exterminator3618/server/ServerApplication.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)