From edb758eede39a89008be695eabec2aef0a1da87e Mon Sep 17 00:00:00 2001 From: Hiddify Date: Fri, 9 Feb 2024 20:51:26 +0100 Subject: [PATCH] refactor build --- .github/workflows/build.yml | 75 ++++++++++++++++++------------------- Makefile | 19 +++------- 2 files changed, 42 insertions(+), 52 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df8760a2..ed4ece5c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,17 @@ env: NDK_VERSION: r26b UPLOAD_ARTIFACT: "${{ inputs.upload-artifact }}" TAG_NAME: "${{ inputs.tag-name }}" - + TARGET_MAP: | + { + "AppImage": "Hiddify-Linux-x64", + "deb": "Hiddify-Debian-x64", + "rpm": "Hiddify-rpm-x64", + "apk": "Hiddify-Android", + "aab": "Hiddify-Android", + "exe": "Hiddify-Windows-x64", + "dmg": "Hiddify-MacOS", + "ipa": "Hiddify-iOS", + } jobs: build: permissions: write-all @@ -37,31 +47,16 @@ jobs: os: windows-2019 aarch: amd64 targets: exe - filename: hiddify-windows-x64 - - platform: linux-appimage + - platform: linux os: ubuntu-20.04 aarch: amd64 - targets: AppImage - filename: hiddify-linux-x64 - - - platform: linux-deb - os: ubuntu-20.04 - aarch: amd64 - targets: deb - filename: hiddify-debian-x64 - - - platform: linux-rpm - os: ubuntu-20.04 - aarch: amd64 - targets: rpm - filename: hiddify-rpm-x64 + targets: AppImage,deb,rpm - platform: macos os: macos-13 aarch: universal targets: dmg - filename: hiddify-macos-universal runs-on: ${{ matrix.os }} steps: @@ -181,10 +176,10 @@ jobs: run: | mkdir out ls -R ./build/app/outputs - cp ./build/app/outputs/flutter-apk/*arm64-v8a*.apk out/hiddify-android-arm64.apk || echo "no arm64 apk" - cp ./build/app/outputs/flutter-apk/*armeabi-v7a*.apk out/hiddify-android-arm7.apk || echo "no arm7 apk" - cp ./build/app/outputs/flutter-apk/*x86_64*.apk out/hiddify-android-x86_64.apk || echo "no x64 apk" - cp ./build/app/outputs/flutter-apk/app-release.apk out/hiddify-android-universal.apk || echo "no universal apk" + cp ./build/app/outputs/flutter-apk/*arm64-v8a*.apk out/${TARGET_MAP[apk]}-arm64.apk || echo "no arm64 apk" + cp ./build/app/outputs/flutter-apk/*armeabi-v7a*.apk out/${TARGET_MAP[apk]}-arm7.apk || echo "no arm7 apk" + cp ./build/app/outputs/flutter-apk/*x86_64*.apk out/${TARGET_MAP[apk]}-x86_64.apk || echo "no x64 apk" + cp ./build/app/outputs/flutter-apk/app-release.apk out/${TARGET_MAP[apk]}-universal.apk || echo "no universal apk" - name: Copy to out Android AAB if: matrix.platform == 'android-aab' @@ -199,22 +194,26 @@ jobs: ls -R dist/ mkdir out mkdir tmp_out - EXT="${{ matrix.targets }}" - mv dist/*/*.$EXT tmp_out/${{matrix.filename}}.$EXT - chmod +x tmp_out/${{matrix.filename}}.$EXT - if [ "${{matrix.platform}}" == "linux" ];then - cp ./.github/help/linux/* tmp_out/ - else - cp ./.github/help/mac-windows/* tmp_out/ - fi - if [[ "${{matrix.platform}}" == 'ios' ]];then - mv tmp_out/${{matrix.filename}}.ipa bin/${{matrix.filename}}.ipa - else - cd tmp_out - 7z a ${{matrix.filename}}.zip ./ - mv *.zip ../out/ - mv ${{matrix.filename}}.AppImage HiddifyNext.AppImage || echo "no appimage" # added for appimage link - fi + + for EXT in $(echo ${{ matrix.targets }} | tr ',' '\n'); do + targetFile=${TARGET_MAP[$EXT]}.$EXT + mv dist/*/*.$EXT tmp_out/${targetFile} + chmod +x tmp_out/${targetFile} + if [ "${{matrix.platform}}" == "linux" ];then + cp ./.github/help/linux/* tmp_out/ + else + cp ./.github/help/mac-windows/* tmp_out/ + fi + if [[ "${{matrix.platform}}" == 'ios' ]];then + mv tmp_out/${targetFile} bin/${targetFile} + else + cd tmp_out + 7z a ${TARGET_MAP[$EXT]}.zip ./ + mv *.zip ../out/ + if [[ $EXT == 'AppImage' ]];then + mv ${targetFile} ../out/${targetFile} # added for appimage link + fi + fi - name: Clean up keychain and provisioning profile diff --git a/Makefile b/Makefile index 24537d21..2d7aa2d5 100644 --- a/Makefile +++ b/Makefile @@ -104,17 +104,10 @@ android-aab-release: ls -R build/app/outputs windows-release: - flutter build -v windows --target lib/main.dart --dart-define sentry_dsn=*** --dart-define FLUTTER_BUILD_NAME=0.15.4 --dart-define FLUTTER_BUILD_NUMBER=1504 - flutter_distributor package --platform windows --targets exe $(DISTRIBUTOR_ARGS) + flutter_distributor package --flutter-build-args=verbose --platform windows --targets exe $(DISTRIBUTOR_ARGS) -linux-release: linux-appimage-release linux-deb-release linux-rpm-release - -linux-appimage-release: - flutter_distributor package --platform linux --targets appimage $(DISTRIBUTOR_ARGS) -linux-deb-release: - flutter_distributor package --platform linux --targets deb $(DISTRIBUTOR_ARGS) -linux-rpm-release: - flutter_distributor package --platform linux --targets rpm $(DISTRIBUTOR_ARGS) +linux-release: + flutter_distributor package --platform linux --targets deb,rpm,appimage $(DISTRIBUTOR_ARGS) macos-release: flutter_distributor package --platform macos --targets dmg $(DISTRIBUTOR_ARGS) @@ -131,15 +124,13 @@ android-aab-libs: android-libs windows-libs: @$(MKDIR) $(DESKTOP_OUT) || echo Folder already exists. Skipping... - curl -L $(CORE_URL)/$(CORE_NAME)-windows-amd64.tar.gz | tar xz -C $(DESKTOP_OUT)/ + curl -L $(CORE_URL)/$(CORE_NAME)-windows-amd64.tar.gz | tar xz -C $(DESKTOP_OUT)$(SEP) + ls $(DESKTOP_OUT)$(SEP) linux-libs: mkdir -p $(DESKTOP_OUT) curl -L $(CORE_URL)/$(CORE_NAME)-linux-amd64.tar.gz | tar xz -C $(DESKTOP_OUT)/ -linux-deb-libs:linux-libs -linux-rpm-libs:linux-libs -linux-appimage-libs:linux-libs macos-libs: mkdir -p $(DESKTOP_OUT)