туту
Build / build (push) Waiting to run
Release / release (release) Waiting to run

туттуру
This commit is contained in:
2026-05-13 19:16:59 +02:00
commit 1da1a82143
22 changed files with 1265 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
name: Build
on:
push:
branches:
- main
- master
tags:
- "v*"
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Set up Gradle caching
uses: gradle/actions/setup-gradle@v4
- name: Make Gradle wrapper executable
run: chmod +x ./gradlew
- name: Build mod
run: ./gradlew build -Dorg.gradle.java.home="$JAVA_HOME" -Dorg.gradle.java.installations.paths="$JAVA_HOME"
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: ftbchunksaerospace-${{ github.ref_name }}
path: |
build/libs/*.jar
!build/libs/*-sources.jar
!build/libs/*-javadoc.jar
if-no-files-found: error
retention-days: 14
+131
View File
@@ -0,0 +1,131 @@
name: Release
on:
release:
types:
- published
workflow_dispatch:
inputs:
tag_name:
description: Git tag to release, for example v1.0.0
required: true
type: string
release_name:
description: Optional release title
required: false
type: string
prerelease:
description: Mark the release as prerelease when creating it from workflow_dispatch
required: false
default: false
type: boolean
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Set up Gradle caching
uses: gradle/actions/setup-gradle@v4
- name: Make Gradle wrapper executable
run: chmod +x ./gradlew
- name: Build mod
run: ./gradlew build -Dorg.gradle.java.home="$JAVA_HOME" -Dorg.gradle.java.installations.paths="$JAVA_HOME"
- name: Resolve release metadata
id: metadata
shell: bash
run: |
if [[ "${{ github.event_name }}" == "release" ]]; then
echo "tag=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT"
echo "name=${{ github.event.release.name }}" >> "$GITHUB_OUTPUT"
echo "prerelease=${{ github.event.release.prerelease }}" >> "$GITHUB_OUTPUT"
else
echo "tag=${{ inputs.tag_name }}" >> "$GITHUB_OUTPUT"
echo "name=${{ inputs.release_name }}" >> "$GITHUB_OUTPUT"
echo "prerelease=${{ inputs.prerelease }}" >> "$GITHUB_OUTPUT"
fi
- name: Create release when started manually
if: github.event_name == 'workflow_dispatch'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG_NAME: ${{ steps.metadata.outputs.tag }}
RELEASE_NAME: ${{ steps.metadata.outputs.name }}
PRERELEASE: ${{ steps.metadata.outputs.prerelease }}
shell: bash
run: |
if gh release view "$TAG_NAME" > /dev/null 2>&1; then
exit 0
fi
title="$RELEASE_NAME"
if [[ -z "$title" ]]; then
title="$TAG_NAME"
fi
args=("$TAG_NAME" "--title" "$title" "--generate-notes")
if [[ "$PRERELEASE" == "true" ]]; then
args+=("--prerelease")
fi
gh release create "${args[@]}"
- name: Collect release jars
id: jars
shell: bash
run: |
shopt -s nullglob
jars=()
for jar in build/libs/*.jar; do
case "$jar" in
*-sources.jar|*-javadoc.jar)
continue
;;
esac
jars+=("$jar")
done
if [[ ${#jars[@]} -eq 0 ]]; then
echo "No release jars found in build/libs" >&2
exit 1
fi
printf 'files<<EOF\n' >> "$GITHUB_OUTPUT"
printf '%s\n' "${jars[@]}" >> "$GITHUB_OUTPUT"
printf 'EOF\n' >> "$GITHUB_OUTPUT"
- name: Upload release assets
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG_NAME: ${{ steps.metadata.outputs.tag }}
RELEASE_FILES: ${{ steps.jars.outputs.files }}
shell: bash
run: |
mapfile -t jars <<< "$RELEASE_FILES"
gh release upload "$TAG_NAME" "${jars[@]}" --clobber
- name: Upload workflow artifacts
uses: actions/upload-artifact@v4
with:
name: ftbchunksaerospace-release-${{ steps.metadata.outputs.tag }}
path: |
build/libs/*.jar
!build/libs/*-sources.jar
!build/libs/*-javadoc.jar
if-no-files-found: error
retention-days: 30