Skip to content

Commit e6b6ea4

Browse files
author
mrhunsaker
committed
Fixed docs and other functions
1 parent 0e05140 commit e6b6ea4

41 files changed

Lines changed: 12249 additions & 8670 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.factorypath

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<factorypath>
22
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-controls/21.0.2/javafx-controls-21.0.2.jar" enabled="true" runInBatchMode="false"/>
3-
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-controls/21.0.2/javafx-controls-21.0.2-linux.jar" enabled="true" runInBatchMode="false"/>
3+
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-controls/21.0.2/javafx-controls-21.0.2-win.jar" enabled="true" runInBatchMode="false"/>
44
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-graphics/21.0.2/javafx-graphics-21.0.2.jar" enabled="true" runInBatchMode="false"/>
5-
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-graphics/21.0.2/javafx-graphics-21.0.2-linux.jar" enabled="true" runInBatchMode="false"/>
5+
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-graphics/21.0.2/javafx-graphics-21.0.2-win.jar" enabled="true" runInBatchMode="false"/>
66
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-base/21.0.2/javafx-base-21.0.2.jar" enabled="true" runInBatchMode="false"/>
7-
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-base/21.0.2/javafx-base-21.0.2-linux.jar" enabled="true" runInBatchMode="false"/>
7+
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-base/21.0.2/javafx-base-21.0.2-win.jar" enabled="true" runInBatchMode="false"/>
88
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-fxml/21.0.2/javafx-fxml-21.0.2.jar" enabled="true" runInBatchMode="false"/>
9-
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-fxml/21.0.2/javafx-fxml-21.0.2-linux.jar" enabled="true" runInBatchMode="false"/>
9+
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-fxml/21.0.2/javafx-fxml-21.0.2-win.jar" enabled="true" runInBatchMode="false"/>
1010
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-swing/21.0.2/javafx-swing-21.0.2.jar" enabled="true" runInBatchMode="false"/>
11-
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-swing/21.0.2/javafx-swing-21.0.2-linux.jar" enabled="true" runInBatchMode="false"/>
11+
<factorypathentry kind="VARJAR" id="M2_REPO/org/openjfx/javafx-swing/21.0.2/javafx-swing-21.0.2-win.jar" enabled="true" runInBatchMode="false"/>
1212
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar" enabled="true" runInBatchMode="false"/>
1313
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-csv/1.10.0/commons-csv-1.10.0.jar" enabled="true" runInBatchMode="false"/>
1414
<factorypathentry kind="VARJAR" id="M2_REPO/com/twelvemonkeys/imageio/imageio-core/3.10.1/imageio-core-3.10.1.jar" enabled="true" runInBatchMode="false"/>
Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
name: Package Multi-arch Runtimes and Installers
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
env:
9+
OUT_DIR: target/generated_builds
10+
11+
jobs:
12+
build-runtimes:
13+
name: Build runtime images (multi-arch)
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
arch: [amd64, arm64]
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v3
22+
23+
- name: Set up QEMU for multi-arch
24+
uses: docker/setup-qemu-action@v1
25+
26+
- name: Set up Docker Buildx
27+
uses: docker/setup-buildx-action@v2
28+
29+
- name: Build runtime inside container (per-arch)
30+
env:
31+
PLATFORM: linux/${{ matrix.arch }}
32+
ARCH: ${{ matrix.arch }}
33+
run: |
34+
mkdir -p ${{ env.OUT_DIR }}
35+
chmod +x scripts/ci/build_runtime_in_container.sh || true
36+
docker run --rm --platform=${{ env.PLATFORM }} \
37+
-v "${{ github.workspace }}:/work" -w /work \
38+
eclipse-temurin:17-jdk bash -c "./scripts/ci/build_runtime_in_container.sh ${{ env.ARCH }}"
39+
40+
- name: Upload runtime artifact
41+
uses: actions/upload-artifact@v3
42+
with:
43+
name: runtime-${{ matrix.arch }}
44+
path: ${{ env.OUT_DIR }}/runtime-${{ matrix.arch }}.zip
45+
46+
package-linux:
47+
name: Package Linux installers (per-arch)
48+
needs: build-runtimes
49+
runs-on: ubuntu-latest
50+
strategy:
51+
matrix:
52+
arch: [amd64, arm64]
53+
54+
steps:
55+
- name: Checkout
56+
uses: actions/checkout@v3
57+
58+
- name: Download runtime artifact
59+
uses: actions/download-artifact@v2
60+
with:
61+
name: runtime-${{ matrix.arch }}
62+
path: ${{ env.OUT_DIR }}
63+
64+
- name: Run packaging inside container (per-arch)
65+
run: |
66+
chmod +x scripts/generate-deb.sh || true
67+
chmod +x scripts/generate-rpm.sh || true
68+
chmod +x scripts/generate-appimage.sh || true
69+
chmod +x scripts/generate-snap.sh || true
70+
docker run --rm --platform=linux/${{ matrix.arch }} \
71+
-v "${{ github.workspace }}:/work" -w /work \
72+
eclipse-temurin:17-jdk bash -c "./scripts/generate-deb.sh || true && ./scripts/generate-rpm.sh || true && ./scripts/generate-appimage.sh || true && ./scripts/generate-snap.sh || true"
73+
74+
- name: List generated files
75+
run: |
76+
echo "Generated files in ${{ env.OUT_DIR }}:"
77+
ls -la ${{ env.OUT_DIR }} || true
78+
79+
- name: Upload Debian packages (per-arch)
80+
uses: actions/upload-artifact@v3
81+
with:
82+
name: installers-deb-${{ matrix.arch }}
83+
path: |
84+
${{ env.OUT_DIR }}/**/*.deb
85+
${{ env.OUT_DIR }}/*.deb
86+
87+
- name: Upload RPM packages (per-arch)
88+
uses: actions/upload-artifact@v3
89+
with:
90+
name: installers-rpm-${{ matrix.arch }}
91+
path: |
92+
${{ env.OUT_DIR }}/**/*.rpm
93+
${{ env.OUT_DIR }}/*.rpm
94+
95+
- name: Upload AppImage files (per-arch)
96+
uses: actions/upload-artifact@v3
97+
with:
98+
name: installers-appimage-${{ matrix.arch }}
99+
path: |
100+
${{ env.OUT_DIR }}/**/*.AppImage
101+
${{ env.OUT_DIR }}/*.AppImage
102+
103+
- name: Upload Snap packages (per-arch)
104+
uses: actions/upload-artifact@v3
105+
with:
106+
name: installers-snap-${{ matrix.arch }}
107+
path: |
108+
${{ env.OUT_DIR }}/**/*.snap
109+
${{ env.OUT_DIR }}/*.snap
110+
111+
package-windows-x64:
112+
name: Package Windows MSI (x64)
113+
needs: build-runtimes
114+
runs-on: windows-2022
115+
if: always()
116+
steps:
117+
- name: Checkout
118+
uses: actions/checkout@v3
119+
120+
- name: Download x64 runtime artifact
121+
uses: actions/download-artifact@v2
122+
with:
123+
name: runtime-amd64
124+
path: ${{ env.OUT_DIR }}
125+
126+
- name: Note about MSIs
127+
run: |
128+
Write-Host "This job demonstrates using a runtime image for packaging on Windows runners."
129+
Write-Host "Producing MSI installers on Windows requires WiX Toolset and is best run on native Windows toolchains."
130+
131+
- name: Run MSI packaging script (if present)
132+
if: always()
133+
shell: powershell
134+
run: |
135+
if (Test-Path scripts/generate-msi.ps1) {
136+
Write-Host 'Invoking scripts/generate-msi.ps1'
137+
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/generate-msi.ps1 -RuntimeImageX64 "${{ env.OUT_DIR }}/runtime-amd64" -RuntimeImageArm64 "${{ env.OUT_DIR }}/runtime-arm64" || Write-Host 'MSI script finished or failed'
138+
} else {
139+
Write-Host 'No MSI script to run'
140+
}
141+
142+
- name: List generated files
143+
shell: powershell
144+
run: |
145+
Write-Host 'Generated files in target/generated_builds:'
146+
Get-ChildItem -Path target\generated_builds -Recurse -Force || Write-Host 'No files found'
147+
148+
- name: Upload Windows installers
149+
uses: actions/upload-artifact@v3
150+
with:
151+
name: installers-windows-x64
152+
path: |
153+
${{ env.OUT_DIR }}/*.msi
154+
${{ env.OUT_DIR }}/**/*.msi
155+
156+
sign-and-release:
157+
name: Sign artifacts and create GitHub Release
158+
needs: [package-linux, package-windows-x64]
159+
runs-on: ubuntu-latest
160+
161+
steps:
162+
- name: Checkout
163+
uses: actions/checkout@v3
164+
165+
- name: Create output dir
166+
run: mkdir -p release_files
167+
168+
- name: Download per-target artifacts (amd64/arm64)
169+
uses: actions/download-artifact@v2
170+
with:
171+
name: installers-deb-amd64
172+
path: release_files
173+
continue-on-error: true
174+
175+
- name: Download installers-deb-arm64
176+
uses: actions/download-artifact@v2
177+
with:
178+
name: installers-deb-arm64
179+
path: release_files
180+
continue-on-error: true
181+
182+
- name: Download installers-rpm-amd64
183+
uses: actions/download-artifact@v2
184+
with:
185+
name: installers-rpm-amd64
186+
path: release_files
187+
continue-on-error: true
188+
189+
- name: Download installers-rpm-arm64
190+
uses: actions/download-artifact@v2
191+
with:
192+
name: installers-rpm-arm64
193+
path: release_files
194+
continue-on-error: true
195+
196+
- name: Download installers-appimage-amd64
197+
uses: actions/download-artifact@v2
198+
with:
199+
name: installers-appimage-amd64
200+
path: release_files
201+
continue-on-error: true
202+
203+
- name: Download installers-appimage-arm64
204+
uses: actions/download-artifact@v2
205+
with:
206+
name: installers-appimage-arm64
207+
path: release_files
208+
continue-on-error: true
209+
210+
- name: Download installers-snap-amd64
211+
uses: actions/download-artifact@v2
212+
with:
213+
name: installers-snap-amd64
214+
path: release_files
215+
continue-on-error: true
216+
217+
- name: Download installers-snap-arm64
218+
uses: actions/download-artifact@v2
219+
with:
220+
name: installers-snap-arm64
221+
path: release_files
222+
continue-on-error: true
223+
224+
- name: Download Windows installers
225+
uses: actions/download-artifact@v2
226+
with:
227+
name: installers-windows-x64
228+
path: release_files
229+
continue-on-error: true
230+
231+
- name: List release files
232+
run: ls -la release_files || true
233+
234+
- name: Import GPG key (if provided)
235+
if: ${{ secrets.GPG_PRIVATE_KEY }}
236+
env:
237+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
238+
run: |
239+
echo "$GPG_PRIVATE_KEY" | gpg --batch --import || true
240+
241+
- name: Sign release files with GPG (if key provided)
242+
if: ${{ secrets.GPG_PRIVATE_KEY }}
243+
run: |
244+
for f in release_files/*; do
245+
if [ -f "$f" ]; then
246+
gpg --batch --yes --armor --detach-sign -o "$f.asc" "$f" || true
247+
fi
248+
done
249+
250+
- name: Create GitHub Release
251+
id: create_release
252+
uses: actions/create-release@v1
253+
with:
254+
tag_name: artifacts-${{ github.run_number }}
255+
release_name: Automated artifacts #${{ github.run_number }}
256+
body: "Automated build artifacts produced by CI"
257+
draft: false
258+
prerelease: false
259+
260+
- name: Upload each release asset individually
261+
env:
262+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
263+
UPLOAD_URL: ${{ steps.create_release.outputs.upload_url }}
264+
run: |
265+
set -e
266+
# strip the templated part '{?name,label}' from the upload_url
267+
base_url="${UPLOAD_URL%{*}"
268+
echo "Uploading files from release_files to $base_url"
269+
for f in release_files/*; do
270+
if [ -f "$f" ]; then
271+
name=$(basename "$f")
272+
echo "Uploading $name"
273+
curl -s -X POST \
274+
-H "Authorization: token ${GITHUB_TOKEN}" \
275+
-H "Content-Type: application/octet-stream" \
276+
--data-binary @"$f" "${base_url}?name=${name}"
277+
fi
278+
done
279+
280+
281+
# Notes:
282+
# - This workflow is an example template demonstrating per-arch runtime builds using Docker+QEMU
283+
# and simple packaging steps. You will likely need to customize the container image, jlink
284+
# invocation, and packaging scripts to match your project's modules and packaging requirements.
285+
# - Building Windows ARM MSIs in CI is typically harder because the WiX Toolset and proper
286+
# Windows-arm64 environment are required. Consider running a Windows-arm64 self-hosted runner
287+
# or performing cross-builds on appropriate infrastructure if needed.

0 commit comments

Comments
 (0)