Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c26ef4d
Composite actions and a new native matrix build
tonihele Jun 1, 2026
a606368
Add checkouts
tonihele Jun 1, 2026
459ca20
Update Gradle wrapper validation
tonihele Jun 1, 2026
f8a50c1
Fix descriptions and variable usages
tonihele Jun 1, 2026
2f618fd
Reference inputs directly
tonihele Jun 1, 2026
ad38fbe
Tweaks
tonihele Jun 1, 2026
ee98a24
Upgrade download plugin
tonihele Jun 1, 2026
0500c30
Tweaks
tonihele Jun 1, 2026
2b32f1f
Tweaks
tonihele Jun 1, 2026
f7c27ae
Create folder
tonihele Jun 1, 2026
fa1a04d
Fix scripts
tonihele Jun 1, 2026
8e8a0de
Set permissions
tonihele Jun 1, 2026
1a75a95
Setup Java
tonihele Jun 1, 2026
ab9c609
Use the sanitized arch
tonihele Jun 1, 2026
fcf18c9
Create directory
tonihele Jun 1, 2026
957e25b
Remove the signing stuff
tonihele Jun 1, 2026
ec99a7d
Revert "Remove the signing stuff"
tonihele Jun 1, 2026
3c2a31b
Fix Mac JDK download
tonihele Jun 1, 2026
71ef910
Try to catch CURL failures
tonihele Jun 1, 2026
0df9dfe
Fix mac JDK path name
tonihele Jun 1, 2026
9f421c7
Finalize release build
tonihele Jun 2, 2026
bd83a4e
See if InnoSetup is in path
tonihele Jun 2, 2026
0881d4f
Try another location
tonihele Jun 2, 2026
6d6440b
Try another location
tonihele Jun 2, 2026
d37f455
Better artifact names and only upload the installer the
tonihele Jun 4, 2026
582085f
Try to build Windows installer in CMD so that we can use the runner's…
tonihele Jun 4, 2026
103d837
Use call and escape the /c
tonihele Jun 4, 2026
b5819c3
Test path getting
tonihele Jun 4, 2026
3ccc63f
Write the InnoSetup location
tonihele Jun 4, 2026
7d3faeb
Escape ISCC path
tonihele Jun 4, 2026
595d4ef
Double escape
tonihele Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .github/actions/build-installers/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: "Build installers"
description: "Builds installers for the given target environment"

inputs:
tag:
required: true
description: "Tag should be used for releases"
os:
required: true
description: "Operating system string"
arch:
required: true
description: "System architecture string"

runs:
using: "composite"
steps:
- name: Set up JDK 21 # NBPackage requires JDK
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'

- name: Download bundle
uses: actions/download-artifact@v8
with:
name: bundle
path: dist

- name: Download NBPackage
uses: actions/download-artifact@v8
with:
name: nbpackage
path: installers/nbpackage

- name: Download JDKs
run: bash download-jdks.sh ${{ inputs.os }} ${{ inputs.arch }}
working-directory: installers
shell: bash

- name: Grant execute permission for NBPackage
if: runner.os == 'Linux' || runner.os == 'macOS'
run: chmod +x installers/nbpackage/bin/nbpackage
shell: bash

- name: Build installers
run: bash build-installers.sh ${{ inputs.tag }} ${{ inputs.os }} ${{ inputs.arch }}
working-directory: installers
shell: bash

