diff --git a/.github/workflows/deer-build.yml b/.github/workflows/deer-build.yml new file mode 100644 index 000000000..6229fc965 --- /dev/null +++ b/.github/workflows/deer-build.yml @@ -0,0 +1,43 @@ +name: Build deer.social +on: workflow_dispatch + +jobs: + deer-build-android: + name: Build deer.social for Android + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: yarn + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + cache: gradle + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + - name: Setup just + uses: extractions/setup-just@v2 + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Copy example build settings + run: | + cp .env.example .env + cp google-services.json.example google-services.json + + - name: Build + run: just dist-build-android-gradle + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: android + path: android/app/build/outputs/apk/release/app-release.apk diff --git a/justfile b/justfile index 64b7fd4eb..6917460bd 100644 --- a/justfile +++ b/justfile @@ -8,6 +8,9 @@ dist-build-web: intl build-web [group('dist')] dist-build-android-sideload: intl build-android-sideload +[group('dist')] +dist-build-android-gradle: intl build-android-gradle + [group('build')] intl: yarn intl:build @@ -24,6 +27,11 @@ build-web: && postbuild-web build-android-sideload: prebuild-android eas build --local --platform android --profile sideload-android +[group('build')] +[working-directory: 'android'] +build-android-gradle: prebuild-android + ./gradlew app:assembleRelease + [group('build')] postbuild-web: # build system outputs some srcs and hrefs like src="static/"