From b593df3c3d39bdab120f632295764d58d2441a49 Mon Sep 17 00:00:00 2001 From: DatLag Date: Thu, 7 Dec 2023 01:21:39 +0100 Subject: [PATCH] setup release action --- .github/workflows/mac-build.yml | 1 - .github/workflows/release.yml | 176 +++++++++++++++++++++----------- 2 files changed, 114 insertions(+), 63 deletions(-) diff --git a/.github/workflows/mac-build.yml b/.github/workflows/mac-build.yml index 4df52824..87569244 100644 --- a/.github/workflows/mac-build.yml +++ b/.github/workflows/mac-build.yml @@ -32,7 +32,6 @@ jobs: - name: Package run: ./gradlew app:desktop:packageDmg; ./gradlew app:desktop:packageUberJarForCurrentOS - working-directory: ${{ github.workspace }} - name: Upload artifact uses: actions/upload-artifact@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 738ea5a4..f0101c7b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,16 +6,14 @@ on: workflow_dispatch: jobs: - package: - strategy: - matrix: - os: [ ubuntu-latest, windows-latest, macos-latest ] - fail-fast: false - runs-on: ${{ matrix.os }} - + release-ubuntu: + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v3 with: distribution: temurin java-version: 17 @@ -25,81 +23,138 @@ jobs: - name: Setup Ubuntu continue-on-error: true - if: matrix.os == 'ubuntu-latest' run: sudo apt-get install -y fuse3; sudo apt-get install -y fuse - - name: Export libraries on Unix - if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' - run: ./gradlew app:exportLibraryDefinitions + - name: Create Sekrets + run: | + ./gradlew createSekretProperties -Pkey=MONGO_APPLICATION -Pvalue=${{ secrets.MONGO_APPLICATION }}; + ./gradlew createSekretProperties -Pkey=WRAP_API -Pvalue=${{ secrets.WRAP_API }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_PROJECT -Pvalue=${{ secrets.FIREBASE_PROJECT }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_APPLICATION -Pvalue=${{ secrets.FIREBASE_APPLICATION }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_API_KEY -Pvalue=${{ secrets.FIREBASE_API_KEY }} - - name: Export libraries on Windows - if: matrix.os == 'windows-latest' - run: .\gradlew app:exportLibraryDefinitions - working-directory: ${{ github.workspace }} + - name: Create native library + run: ./gradlew app:shared:createNativeLib - name: Create package on Ubuntu - if: matrix.os == 'ubuntu-latest' - run: ./gradlew app:packageDeb - - - name: Create AppImage on Ubuntu - continue-on-error: true - if: matrix.os == 'ubuntu-latest' - run: | - ./gradlew app:packageAppImage - mkdir -p ./build/release/main/image/Burning-Series/usr - curl --request GET --url https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage --location --output ./build/release/main/image/appimagetool.AppImage - curl --request GET --url https://github.com/AppImage/AppImageKit/releases/download/continuous/AppRun-x86_64 --location --output ./build/release/main/image/Burning-Series/AppRun - chmod +x ./build/release/main/image/appimagetool.AppImage - chmod +x ./build/release/main/image/Burning-Series/AppRun - cp ./app/thirdParty/Burning-Series.desktop ./build/release/main/image/Burning-Series/ - cp ./build/release/main/app/Burning-Series/lib/Burning-Series.png ./build/release/main/image/Burning-Series/ - cp -r ./build/release/main/app/Burning-Series/bin ./build/release/main/image/Burning-Series/usr/ - cp -r ./build/release/main/app/Burning-Series/lib ./build/release/main/image/Burning-Series/usr/ - ./build/release/main/image/appimagetool.AppImage ./build/release/main/image/Burning-Series ./build/release/main/image/Burning-Series-${{ github.ref_name }}-x86_64.AppImage - tar cJf ./build/release/main/app/Burning-Series.tar.xz ./build/release/main/app/Burning-Series + run: ./gradlew app:desktop:packageDeb; ./gradlew app:desktop:packageUberJarForCurrentOS - name: Create Browser Extensions on Ubuntu continue-on-error: true - if: matrix.os == 'ubuntu-latest' + run: ./gradlew extension:packChromium; ./gradlew extension:packFirefox + + - name: Upload release packages + uses: softprops/action-gh-release@v1 + with: + files: | + ./build/release/main/app/Burning-Series.tar.xz + ./build/release/main/deb/*.deb + ./build/release/main/extension/*.zip + ./build/release/main/extension/*.xpi + ./app/desktop/build/compose/jars/Burning-Series-*.jar + + release-windows: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Create Sekrets run: | - ./gradlew extension:packChromium; ./gradlew extension:packFirefox + gradle createSekretProperties -Pkey=MONGO_APPLICATION -Pvalue=${{ secrets.MONGO_APPLICATION }}; + gradle createSekretProperties -Pkey=WRAP_API -Pvalue=${{ secrets.WRAP_API }}; + gradle createSekretProperties -Pkey=FIREBASE_PROJECT -Pvalue=${{ secrets.FIREBASE_PROJECT }}; + gradle createSekretProperties -Pkey=FIREBASE_APPLICATION -Pvalue=${{ secrets.FIREBASE_APPLICATION }}; + gradle createSekretProperties -Pkey=FIREBASE_API_KEY -Pvalue=${{ secrets.FIREBASE_API_KEY }} + working-directory: ${{ github.workspace }} - - name: Create package on Windows - if: matrix.os == 'windows-latest' - run: .\gradlew app:packageExe; .\gradlew app:packageMsi + - name: Create native library + run: gradle app:shared:createNativeLib working-directory: ${{ github.workspace }} - - name: Create package on Mac - if: matrix.os == 'macos-latest' - run: ./gradlew app:packageDmg + - name: Package + run: gradle app:desktop:packageExe; gradle app:desktop:packageMsi; gradle app:desktop:packageUberJarForCurrentOS + working-directory: ${{ github.workspace }} - name: Upload release packages uses: softprops/action-gh-release@v1 with: files: | - ./build/release/main/app/Burning-Series.tar.xz - ./build/release/main/image/Burning-Series-${{ github.ref_name }}-x86_64.AppImage - ./build/release/main/deb/*.deb - ./build/release/main/rpm/*.rpm - ./build/release/main/dmg/*.dmg build/release/main/exe/*.exe build/release/main/msi/*.msi - ./build/release/main/extension/*.zip - ./build/release/main/extension/*.xpi + app/desktop/build/compose/jars/Burning-Series-*.jar - app: - runs-on: ubuntu-latest + release-mac: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Create Sekrets + run: | + ./gradlew createSekretProperties -Pkey=MONGO_APPLICATION -Pvalue=${{ secrets.MONGO_APPLICATION }}; + ./gradlew createSekretProperties -Pkey=WRAP_API -Pvalue=${{ secrets.WRAP_API }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_PROJECT -Pvalue=${{ secrets.FIREBASE_PROJECT }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_APPLICATION -Pvalue=${{ secrets.FIREBASE_APPLICATION }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_API_KEY -Pvalue=${{ secrets.FIREBASE_API_KEY }} + - name: Create native library + run: ./gradlew app:shared:createNativeLib + + - name: Package + run: ./gradlew app:desktop:packageDmg; ./gradlew app:desktop:packageUberJarForCurrentOS + + - name: Upload release packages + uses: softprops/action-gh-release@v1 + with: + files: | + ./build/release/main/dmg/*.dmg + ./app/desktop/build/compose/jars/Burning-Series-*.jar + + release-android: + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v3 with: distribution: temurin - java-version: 11 + java-version: 17 - name: Setup Gradle uses: gradle/gradle-build-action@v2 + - name: Create Sekrets + run: | + ./gradlew createSekretProperties -Pkey=MONGO_APPLICATION -Pvalue=${{ secrets.MONGO_APPLICATION }}; + ./gradlew createSekretProperties -Pkey=WRAP_API -Pvalue=${{ secrets.WRAP_API }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_PROJECT -Pvalue=${{ secrets.FIREBASE_PROJECT }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_APPLICATION -Pvalue=${{ secrets.FIREBASE_APPLICATION }}; + ./gradlew createSekretProperties -Pkey=FIREBASE_API_KEY -Pvalue=${{ secrets.FIREBASE_API_KEY }} + + - name: Create native library + run: ./gradlew app:shared:createNativeLib + - name: Execute Build run: ./gradlew assembleRelease && ./gradlew bundleRelease @@ -125,16 +180,13 @@ jobs: keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }} buildToolsVersion: 30.0.2 - - name: List signed files - run: echo "Signed ${{ steps.sign_app.outputs.signedFilesCount }} files called ${{ steps.sign_app.outputs.signedFiles }}" - - name: Split signed files - uses: JungWinter/split@v2.1.0 + uses: xom9ikk/split@v1 id: split with: - msg: ${{ steps.sign_app.outputs.signedFiles }} + string: ${{ steps.sign_app.outputs.signedFiles }} separator: ':' - maxsplit: 2 + limit: 2 - name: Release uses: softprops/action-gh-release@v1