Skip to content

Commit

Permalink
Merge pull request #477 from agateau/misc-fixes
Browse files Browse the repository at this point in the history
misc fixes
  • Loading branch information
agateau authored Dec 11, 2024
2 parents bb43832 + daccd10 commit 3f660c5
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 13 deletions.
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ COPY ci/install-android-sdk /src
RUN /src/install-android-sdk

# Must match the value in ci/install-android-sdk
ENV ANDROID_SDK_ROOT /opt/android-sdk
ENV ANDROID_SDK_ROOT=/opt/android-sdk

# Define LANG to avoid javac warnings about UTF-8 characters in the source code
ENV LANG=C.UTF-8

RUN git config --global --add safe.directory /src/pixelwheels

Expand Down
77 changes: 67 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ ARCHIVE_DIR=$(CURDIR)/archives

ANDROID_PACKAGE_NAME=com.agateau.tinywheels.android

ANDROID_FLAVOR=itchio

CONF_BACKUP_DIR=$(CURDIR)/.conf-backup

# Install variables
Expand All @@ -64,28 +66,51 @@ ifdef SNAPSHOT
VERSION:=$(VERSION)+$(BRANCH)-$(shell git show --no-patch --format="%cd-%h" --date=format:%Y%m%dT%H%M%S)
endif

all: build
all: desktop-build

# Clean
.PHONY: clean
clean: clean-assets clean-desktop clean-tools

.PHONY: clean-desktop
clean-desktop:
rm -f $(DESKTOP_JAR)

.PHONY: clean-tools
clean-tools:
rm -f $(TOOLS_JAR)

# Build
$(TOOLS_JAR):
${GRADLEW} tools:dist

build:
.PHONY: tools
tools: $(TOOLS_JAR)

.PHONY: desktop-build
desktop-build:
${GRADLEW} desktop:dist

tools: $(TOOLS_JAR)
.PHONY: android-build
android-build:
$(GRADLEW) android:build

# Run
.PHONY: run
run: desktop-run

run: build
.PHONY: desktop-run
desktop-run: desktop-build
cd android/assets && java -jar $(DESKTOP_JAR)

.PHONY: android-run
android-run: android-build
adb uninstall $(ANDROID_PACKAGE_NAME) || true
adb install -f android/build/outputs/apk/$(ANDROID_FLAVOR)/debug/android-$(ANDROID_FLAVOR)-debug.apk
adb shell am start -n $(ANDROID_PACKAGE_NAME)/com.agateau.pixelwheels.android.AndroidLauncher

