Skip to content

Commit

Permalink
setup release action
Browse files Browse the repository at this point in the history
  • Loading branch information
DatL4g committed Dec 7, 2023
1 parent 041656b commit b593df3
Show file tree
Hide file tree
Showing 2 changed files with 114 additions and 63 deletions.
1 change: 0 additions & 1 deletion .github/workflows/mac-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
176 changes: 114 additions & 62 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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
Expand Down

0 comments on commit b593df3

Please sign in to comment.