[nonet migration] adapt Makefile and github worklow, update build doc

This will permit to build on the github workflow both the 'net' and 'nonet'
variant
This commit is contained in:
tenzap
2022-12-06 22:01:39 +01:00
parent 06bd468658
commit cf0e8a1926
2 changed files with 93 additions and 29 deletions

View File

@@ -53,10 +53,10 @@ jobs:
run: $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "platforms;android-26" run: $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "platforms;android-26"
- name: Build native dependencies - name: Build native dependencies
run: cd src/java/argon2 && $ANDROID_NDK_ROOT/ndk-build run: make native
- name: Build java dependencies - name: Build java dependencies
run: cd src/build-scripts/ && ./build-java.sh run: make java
- name: Fixes (can be removed once merged in SamsungPass) - name: Fixes (can be removed once merged in SamsungPass)
run: | run: |
@@ -65,21 +65,41 @@ jobs:
sed -i '' 's|<ReleaseVersion>1.0</ReleaseVersion>|<ReleaseVersion>1.0</ReleaseVersion><AndroidClassParser>class-parse</AndroidClassParser>|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj sed -i '' 's|<ReleaseVersion>1.0</ReleaseVersion>|<ReleaseVersion>1.0</ReleaseVersion><AndroidClassParser>class-parse</AndroidClassParser>|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj
- name: Install NuGet dependencies - 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 run: |
make msbuild Flavor=Net
- name: Build APK - name: Build APK (net)
run: cd src/build-scripts/ && ./build-apk.sh run: |
make apk Flavor=Net
- name: Archive production artifacts - name: Archive production artifacts (net)
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: signed APK (built on ${{ github.job }}) name: signed APK ('net' built on ${{ github.job }})
path: | path: |
src/keepass2android/bin/*/*-Signed.apk 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: linux:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@@ -143,10 +163,10 @@ jobs:
run: sudo apt -y install libzip4 run: sudo apt -y install libzip4
- name: Build native dependencies - name: Build native dependencies
run: cd src/java/argon2 && $ANDROID_NDK_ROOT/ndk-build run: make native
- name: Build java dependencies - name: Build java dependencies
run: cd src/build-scripts/ && ./build-java.sh run: make java
- name: Fixes (can be removed once merged in SamsungPass) - name: Fixes (can be removed once merged in SamsungPass)
run: | run: |
@@ -155,23 +175,41 @@ jobs:
sed -i 's|<ReleaseVersion>1.0</ReleaseVersion>|<ReleaseVersion>1.0</ReleaseVersion><AndroidClassParser>class-parse</AndroidClassParser>|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj sed -i 's|<ReleaseVersion>1.0</ReleaseVersion>|<ReleaseVersion>1.0</ReleaseVersion><AndroidClassParser>class-parse</AndroidClassParser>|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj
- name: Install NuGet dependencies - name: Install NuGet dependencies
run: nuget restore src/KeePass.sln run: make nuget
- name: Build keepass2android - name: Build keepass2android (net)
run: | run: |
cd src/build-scripts/ && ./build-xamarin.sh make msbuild Flavor=Net
- name: Build APK - name: Build APK (net)
run: | 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 uses: actions/upload-artifact@v3
with: with:
name: signed APK (built on ${{ github.job }}) name: signed APK ('net' built on ${{ github.job }})
path: | path: |
src/keepass2android/bin/*/*-Signed.apk 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: windows:
# We use windows-2019 because build fails on windows-2022 # We use windows-2019 because build fails on windows-2022
@@ -212,14 +250,12 @@ jobs:
- name: Build native dependencies - name: Build native dependencies
shell: cmd shell: cmd
run: | run: |
cd src/java/argon2 make native
%ANDROID_NDK_ROOT%\ndk-build.cmd
- name: Build java dependencies - name: Build java dependencies
shell: cmd shell: cmd
run: | run: |
cd src\build-scripts make java
build-java.bat
- name: Fixes (can be removed once merged in SamsungPass) - name: Fixes (can be removed once merged in SamsungPass)
shell: bash shell: bash
@@ -228,15 +264,35 @@ jobs:
sed -i '/TargetFrameworkVersion/ s|v9.0|v11.0|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj sed -i '/TargetFrameworkVersion/ s|v9.0|v11.0|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj
sed -i 's|<ReleaseVersion>1.0</ReleaseVersion>|<ReleaseVersion>1.0</ReleaseVersion><AndroidClassParser>class-parse</AndroidClassParser>|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj sed -i 's|<ReleaseVersion>1.0</ReleaseVersion>|<ReleaseVersion>1.0</ReleaseVersion><AndroidClassParser>class-parse</AndroidClassParser>|' src/SamsungPass/Xamarin.SamsungPass/SamsungPass/SamsungPass.csproj
- name: Build keepass2android - name: Build keepass2android (net)
shell: cmd
run: | run: |
cd src\build-scripts make msbuild Flavor=Net
build-xamarin.bat
- name: Archive production artifacts - name: Build APK (net)
run: |
make apk Flavor=Net
- name: Archive production artifacts (net)
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: signed APK (built on ${{ github.job }}) name: signed APK ('net' built on ${{ github.job }})
path: | path: |
src/keepass2android/bin/*/*-Signed.apk 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

View File

@@ -6,8 +6,11 @@
# append the Configuration variable to 'make' call with value to use in '/p:Configuration=' # append the Configuration variable to 'make' call with value to use in '/p:Configuration='
# of msbuild command. # of msbuild command.
# #
# append the Flavor variable to 'make' call with value to use in '/p:Flavor='
# of msbuild command.
#
# Example: # Example:
# make Configuration=Release # make Configuration=Release Flavor=NoNet
# #
# #
# Some targets: # Some targets:
@@ -108,6 +111,11 @@ ifneq ($(Configuration),)
else else
$(warning Configuration environment variable not set.) $(warning Configuration environment variable not set.)
endif endif
ifneq ($(Flavor),)
MSBUILD_PARAM += -p:Flavor="$(Flavor)"
else
$(warning Flavor environment variable not set.)
endif
ifeq ($(detected_OS),Windows) ifeq ($(detected_OS),Windows)
define remove define remove