Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
571a733
Modtale Launcher
Villagers654 Jun 20, 2026
5bb1e22
Launcher github actions
Villagers654 Jun 20, 2026
f005956
Run launcher tests in actions
Villagers654 Jun 20, 2026
31747ee
Fix MacOS build
Villagers654 Jun 20, 2026
c4e891e
Seed R2
Villagers654 Jun 20, 2026
c995283
Seed users properly
Villagers654 Jun 20, 2026
015a893
Attempt 2 at R2 seeding
Villagers654 Jun 20, 2026
2621774
Add logging to DataSeeder
Villagers654 Jun 20, 2026
a3c1d22
Semi-actions rewrite
Villagers654 Jun 20, 2026
87caee3
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
7fa9bd5
Attempt to rebuild
Villagers654 Jun 21, 2026
a8a647a
Build all Linux launcher packages in CI
Villagers654 Jun 21, 2026
7966711
Attempt to rebuild
Villagers654 Jun 21, 2026
5a6d51b
Fix weird auth issue
Villagers654 Jun 21, 2026
8ed3519
Harden some banner related stuff
Villagers654 Jun 21, 2026
788d0e1
Add log4j
Villagers654 Jun 21, 2026
c67e405
Fix some seeding issues
Villagers654 Jun 21, 2026
aab7d30
Handle linux files separately
Villagers654 Jun 21, 2026
981ea6e
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
b8a502b
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
c8af786
Attempt to redeploy
Villagers654 Jun 21, 2026
5f591ee
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
9465e13
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
767e966
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
be5d2c7
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
26bfd42
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
85eef8c
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
21f4d78
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 21, 2026
49e8b4b
Merge modpack-v2 into launcher and update dependencies
Villagers654 Jun 27, 2026
d349ad5
Hide the results per page dropdown on mobile
Villagers654 Jun 27, 2026
858ff94
Merge branch 'modpack-v2' into launcher
Villagers654 Jun 27, 2026
da4f8a5
Fix native download modal game version default
Villagers654 Jun 27, 2026
5898684
Fix deployment issues
Villagers654 Jun 28, 2026
1b79507
Merge branch 'modpack-v2' into launcher
Villagers654 Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .github/scripts/detect-component-changes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ changed_files="$(git diff --name-only --no-renames "$base_sha" "$head_sha")"

frontend=false
backend=false
launcher=false
launcher_build=false

while IFS= read -r path; do
[[ -z "$path" ]] && continue
Expand All @@ -91,13 +93,22 @@ while IFS= read -r path; do
backend/*)
backend=true
;;
launcher/*)
launcher=true
launcher_build=true
;;
.github/workflows/launcher-release.yml)
launcher=true
;;
esac
done <<< "$changed_files"

{
echo "Change detection range: $range_label"
echo "Frontend changed: $frontend"
echo "Backend changed: $backend"
echo "Launcher changed: $launcher"
echo "Launcher build needed: $launcher_build"
echo "Changed files:"
if [[ -n "$changed_files" ]]; then
printf '%s\n' "$changed_files"
Expand All @@ -109,4 +120,6 @@ done <<< "$changed_files"
{
echo "frontend=$frontend"
echo "backend=$backend"
echo "launcher=$launcher"
echo "launcher_build=$launcher_build"
} >> "${GITHUB_OUTPUT:-/dev/stdout}"
169 changes: 169 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ jobs:
permissions:
contents: 'read'
id-token: 'write'
outputs:
launcher_build: ${{ steps.filter.outputs.launcher_build }}
launcher_site_base_url: ${{ steps.launcher_metadata.outputs.site_base_url }}
launcher_api_base_url: ${{ steps.launcher_metadata.outputs.api_base_url }}
launcher_version: ${{ steps.launcher_metadata.outputs.version }}
launcher_artifact_prefix: ${{ steps.launcher_metadata.outputs.artifact_prefix }}

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -615,6 +621,21 @@ jobs:
fi
fi

- name: Export launcher build metadata
id: launcher_metadata
run: |
short_sha="${GITHUB_SHA:0:7}"
suffix="${TAG:-preview}-$short_sha"
suffix="$(printf '%s' "$suffix" | sed 's/[^A-Za-z0-9.-]/-/g' | sed 's/--*/-/g' | cut -c 1-50 | sed 's/^[.-]*//;s/[.-]*$//')"
if [ -z "$suffix" ]; then
suffix="preview-$short_sha"
fi

echo "site_base_url=$FINAL_FRONTEND_URL" >> "$GITHUB_OUTPUT"
echo "api_base_url=$API_URL" >> "$GITHUB_OUTPUT"
echo "version=0.1.0-$suffix" >> "$GITHUB_OUTPUT"
echo "artifact_prefix=launcher-$suffix" >> "$GITHUB_OUTPUT"

