89 lines
2.9 KiB
YAML
89 lines
2.9 KiB
YAML
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- ".forgejo/workflows/build-client.yml"
|
|
- "scripts/**"
|
|
- "Client/**"
|
|
|
|
|
|
jobs:
|
|
make:
|
|
name: Build BaseBand
|
|
|
|
runs-on: 'docker'
|
|
|
|
steps:
|
|
- name: Setup Java
|
|
uses: https://github.com/actions/setup-java@v4
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: 8
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Notify
|
|
run: bash scripts/webhook.sh "**(Client)** Building..."
|
|
- name: Initialize Gradle
|
|
uses: https://github.com/gradle/actions/setup-gradle@v3
|
|
- name: Initialize ForgeGradle cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
key: fg_cache
|
|
path: |
|
|
Client/build/fg_cache
|
|
Loader/build/fg_cache
|
|
- name: Refresh deps
|
|
run: |
|
|
./gradlew Client:dependencies | grep -e "tuddylib\|ClientBoot" || true
|
|
./gradlew Client:dependencies | grep -e "tuddylib\|ClientBoot" || true
|
|
- name: Notify
|
|
run: bash scripts/webhook.sh "**(Client)** Compiling..."
|
|
- name: Build
|
|
run: |
|
|
bash scripts/gen_hash.sh
|
|
./gradlew Client:build
|
|
- name: Notify
|
|
run: bash scripts/webhook.sh "**(Client)** Obfuscating..."
|
|
- name: Obfuscate main
|
|
if: github.ref == 'refs/heads/main' # !! ONLY MAIN
|
|
run: |
|
|
./gradlew Client:proguard
|
|
MOBFARGS="-p --newjvm" bash scripts/mobf.sh Client/build/proguard/BaseBand-main.jar
|
|
- name: Obfuscate release
|
|
if: github.ref == 'refs/heads/release' # !! ONLY RELEASE
|
|
run: |
|
|
./gradlew Client:proguardRelease
|
|
MOBFARGS=-p bash scripts/mobf.sh Client/build/proguard/BaseBand-release.jar
|
|
|
|
- name: Notify
|
|
run: bash scripts/webhook.sh "**(Client)** Publishing..."
|
|
- name: Upload Mappings
|
|
continue-on-error: true
|
|
uses: forgejo/upload-artifact@v4
|
|
with:
|
|
name: BaseBand-Mapping.zip
|
|
path: Client/build/proguard/mapping-*
|
|
- name: Push main to Prod Server
|
|
if: github.ref == 'refs/heads/main' # !! ONLY MAIN
|
|
env:
|
|
SSH_PRIVATEKEY: ${{ secrets.SSH_PRIVATEKEY }}
|
|
GPG_PRIVATEKEY: ${{ secrets.GPG_PRIVATEKEY }}
|
|
BB_HOST: ${{ vars.BB_HOST }}
|
|
BB_PORT: ${{ vars.BB_PORT }}
|
|
BB_PATH: ${{ vars.BB_PATH }}
|
|
run: bash scripts/push_file.sh Client/build/proguard/BaseBand-main.jar 3849
|
|
- name: Push release to Prod Server
|
|
if: github.ref == 'refs/heads/release' # !! ONLY RELEASE
|
|
env:
|
|
SSH_PRIVATEKEY: ${{ secrets.SSH_PRIVATEKEY }}
|
|
GPG_PRIVATEKEY: ${{ secrets.GPG_PRIVATEKEY }}
|
|
BB_HOST: ${{ vars.BB_HOST }}
|
|
BB_PORT: ${{ vars.BB_PORT }}
|
|
BB_PATH: ${{ vars.BB_PATH }}
|
|
run: |
|
|
bash scripts/push_file.sh Client/build/proguard/BaseBand-release.jar 3849
|
|
curl $BB_HOST:40002/refresh
|
|
- name: Notify Action Completion
|
|
if: always()
|
|
run: bash scripts/webhook.sh "# New client build\n Build Action Completed <@&1250456258629341284>"
|
|
|