Skip to content

Initial repo structure #1

Initial repo structure

Initial repo structure #1

Workflow file for this run

name: build
on:
push:
pull_request:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
env:
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '8'
- name: Cache Gradle and Forge/MCP
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-fg2_3-forge-1_12_2-14_23_5_2847-${{ hashFiles('**/*.gradle*', 'gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-fg2_3-forge-1_12_2-14_23_5_2847-
- name: Make gradlew executable
run: chmod +x gradlew
- name: Make scripts executable
run: chmod +x .github/scripts/*.sh
- name: Build
working-directory: .
run: |
./gradlew --version
./gradlew setupCiWorkspace --info
./gradlew build --info
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: simplestructurescanner-jar
path: build/libs/*.jar
- name: Publish GitHub Release (tags only)
if: ${{ startsWith(github.ref, 'refs/tags/') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TAG="${GITHUB_REF##*/}"
TAG_COMMIT=$(git rev-list -n 1 "$TAG")
NOTES_FILE="/tmp/release_notes.md"
.github/scripts/build_release_notes.sh "$TAG" "${GITHUB_REPOSITORY%/*}" "${GITHUB_REPOSITORY#*/}" "$TAG_COMMIT" "${GITHUB_SERVER_URL:-https://github.com}" > "$NOTES_FILE"
echo "Generated release notes:" >&2
sed 's/^/ /' "$NOTES_FILE" >&2
gh release create "$TAG" build/libs/*.jar \
--title "Simple Structure Scanner $TAG" \
--notes-file "$NOTES_FILE" \
$(if [[ "$TAG" =~ [ab]|rc|pre ]]; then echo "--prerelease"; fi)
- name: Publish to CurseForge (tags only; infer release type)
if: ${{ env.CURSEFORGE_TOKEN != '' && startsWith(github.ref, 'refs/tags/') }}
working-directory: .
env:
CURSEFORGE_TOKEN: ${{ env.CURSEFORGE_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ env.CURSEFORGE_PROJECT_ID }}
GIT_TAG: ${{ github.ref_name }}
CHANGELOG: ${{ github.event.head_commit.message }}
run: |
set -euo pipefail
TAG="${GIT_TAG:-${GITHUB_REF##*/}}"
LOWER=$(echo "$TAG" | tr '[:upper:]' '[:lower:]')
RELEASE_TYPE=release
if [[ "$LOWER" == *alpha* ]]; then
RELEASE_TYPE=alpha
elif [[ "$LOWER" == *beta* || "$LOWER" == *rc* || "$LOWER" == *pre* ]]; then
RELEASE_TYPE=beta
else
CORE=$(echo "$LOWER" | sed -E 's/^v//')
if [[ "$CORE" =~ ^[0-9]+(\.[0-9]+)*a([0-9]*)?$ ]]; then
RELEASE_TYPE=alpha
elif [[ "$CORE" =~ ^[0-9]+(\.[0-9]+)*b([0-9]*)?$ ]]; then
RELEASE_TYPE=beta
fi
fi
TAG_COMMIT=$(git rev-list -n 1 "$TAG")
CL=$(.github/scripts/build_release_notes.sh "$TAG" "${GITHUB_REPOSITORY%/*}" "${GITHUB_REPOSITORY#*/}" "$TAG_COMMIT" "${GITHUB_SERVER_URL:-https://github.com}")
./gradlew curseforge --no-daemon \
-PcurseforgeProjectId="$CURSEFORGE_PROJECT_ID" \
-PcurseforgeChangelog="$CL" \
-PcurseforgeReleaseType="$RELEASE_TYPE"