- name: Notify Status Bot of Backend Production Deploy
if: env.ENV_TYPE == 'prod' && (steps.update_backend_self_awareness.outputs.revision != '' || steps.deploy_backend.outputs.revision != '')
env:
Expand Down Expand Up @@ -694,6 +715,154 @@ jobs:
echo "---" >> $GITHUB_STEP_SUMMARY
echo "*View deployment details in [Google Cloud Console](https://console.cloud.google.com/run?project=${{ env.PROJECT_ID }}).* " >> $GITHUB_STEP_SUMMARY

package-launcher:
name: Package Staging Launcher (${{ matrix.name }})
needs: deploy
if: github.repository == 'Modtale/modtale' && needs.deploy.outputs.launcher_build == 'true'
runs-on: ${{ matrix.os }}
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- name: Linux Packages
os: ubuntu-latest
artifact: linux
- name: Windows Installer
os: windows-latest
artifact: windows
- name: macOS DMG
os: macos-latest
artifact: macos
defaults:
run:
working-directory: launcher
shell: bash
env:
LAUNCHER_SITE_BASE_URL: ${{ needs.deploy.outputs.launcher_site_base_url }}
LAUNCHER_API_BASE_URL: ${{ needs.deploy.outputs.launcher_api_base_url }}
LAUNCHER_VERSION: ${{ needs.deploy.outputs.launcher_version }}

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Validate launcher target URLs
run: |
: "${LAUNCHER_SITE_BASE_URL:?Launcher site URL was not produced by the deploy job.}"
: "${LAUNCHER_API_BASE_URL:?Launcher API URL was not produced by the deploy job.}"
: "${LAUNCHER_VERSION:?Launcher version was not produced by the deploy job.}"

echo "Launcher site URL: $LAUNCHER_SITE_BASE_URL"
echo "Launcher API URL: $LAUNCHER_API_BASE_URL"

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v3

- name: Set up Linux packaging tooling
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
binutils \
flatpak \
rpm \
tar \
xz-utils \
zstd
sudo apt-get install -y libfuse2 || sudo apt-get install -y libfuse2t64 || true
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.freedesktop.Platform//25.08 org.freedesktop.Sdk//25.08
curl -L \
-o "$RUNNER_TEMP/appimagetool" \
https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x "$RUNNER_TEMP/appimagetool"
echo "APPIMAGETOOL=$RUNNER_TEMP/appimagetool" >> "$GITHUB_ENV"
echo "APPIMAGE_EXTRACT_AND_RUN=1" >> "$GITHUB_ENV"

- name: Set up Windows installer tooling
if: runner.os == 'Windows'
shell: pwsh
run: |
choco install wixtoolset -y --no-progress
$wix = Get-ChildItem "C:\Program Files (x86)" -Directory -Filter "WiX Toolset*" |
Sort-Object Name -Descending |
Select-Object -First 1
if ($null -eq $wix) {
throw "WiX Toolset was not installed."
}
"$($wix.FullName)\bin" | Out-File -FilePath $env:GITHUB_PATH -Append

- name: Ensure Gradle wrapper is executable
run: chmod +x gradlew

- name: Build staging launcher package
run: |
package_task="packageAll"
if [ "$RUNNER_OS" = "Linux" ]; then
package_task="packageLinuxAll"
fi

./gradlew clean "$package_task" \
-PlauncherVersion="$LAUNCHER_VERSION" \
-PmodtaleSiteBaseUrl="$LAUNCHER_SITE_BASE_URL" \
-PmodtaleApiBaseUrl="$LAUNCHER_API_BASE_URL"

- name: Upload Linux AppImage package
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ needs.deploy.outputs.launcher_artifact_prefix }}-linux-appimage
path: launcher/build/distributions/*.AppImage
if-no-files-found: error

- name: Upload Linux Debian package
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ needs.deploy.outputs.launcher_artifact_prefix }}-linux-deb
path: launcher/build/distributions/*.deb
if-no-files-found: error

- name: Upload Linux RPM package
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ needs.deploy.outputs.launcher_artifact_prefix }}-linux-rpm
path: launcher/build/distributions/*.rpm
if-no-files-found: error

- name: Upload Linux Flatpak package
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ needs.deploy.outputs.launcher_artifact_prefix }}-linux-flatpak
path: launcher/build/distributions/*.flatpak
if-no-files-found: error

- name: Upload Linux pacman package
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ needs.deploy.outputs.launcher_artifact_prefix }}-linux-pacman
path: launcher/build/distributions/*.pkg.tar.zst
if-no-files-found: error

- name: Upload staging launcher package
if: runner.os != 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ needs.deploy.outputs.launcher_artifact_prefix }}-${{ matrix.artifact }}
path: launcher/build/distributions/*
if-no-files-found: error

cleanup-branch-preview:
name: Clean Up Deleted Branch Preview
if: github.repository == 'Modtale/modtale' && github.event.deleted == true && startsWith(github.ref, 'refs/heads/') && github.ref_name != 'main' && github.ref_name != 'develop'
Expand Down
Loading
Loading