diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79927886..797c4ee7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,10 +53,10 @@ jobs: run: $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "platforms;android-26" - name: Build native dependencies - run: cd src/java/argon2 && $ANDROID_NDK_ROOT/ndk-build + run: make native - name: Build java dependencies - run: cd src/build-scripts/ && ./build-java.sh + run: make java - name: Fixes (can be removed once merged in SamsungPass) run: | @@ -65,21 +65,41 @@ jobs: sed -i '' 's|1.0|1.0class-parse|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj - name: Install NuGet dependencies - run: nuget restore src/KeePass.sln + run: make nuget - - name: Build keepass2android - run: cd src/build-scripts/ && ./build-xamarin.sh + - name: Build keepass2android (net) + run: | + make msbuild Flavor=Net - - name: Build APK - run: cd src/build-scripts/ && ./build-apk.sh + - name: Build APK (net) + run: | + make apk Flavor=Net - - name: Archive production artifacts + - name: Archive production artifacts (net) uses: actions/upload-artifact@v3 with: - name: signed APK (built on ${{ github.job }}) + name: signed APK ('net' built on ${{ github.job }}) path: | src/keepass2android/bin/*/*-Signed.apk + - name: Build keepass2android (nonet) + run: | + make msbuild Flavor=NoNet + + - name: Build APK (nonet) + run: | + make apk Flavor=NoNet + + - name: Archive production artifacts (nonet) + uses: actions/upload-artifact@v3 + with: + name: signed APK ('nonet' built on ${{ github.job }}) + path: | + src/keepass2android/bin/*/*-Signed.apk + + - name: Perform "make distclean" + run: make distclean + linux: runs-on: ubuntu-22.04 @@ -143,10 +163,10 @@ jobs: run: sudo apt -y install libzip4 - name: Build native dependencies - run: cd src/java/argon2 && $ANDROID_NDK_ROOT/ndk-build + run: make native - name: Build java dependencies - run: cd src/build-scripts/ && ./build-java.sh + run: make java - name: Fixes (can be removed once merged in SamsungPass) run: | @@ -155,23 +175,41 @@ jobs: sed -i 's|1.0|1.0class-parse|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj - name: Install NuGet dependencies - run: nuget restore src/KeePass.sln + run: make nuget - - name: Build keepass2android + - name: Build keepass2android (net) run: | - cd src/build-scripts/ && ./build-xamarin.sh + make msbuild Flavor=Net - - name: Build APK + - name: Build APK (net) run: | - cd src/build-scripts/ && ./build-apk.sh + make apk Flavor=Net - - name: Archive production artifacts + - name: Archive production artifacts (net) uses: actions/upload-artifact@v3 with: - name: signed APK (built on ${{ github.job }}) + name: signed APK ('net' built on ${{ github.job }}) path: | src/keepass2android/bin/*/*-Signed.apk + - name: Build keepass2android (nonet) + run: | + make msbuild Flavor=NoNet + + - name: Build APK (nonet) + run: | + make apk Flavor=NoNet + + - name: Archive production artifacts (nonet) + uses: actions/upload-artifact@v3 + with: + name: signed APK ('nonet' built on ${{ github.job }}) + path: | + src/keepass2android/bin/*/*-Signed.apk + + - name: Perform "make distclean" + run: make distclean + windows: # We use windows-2019 because build fails on windows-2022 @@ -212,14 +250,12 @@ jobs: - name: Build native dependencies shell: cmd run: | - cd src/java/argon2 - %ANDROID_NDK_ROOT%\ndk-build.cmd + make native - name: Build java dependencies shell: cmd run: | - cd src\build-scripts - build-java.bat + make java - name: Fixes (can be removed once merged in SamsungPass) shell: bash @@ -228,15 +264,35 @@ jobs: sed -i '/TargetFrameworkVersion/ s|v9.0|v11.0|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj sed -i 's|1.0|1.0class-parse|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj - - name: Build keepass2android - shell: cmd + - name: Build keepass2android (net) run: | - cd src\build-scripts - build-xamarin.bat + make msbuild Flavor=Net - - name: Archive production artifacts + - name: Build APK (net) + run: | + make apk Flavor=Net + + - name: Archive production artifacts (net) uses: actions/upload-artifact@v3 with: - name: signed APK (built on ${{ github.job }}) + name: signed APK ('net' built on ${{ github.job }}) path: | src/keepass2android/bin/*/*-Signed.apk + + - name: Build keepass2android (nonet) + run: | + make msbuild Flavor=NoNet + + - name: Build APK (nonet) + run: | + make apk Flavor=NoNet + + - name: Archive production artifacts (nonet) + uses: actions/upload-artifact@v3 + with: + name: signed APK ('nonet' built on ${{ github.job }}) + path: | + src/keepass2android/bin/*/*-Signed.apk + + - name: Perform "make distclean" + run: make distclean diff --git a/Makefile b/Makefile index d687c8e8..b168d0c9 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,11 @@ # append the Configuration variable to 'make' call with value to use in '/p:Configuration=' # of msbuild command. # +# append the Flavor variable to 'make' call with value to use in '/p:Flavor=' +# of msbuild command. +# # Example: -# make Configuration=Release +# make Configuration=Release Flavor=NoNet # # # Some targets: @@ -108,6 +111,11 @@ ifneq ($(Configuration),) else $(warning Configuration environment variable not set.) endif +ifneq ($(Flavor),) + MSBUILD_PARAM += -p:Flavor="$(Flavor)" +else + $(warning Flavor environment variable not set.) +endif ifeq ($(detected_OS),Windows) define remove