add build.yml
Build and Release / build (push) Failing after 1m55s Details

This commit is contained in:
itqop 2025-10-18 23:25:47 +03:00
parent 1ebf86f575
commit 7cfd399f92
1 changed files with 82 additions and 0 deletions

View File

@ -0,0 +1,82 @@
name: Build and Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Extract version from gradle.properties
id: version
run: |
VERSION=$(grep "^mod_version=" gradle.properties | cut -d'=' -f2 | tr -d ' ')
echo "mod_version=$VERSION" >> $GITHUB_OUTPUT
echo "Mod version: $VERSION"
- name: Build with Gradle
run: ./gradlew jar --no-daemon
- name: Find JAR file
id: jar
run: |
JAR_PATH=$(find build/libs -name "*.jar" ! -name "*-sources.jar" ! -name "*-javadoc.jar" -type f | head -n 1)
JAR_NAME=$(basename "$JAR_PATH")
echo "jar_path=$JAR_PATH" >> $GITHUB_OUTPUT
echo "jar_name=$JAR_NAME" >> $GITHUB_OUTPUT
echo "Found JAR: $JAR_NAME"
- name: Create Release
id: create_release
run: |
TAG_NAME="v${{ steps.version.outputs.mod_version }}"
RELEASE_NAME="Release $TAG_NAME"
RESPONSE=$(curl -X POST \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"$TAG_NAME\",\"name\":\"$RELEASE_NAME\",\"draft\":false,\"prerelease\":false}" \
"https://git.itqop.pw/api/v1/repos/itqop/whitelist-neoforge/releases")
RELEASE_ID=$(echo "$RESPONSE" | jq -r '.id')
echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT
echo "Release created with ID: $RELEASE_ID"
- name: Upload JAR to Release
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@${{ steps.jar.outputs.jar_path }}" \
"https://git.itqop.pw/api/v1/repos/itqop/whitelist-neoforge/releases/${{ steps.create_release.outputs.release_id }}/assets?name=${{ steps.jar.outputs.jar_name }}"
- name: Upload to Gitea Package Registry
run: |
VERSION="${{ steps.version.outputs.mod_version }}"
JAR_PATH="${{ steps.jar.outputs.jar_path }}"
JAR_NAME="${{ steps.jar.outputs.jar_name }}"
curl -X PUT \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-H "Content-Type: application/java-archive" \
--data-binary @"$JAR_PATH" \
"https://git.itqop.pw/api/packages/itqop/generic/whitelist-neoforge/$VERSION/$JAR_NAME"
echo "Package uploaded: https://git.itqop.pw/itqop/-/packages/generic/whitelist-neoforge/$VERSION"