Skip to content

Commit 4044d6d

Browse files
committed
CI: Add MacOS packaging pipeline
1 parent df949c2 commit 4044d6d

3 files changed

Lines changed: 186 additions & 4 deletions

File tree

.github/workflows/maven-publish.yml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,33 @@ jobs:
6161

6262
- uses: actions/upload-artifact@v4
6363
with:
64-
name: maptracker-win.jar
65-
path: "./jar/maptracker.jar"
64+
name: maptracker.msi
65+
path: "./*.msi"
66+
67+
build-macos:
68+
69+
runs-on: macos-latest
70+
permissions:
71+
contents: read
72+
packages: write
73+
74+
steps:
75+
- uses: actions/checkout@v4
76+
- name: Set up JDK 21
77+
uses: actions/setup-java@v4
78+
with:
79+
java-version: '21'
80+
distribution: 'temurin'
81+
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
82+
settings-path: ${{ github.workspace }} # location for the settings.xml file
83+
84+
- name: Build with Maven
85+
run: mvn -B -X package --file pom-mac.xml
86+
87+
- name: Show Directory Contents
88+
run: ls
6689

6790
- uses: actions/upload-artifact@v4
6891
with:
69-
name: maptracker.msi
70-
path: "./*.msi"
92+
name: maptracker.dmg
93+
path: "./*.dmg"

maptracker.icns

3.58 KB
Binary file not shown.

pom-mac.xml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<project
4+
xmlns="http://maven.apache.org/POM/4.0.0"
5+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
7+
<modelVersion>4.0.0</modelVersion>
8+
9+
<groupId>com.babai.maptracker</groupId>
10+
<artifactId>maptracker</artifactId>
11+
<version>1.0</version>
12+
13+
<name>MapTracker</name>
14+
<url>http://www.github.com/babaissarkar/WesnothMapTracker</url>
15+
<description>
16+
A JavaFX based GUI Map Tracking tool for Battle for Wesnoth.
17+
</description>
18+
19+
<developers>
20+
<developer>
21+
<id>babaissarkar</id>
22+
<name>Subhraman Sarkar</name>
23+
<email>suvrax@gmail.com</email>
24+
<timezone>Asia/Kolkata</timezone>
25+
</developer>
26+
</developers>
27+
28+
<licenses>
29+
<license>
30+
<name>GPL-2-or-later</name>
31+
<url>https://www.gnu.org/licenses/old-licenses/gpl-2.txt</url>
32+
</license>
33+
</licenses>
34+
35+
36+
<properties>
37+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
38+
<maven.compiler.source>21</maven.compiler.source>
39+
<maven.compiler.target>21</maven.compiler.target>
40+
</properties>
41+
42+
<dependencies>
43+
<dependency>
44+
<groupId>io.github.darkxanter</groupId>
45+
<artifactId>webp-imageio</artifactId>
46+
<version>0.3.2</version>
47+
</dependency>
48+
<dependency>
49+
<groupId>org.openjfx</groupId>
50+
<artifactId>javafx-base</artifactId>
51+
<version>23</version>
52+
</dependency>
53+
<dependency>
54+
<groupId>org.openjfx</groupId>
55+
<artifactId>javafx-graphics</artifactId>
56+
<version>23</version>
57+
</dependency>
58+
<dependency>
59+
<groupId>org.openjfx</groupId>
60+
<artifactId>javafx-controls</artifactId>
61+
<version>23</version>
62+
</dependency>
63+
<dependency>
64+
<groupId>org.openjfx</groupId>
65+
<artifactId>javafx-swing</artifactId>
66+
<version>23</version>
67+
</dependency>
68+
</dependencies>
69+
70+
<build>
71+
<plugins>
72+
<plugin>
73+
<groupId>org.apache.maven.plugins</groupId>
74+
<artifactId>maven-shade-plugin</artifactId>
75+
<version>3.5.0</version>
76+
<configuration>
77+
<finalName>${project.artifactId}</finalName>
78+
<outputDirectory>${project.basedir}/jar</outputDirectory>
79+
<shadedArtifactAttached>true</shadedArtifactAttached>
80+
<artifactSet>
81+
<includes>
82+
<include>io.github.darkxanter:webp-imageio</include>
83+
<include>org.openjfx:javafx-base</include>
84+
<include>org.openjfx:javafx-graphics</include>
85+
<include>org.openjfx:javafx-controls</include>
86+
<include>org.openjfx:javafx-swing</include>
87+
</includes>
88+
</artifactSet>
89+
<transformers>
90+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
91+
<mainClass>Main</mainClass>
92+
</transformer>
93+
</transformers>
94+
</configuration>
95+
<executions>
96+
<execution>
97+
<phase>package</phase>
98+
<goals>
99+
<goal>shade</goal>
100+
</goals>
101+
</execution>
102+
</executions>
103+
</plugin>
104+
<plugin>
105+
<groupId>org.codehaus.mojo</groupId>
106+
<artifactId>exec-maven-plugin</artifactId>
107+
<version>3.0.0</version>
108+
<executions>
109+
<execution>
110+
<id>run-jpackage</id>
111+
<phase>package</phase>
112+
<goals>
113+
<goal>exec</goal>
114+
</goals>
115+
</execution>
116+
</executions>
117+
<configuration>
118+
<executable>jpackage</executable>
119+
<arguments>
120+
<argument>--verbose</argument>
121+
<argument>--type</argument>
122+
<argument>dmg</argument>
123+
<argument>--input</argument>
124+
<argument>${project.basedir}/jar</argument>
125+
<argument>--main-jar</argument>
126+
<argument>${project.artifactId}.jar</argument>
127+
<argument>--name</argument>
128+
<argument>${project.name}</argument>
129+
<argument>--app-version</argument>
130+
<argument>${project.version}</argument>
131+
<argument>--main-class</argument>
132+
<argument>Main</argument>
133+
<argument>--icon</argument>
134+
<argument>${project.artifactId}.icns</argument>
135+
<argument>--copyright</argument>
136+
<argument>Subhraman Sarkar</argument>
137+
</arguments>
138+
</configuration>
139+
</plugin>
140+
<plugin>
141+
<groupId>org.apache.maven.plugins</groupId>
142+
<artifactId>maven-checkstyle-plugin</artifactId>
143+
<version>3.2.0</version> <!-- Make sure to use the latest version -->
144+
<executions>
145+
<execution>
146+
<id>checkstyle</id>
147+
<goals>
148+
<goal>check</goal>
149+
</goals>
150+
</execution>
151+
</executions>
152+
<configuration>
153+
<configLocation>checkstyle.xml</configLocation>
154+
<!-- Optional: You can suppress warnings from 3rd-party libraries with excludeFilter properties -->
155+
</configuration>
156+
</plugin>
157+
</plugins>
158+
</build>
159+
</project>

0 commit comments

Comments
 (0)