Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

misc fixes #477

Merged
merged 4 commits into from
Dec 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
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