# Classic Unix `make install` target
.PHONY: install
install:
mkdir -p $(INSTALL_JAR_DIR)
mkdir -p $(INSTALL_BIN_DIR)
Expand All @@ -100,27 +125,34 @@ install:
cp -a tools/packaging/linux/share/* $(INSTALL_SHARE_DIR)

# Assets
.PHONY: packer
packer: tools assets
java -cp $(TOOLS_JAR) $(GAME_CP).tools.Packer

.PHONY: mapscreenshotgenerator
mapscreenshotgenerator: tools
java -cp $(TOOLS_JAR) $(GAME_CP).tools.MapScreenshotGenerator

.PHONY: vehiclethumbnailgenerator
vehiclethumbnailgenerator: tools
java -cp $(TOOLS_JAR) $(GAME_CP).tools.VehicleThumbnailGenerator tmp

.PHONY: assets
assets:
$(MAKE) -C core/assets-src

.PHONY: clean-assets
clean-assets:
$(MAKE) -C core/assets-src clean

# Automatically regenerates assets when ase files are modified (requires the
# `entr` command)
.PHONY: auto-assets
auto-assets:
find core/assets-src -name '*.ase' | entr $(MAKE) assets packer

# Dist
.PHONY: desktop-archives
desktop-archives:
@rm -rf $(DIST_OUT_BASE_DIR)
@mkdir -p $(DIST_OUT_BASE_DIR)
Expand All @@ -132,6 +164,7 @@ desktop-archives:
@mkdir -p $(ARCHIVE_DIR)
mv -v $(DIST_OUT_BASE_DIR)/*.zip $(ARCHIVE_DIR)

.PHONY: apk-archives
apk-archives:
@echo Creating apk files
@$(GRADLEW) android:assembleRelease
Expand All @@ -141,65 +174,79 @@ apk-archives:
mv android/build/outputs/apk/$$store/release/android-$$store-release.apk $(ARCHIVE_DIR)/$(EXECUTABLE)-$$store-$(VERSION).apk ; \
done

.PHONY: aab-archives
aab-archives:
@echo Creating aab
@$(GRADLEW) bundleGPlayRelease
@echo Moving aab file
mv android/build/outputs/bundle/gplayRelease/android-gplay-release.aab $(ARCHIVE_DIR)/$(ANDROID_GPLAY_RUN_DIST_NAME).aab

.PHONY: desktop-dist
desktop-dist: assets packer check desktop-build desktop-archives

dist: assets packer check build desktop-archives apk-archives aab-archives

desktop-dist: assets packer check build desktop-archives

.PHONY: clean-desktop-dist
clean-desktop-dist: clean desktop-dist

.PHONY: dist
dist: desktop-dist apk-archives aab-archives

.PHONY: clean-dist
clean-dist: clean dist

.PHONY: desktop-run-from-dist
desktop-run-from-dist:
@echo "This target only works on Linux right now"
rm -rf tmp
mkdir -p tmp
unzip $(ARCHIVE_DIR)/$(DESKTOP_RUN_DIST_NAME).zip -d tmp
tmp/$(DESKTOP_RUN_DIST_NAME)/pixelwheels

.PHONY: android-run-from-dist
android-run-from-dist:
# uninstall any existing version in case we have an unsigned version installed
adb uninstall $(ANDROID_PACKAGE_NAME) || true
adb install -f $(ARCHIVE_DIR)/$(ANDROID_ITCHIO_RUN_DIST_NAME).apk
adb shell am start -n $(ANDROID_PACKAGE_NAME)/com.agateau.pixelwheels.android.AndroidLauncher

# coding style
.PHONY: codingstyle-check
codingstyle-check:
tools/apply-codingstyle --check

.PHONY: codingstyle-apply
codingstyle-apply:
tools/apply-codingstyle

# Tag
.PHONY: tag
tag:
git tag -f -m "Pixel Wheels $(VERSION)" $(VERSION)

.PHONY: tagpush
tagpush: tag
git push
git push --tags

# Uploading
.PHONY: fastlane-beta
fastlane-beta:
fastlane supply --track beta --aab $(ARCHIVE_DIR)/$(ANDROID_GPLAY_RUN_DIST_NAME).aab

.PHONY: upload
upload:
ci/upload-build pixelwheels \
$(ARCHIVE_DIR)/$(DIST_NAME)-*.zip \
$(ARCHIVE_DIR)/$(ANDROID_GPLAY_RUN_DIST_NAME).apk \
$(ARCHIVE_DIR)/$(ANDROID_ITCHIO_RUN_DIST_NAME).apk \

.PHONY: butler-upload
butler-upload:
butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(DIST_NAME)-linux* agateau/pixelwheels:linux-stable
butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(DIST_NAME)-mac* agateau/pixelwheels:macos-stable
butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(DIST_NAME)-windows* agateau/pixelwheels:windows-stable
butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(ANDROID_ITCHIO_RUN_DIST_NAME).apk agateau/pixelwheels:android-stable

.PHONY: gh-upload
gh-upload:
gh release create ${VERSION} \
-F .changes/${VERSION}.md \
Expand All @@ -209,55 +256,65 @@ gh-upload:
${ARCHIVE_DIR}/${ANDROID_ITCHIO_RUN_DIST_NAME}.apk

# Cleaning conf
.PHONY: backup-desktop-conf
backup-desktop-conf:
mkdir -p $(CONF_BACKUP_DIR)
cp ~/.config/agateau.com/pixelwheels.conf $(CONF_BACKUP_DIR) || true
cp -R ~/.local/share/pixelwheels $(CONF_BACKUP_DIR)

.PHONY: restore-desktop-conf
restore-desktop-conf:
@if ! [ -d "$(CONF_BACKUP_DIR)" ] ; then echo "$(CONF_BACKUP_DIR) does not exist. No backup to restore."; exit 1; fi
rm ~/.config/agateau.com/pixelwheels.conf
rm -rf ~/.local/share/pixelwheels
cp $(CONF_BACKUP_DIR)/pixelwheels.conf ~/.config/agateau.com || true
cp -R $(CONF_BACKUP_DIR)/pixelwheels ~/.local/share

.PHONY: clean-desktop-conf
clean-desktop-conf:
rm -f ~/.config/agateau.com/pixelwheels.conf
rm -rf ~/.local/share/pixelwheels

.PHONY: clean-android-conf
clean-android-conf:
adb shell "pm clear $(ANDROID_PACKAGE_NAME)"

# tests
.PHONY: check
check: codingstyle-check po-check font-check
@$(GRADLEW) check
@$(GRADLEW) test

.PHONY: smoke-tests
smoke-tests: smoke-tests-from-dist smoke-tests-from-install

.PHONY: smoke-tests-from-dist
smoke-tests-from-dist:
rm -rf tmp
mkdir -p tmp
unzip $(ARCHIVE_DIR)/$(DESKTOP_RUN_DIST_NAME).zip -d tmp
tools/smoke-test tmp/$(DESKTOP_RUN_DIST_NAME)/pixelwheels

.PHONY: smoke-tests-from-install
smoke-tests-from-install:
rm -rf tmp
mkdir -p tmp
$(MAKE) install DESTDIR=$(CURDIR)/tmp
tools/smoke-test tmp/usr/local/bin/pixelwheels

# Translations
.PHONY: po-update
po-update:
tools/po-update

.PHONY: po-check
po-check:
tools/po-update --check

.PHONY: font-update
font-update:
tools/fonts/font-update

.PHONY: font-check
font-check:
tools/fonts/font-update --check

.PHONY: desktop-dist apk-dist dist clean-dist tag tagpush fastlane-beta check tools build release-archives
4 changes: 2 additions & 2 deletions ci/install-android-sdk
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-685806

# Must match android/build.gradle
PACKAGES="
build-tools;31.0.0
platforms;android-31
build-tools;34.0.0
platforms;android-34
"

ANDROID_SDK=/opt/android-sdk
Expand Down

0 comments on commit 3f660c5

Please sign in to comment.