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>"