From 01ada2bf658881aa45b9bc4b503719bf74862679 Mon Sep 17 00:00:00 2001 From: bionickatana Date: Mon, 27 Jul 2026 20:15:33 -0600 Subject: [PATCH] Added runner to build Linux application --- .gitea/workflows/release-linux.yml | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .gitea/workflows/release-linux.yml diff --git a/.gitea/workflows/release-linux.yml b/.gitea/workflows/release-linux.yml new file mode 100644 index 0000000..6360b7c --- /dev/null +++ b/.gitea/workflows/release-linux.yml @@ -0,0 +1,64 @@ +name: Build and Package JRuby Rails App + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Ruby & JRuby + uses: ruby/setup-ruby@v1 + with: + ruby-version: jruby-9.4.6.0 # Match your target JRuby version + + - name: Install Dependencies + run: | + bundle install + + - name: Build JAR with Jarbler + run: | + gem install jarbler + jarble + + - name: Set up Java JDK (for jpackage) + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Generate Unique App Name with Git Hash + id: vars + run: | + SHORT_HASH=$(git rev-parse --short HEAD) + echo "app_name=custom-app-${SHORT_HASH}" >> $GITHUB_OUTPUT + + - name: Package with jpackage + run: | + # Find the generated jar file name dynamically + JAR_FILE=$(ls build/*.jar | head -n 1) + + # Run jpackage to bundle the application and runtime into an app-image directory + jpackage \ + --type app-image \ + --name "${{ steps.vars.outputs.app_name }}" \ + --input "$(dirname "$JAR_FILE")" \ + --main-jar "$(basename "$JAR_FILE")" \ + --dest dist + + - name: Compress Executable Package + run: | + cd dist + tar -czvf "${{ steps.vars.outputs.app_name }}.tar.gz" "${{ steps.vars.outputs.app_name }}" + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.vars.outputs.app_name }} + path: dist/*.tar.gz