Skip to content

Commit 300eae9

Browse files
authored
Merge pull request #1 from MCDxAI/build-release-workflow
Add Build and Release Addon workflow
2 parents 99c64a5 + 0c2635f commit 300eae9

2 files changed

Lines changed: 87 additions & 0 deletions

File tree

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Build and Release Addon
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
inputs:
9+
version:
10+
description: 'Release version (e.g. 1.2.3)'
11+
required: true
12+
type: string
13+
release_name:
14+
description: 'Optional release title override'
15+
required: false
16+
type: string
17+
prerelease:
18+
description: 'Mark the manual release as a prerelease'
19+
required: true
20+
default: false
21+
type: boolean
22+
23+
permissions:
24+
contents: write
25+
26+
jobs:
27+
build:
28+
runs-on: ubuntu-latest
29+
30+
steps:
31+
- name: Checkout Repository
32+
uses: actions/checkout@v4
33+
with:
34+
persist-credentials: false
35+
36+
- name: Set up Gradle
37+
uses: gradle/actions/setup-gradle@v4
38+
39+
- name: Set up Java
40+
uses: actions/setup-java@v4
41+
with:
42+
distribution: temurin
43+
java-version: 21
44+
45+
- name: Determine release metadata
46+
id: meta
47+
run: |
48+
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
49+
TAG="v${{ github.event.inputs.version }}"
50+
RELEASE_NAME="${{ github.event.inputs.release_name }}"
51+
if [ -z "$RELEASE_NAME" ]; then
52+
RELEASE_NAME="$TAG"
53+
fi
54+
if [ "${{ github.event.inputs.prerelease }}" = "true" ]; then
55+
PRERELEASE="true"
56+
else
57+
PRERELEASE="false"
58+
fi
59+
else
60+
# Use version from gradle.properties + timestamp for dev builds
61+
VERSION=$(grep "^mod_version=" gradle.properties | cut -d'=' -f2)
62+
TIMESTAMP=$(date -u +%Y%m%d-%H%M%S)
63+
TAG="v${VERSION}-dev.${TIMESTAMP}"
64+
RELEASE_NAME="Dev Build (${TIMESTAMP})"
65+
PRERELEASE="true"
66+
fi
67+
{
68+
echo "tag_name=$TAG"
69+
echo "release_name=$RELEASE_NAME"
70+
echo "prerelease=$PRERELEASE"
71+
} >> "$GITHUB_OUTPUT"
72+
73+
- name: Make Gradle wrapper executable
74+
run: chmod +x ./gradlew
75+
76+
- name: Build with Gradle
77+
run: ./gradlew build --no-configuration-cache
78+
79+
- name: Publish Release
80+
uses: softprops/action-gh-release@v2
81+
env:
82+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
83+
with:
84+
tag_name: ${{ steps.meta.outputs.tag_name }}
85+
name: ${{ steps.meta.outputs.release_name }}
86+
prerelease: ${{ steps.meta.outputs.prerelease }}
87+
files: build/libs/*.jar

gradlew

100644100755
File mode changed.

0 commit comments

Comments
 (0)