- name: Upload installers
uses: actions/upload-artifact@v7
with:
name: installers-${{ inputs.os }}-${{ inputs.arch }}
path: |
dist/installers/*.deb
dist/installers/*.exe
dist/installers/*.pkg
compression-level: 0
if-no-files-found: error
57 changes: 57 additions & 0 deletions .github/actions/build-sdk/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: "Build SDK"
description: "Setups and builds the SDK (Linux)"

inputs:
tag:
required: false
description: "Tag should be used for releases"
createBundle:
required: false
default: 'false'
type: boolean
description: "If specified, creates a ZIP distributable bundle"

runs:
using: "composite"
steps:
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'

- name: Validate the Gradle wrapper
uses: gradle/actions/wrapper-validation@v6

- name: Grant execute permission for gradle
run: chmod +x gradlew
shell: bash

- name: Build the SDK (with tag)
if: inputs.tag != ''
run: ./gradlew buildSdk -Ptag_name=${{ inputs.tag }}
shell: bash

- name: Build the SDK
if: inputs.tag == ''
run: ./gradlew buildSdk
shell: bash
Comment on lines +30 to +38

- name: Override Harness (custom icon)
if: inputs.createBundle == 'true'
run: ./gradlew overrideHarness -Ptag_name=${{ github.ref_name }}
shell: bash

- name: Build distributable ZIP
if: inputs.createBundle == 'true'
run: ant -Dstorepass="$NBM_SIGN_PASS" -Dpack200.enabled=false set-spec-version build-zip unset-spec-version
Comment on lines +40 to +47
shell: bash

- name: Upload distributable ZIP bundle
if: inputs.createBundle == 'true'
uses: actions/upload-artifact@v7
with:
name: bundle
path: dist/jmonkeyplatform.zip
compression-level: 0
if-no-files-found: error
32 changes: 32 additions & 0 deletions .github/actions/nbm-deployment/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "NBM deployment"
description: "Deploys NBM packages"

inputs:
token:
required: true
description: "SDK Update Center token"

runs:
using: "composite"
steps:
- name: Checkout the nightly-trigger repository
uses: actions/checkout@v6
with:
repository: 'jMonkeyEngine/sdk-update-center'
ref: nightly
path: nightly
token: ${{ inputs.token }}

- name: Setup Git for the commit
run: git config user.email MeFisto94@users.noreply.github.com && git config user.name MeFisto94
working-directory: nightly
shell: bash

- name: Overwrite the target file
run: rm -rf nightly/target && echo 'echo "sdk_sha=${{ github.sha }}" >> $GITHUB_ENV' > nightly/target
shell: bash

- name: Trigger nightly builds
working-directory: nightly
run: git add target && git commit -m "Trigger a fresh nightly build for https://github.com/jMonkeyEngine/sdk/commit/${{ github.sha }}" && git push
shell: bash
17 changes: 17 additions & 0 deletions .github/actions/prepare-installers/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: "Prepare installers"
description: "Setups the NBPackage needed to build the installers"

runs:
using: "composite"
steps:
- name: Prepare NBPackage
run: bash prepare-installers.sh
working-directory: installers
shell: bash

- name: Upload NBPackage
uses: actions/upload-artifact@v7
with:
name: nbpackage
path: installers/nbpackage/
compression-level: 9
32 changes: 32 additions & 0 deletions .github/actions/publish-release/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "Publish Release"
description: "Create GitHub release from artifacts"

inputs:
tag:
required: true
description: "Tag should be used for releases"

runs:
using: "composite"
steps:
- name: Download installers
uses: actions/download-artifact@v8
with:
pattern: installers-*
path: release-assets
merge-multiple: true

- name: Download ZIP bundle
uses: actions/download-artifact@v8
with:
name: bundle
path: release-assets

- name: Create Release
uses: softprops/action-gh-release@v3
with:
files: release-assets/*
tag_name: ${{ github.ref }}
name: Release ${{ github.ref }}
env:
GITHUB_TOKEN: ${{ github.token }}
42 changes: 8 additions & 34 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -1,55 +1,29 @@
# This Action will build the SDK and if this succeeds, trigger a build on the
# jMonkeyEngine/sdk-update-center repository, so that nbms get built and
# jMonkeyEngine/sdk-update-center repository, so that NBMs get built and
# deployed
name: Nightly NBM Deployment

on:
push:
branches: [ master ]
pull_request:

jobs:
BuildSDK:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: 'temurin'
- uses: actions/checkout@v6

- name: Validate the Gradle wrapper
uses: gradle/wrapper-validation-action@v2

- name: Grant execute permission for gradle
run: chmod +x gradlew

- name: Build the SDK
run: ./gradlew buildSdk
uses: ./.github/actions/build-sdk

NBMDeployment:
needs: [BuildSDK]
runs-on: ubuntu-latest
if: github.event_name == 'push'

steps:
- name: Checkout the nightly-trigger repository
uses: actions/checkout@v3
- name: Deploy NBMs
uses: ./.github/actions/nbm-deployment
with:
repository: 'jMonkeyEngine/sdk-update-center'
ref: nightly
path: nightly
token: ${{ secrets. UPDATE_CENTER_PAT }}

- name: Setup Git for the commit
run: git config user.email MeFisto94@users.noreply.github.com && git config user.name MeFisto94
working-directory: nightly

- name: Overwrite the target file
run: rm -rf nightly/target && echo 'echo "sdk_sha=${{ github.sha }}" >> $GITHUB_ENV' > nightly/target

- name: Trigger nightly builds
working-directory: nightly
run: git add target && git commit -m "Trigger a fresh nightly build for https://github.com/jMonkeyEngine/sdk/commit/${{ github.sha }}" && git push
token: ${{ secrets. UPDATE_CENTER_PAT }}
83 changes: 50 additions & 33 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,61 @@
# This Action will build the SDK and if this succeeds, create a github release
# This Action will build the SDK and if this succeeds, create a GitHub release
name: Release Builds
on:
push:
tags:
- "*"
jobs:

# -------------------------------
# 1. Build + bundle (Linux only)
# -------------------------------
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 21
- name: Install wine
run: sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt install -y xorg xvfb xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic wine32:i386 wine makepkg
- name: Grant execute permission for gradle
run: chmod +x gradlew
- name: Build the SDK
run: ./gradlew buildSdk -Ptag_name=${{ github.ref_name }}
- name: Override Harness (custom icon)
run: ./gradlew overrideHarness -Ptag_name=${{ github.ref_name }}
- name: Build Installers
run: ant -Dstorepass="$NBM_SIGN_PASS" -Dpack200.enabled=false set-spec-version build-zip unset-spec-version
- name: Download JDKs for the installers
run: bash download-jdks.sh
working-directory: installers
- name: Build the installers
run: bash build-installers.sh ${{ github.ref_name }} headless
working-directory: installers
- name: Create Release
uses: softprops/action-gh-release@v1
- uses: actions/checkout@v6

- name: Build the SDK
uses: ./.github/actions/build-sdk
with:
files: |
dist/jmonkeyplatform*.*
dist/jmonkeyengine-sdk*.*
dist/jMonkeyEngine-SDK*.*
tag_name: ${{ github.ref }}
name: Release ${{ github.ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}
createBundle: true

- name: Prepare installers
uses: ./.github/actions/prepare-installers

# -------------------------------
# 2. Native installer packaging (matrix)
# -------------------------------
package:
needs: build

strategy:
matrix:
os: [ ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest, macos-26-intel ]

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v6

- name: Build installers
uses: ./.github/actions/build-installers
with:
tag: ${{ github.ref_name }}
os: ${{ runner.os }}
arch: ${{ runner.arch }}

# -------------------------------
# 3. Release
# -------------------------------
release:
needs: package
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Publish release
uses: ./.github/actions/publish-release
with:
tag: ${{ github.ref }}
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import java.util.zip.ZipFile

plugins {
id "de.undercouch.download" version "5.1.0"
id "de.undercouch.download" version "5.7.0"
}

apply from: 'gradle/libs/digest.gradle'
Expand Down
Loading
Loading