Skip to content

Commit c29d6b1

Browse files
committed
ci: 添加GitHub Actions工作流,自动构建并发布模组
1 parent 3f7d6c4 commit c29d6b1

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
branches: [ "**" ]
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Setup Java 21
21+
uses: actions/setup-java@v4
22+
with:
23+
java-version: "21"
24+
distribution: "temurin"
25+
26+
- name: Setup Gradle
27+
uses: gradle/actions/setup-gradle@v4
28+
29+
- name: Build with Gradle
30+
run: ./gradlew build
31+
32+
- name: Get commit count and date
33+
id: vars
34+
run: |
35+
COMMIT_COUNT=$(git rev-list --count HEAD)
36+
DATE=$(date +%Y%m%d)
37+
echo "commit_count=$COMMIT_COUNT" >> $GITHUB_OUTPUT
38+
echo "date=$DATE" >> $GITHUB_OUTPUT
39+
40+
- name: Rename JAR files
41+
run: |
42+
mkdir -p release
43+
COMMIT_COUNT=${{ steps.vars.outputs.commit_count }}
44+
DATE=${{ steps.vars.outputs.date }}
45+
46+
FABRIC_JAR=$(find fabric/build/libs -name "*-fabric-*.jar" ! -name "*-dev-shadow*" ! -name "*-sources*" | head -1)
47+
NEOFORGE_JAR=$(find neoforge/build/libs -name "*-neoforge-*.jar" ! -name "*-dev-shadow*" ! -name "*-sources*" | head -1)
48+
49+
if [ -n "$FABRIC_JAR" ]; then
50+
cp "$FABRIC_JAR" "release/dmodfix-dev${COMMIT_COUNT}-${DATE}-fabric.jar"
51+
fi
52+
53+
if [ -n "$NEOFORGE_JAR" ]; then
54+
cp "$NEOFORGE_JAR" "release/dmodfix-dev${COMMIT_COUNT}-${DATE}-neoforge.jar"
55+
fi
56+
57+
- name: Upload build artifacts
58+
uses: actions/upload-artifact@v4
59+
with:
60+
name: dmodfix-dev${{ steps.vars.outputs.commit_count }}-${{ steps.vars.outputs.date }}
61+
path: release/*.jar
62+
63+
- name: Create GitHub Release
64+
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
65+
uses: softprops/action-gh-release@v2
66+
with:
67+
tag_name: dev${{ steps.vars.outputs.commit_count }}
68+
name: "Build ${{ steps.vars.outputs.commit_count }} (${{ steps.vars.outputs.date }})"
69+
files: release/*.jar
70+
generate_release_notes: true
71+
env:
72+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)