mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-02 05:27:42 -05:00
Add rudimentary support for modrinth publishing (#263)
(cherry picked from commit 4da029729c)
Signed-off-by: Max <maxh2709@gmail.com>
This commit is contained in:
165
.github/workflows/push.yml
vendored
165
.github/workflows/push.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Build and Release
|
||||
name: Build and Release (1.16)
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -16,125 +16,41 @@ on:
|
||||
default: 'false'
|
||||
|
||||
jobs:
|
||||
validate-gradle:
|
||||
name: "Validate Gradle wrapper"
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
license:
|
||||
name: "Verify License integrity"
|
||||
build:
|
||||
name: "Build and Release"
|
||||
runs-on: ubuntu-20.04
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci skip]')
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: 'temurin'
|
||||
|
||||
- name: Cache Gradle wrapper
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/wrapper
|
||||
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }}
|
||||
restore-keys: gradle-wrapper-${{ runner.os }}-
|
||||
|
||||
- name: Cache packages
|
||||
id: cache-packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: gradle-packages-${{ runner.os }}-
|
||||
|
||||
- name: Make gradlew executable
|
||||
run: chmod +x ./gradlew
|
||||
|
||||
- name: Validate Gradle Wrapper
|
||||
uses: gradle/wrapper-validation-action@v1
|
||||
|
||||
- name: Verify license using Licenser
|
||||
run: |
|
||||
./gradlew licenseCheck
|
||||
|
||||
# Remove some potentially problematic files from the Gradle cache,
|
||||
# so that GitHub Actions doesn't cache them.
|
||||
- name: Cleanup Gradle Cache
|
||||
if: steps.cache-packages.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
rm -f $HOME/.gradle/caches/*/*.lock
|
||||
rm -rf $HOME/.gradle/caches/*/plugin-resolution/
|
||||
rm -rf $HOME/.gradle/caches/*/scripts/
|
||||
rm -rf $HOME/.gradle/caches/*/scripts-remapped/
|
||||
rm -rf $HOME/.gradle/caches/*/fileHashes/
|
||||
rm -f $HOME/.gradle/caches/journal-1/file-access.bin
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: licenseCheck
|
||||
|
||||
build:
|
||||
name: "Build"
|
||||
strategy:
|
||||
matrix:
|
||||
java: [ 17 ]
|
||||
runs-on: ubuntu-20.04
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci skip]')
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up JDK ${{ matrix.java }}
|
||||
uses: actions/setup-java@v2
|
||||
- name: Setup and Build with Gradle
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
distribution: 'temurin'
|
||||
|
||||
- name: Cache Gradle wrapper
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/wrapper
|
||||
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }}
|
||||
restore-keys: gradle-wrapper-${{ runner.os }}-
|
||||
arguments: build --stacktrace --no-daemon
|
||||
|
||||
- name: Cache packages
|
||||
id: cache-packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: gradle-packages-${{ runner.os }}-
|
||||
|
||||
- name: Make gradlew executable
|
||||
run: chmod +x ./gradlew
|
||||
|
||||
- name: Build with Gradle
|
||||
run: |
|
||||
./gradlew build --stacktrace --no-daemon
|
||||
|
||||
# Remove some potentially problematic files from the Gradle cache,
|
||||
# so that GitHub Actions doesn't cache them.
|
||||
- name: Cleanup Gradle Cache
|
||||
if: steps.cache-packages.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
rm -f $HOME/.gradle/caches/*/*.lock
|
||||
rm -rf $HOME/.gradle/caches/*/plugin-resolution/
|
||||
rm -rf $HOME/.gradle/caches/*/scripts/
|
||||
rm -rf $HOME/.gradle/caches/*/scripts-remapped/
|
||||
rm -rf $HOME/.gradle/caches/*/fileHashes/
|
||||
rm -f $HOME/.gradle/caches/journal-1/file-access.bin
|
||||
|
||||
- name: Setting mod version
|
||||
if: ${{ matrix.java == '17' }}
|
||||
run: |
|
||||
cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV
|
||||
cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV
|
||||
cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV
|
||||
- name: Create package name
|
||||
if: ${{ matrix.java == '17' }}
|
||||
run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version.${{ github.run_number }}" >> $GITHUB_ENV
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: ${{ matrix.java == '17' }}
|
||||
with:
|
||||
name: ${{ env.package_name }}
|
||||
path: |
|
||||
@@ -144,58 +60,17 @@ jobs:
|
||||
!**/*-shadow.jar
|
||||
!**/*-transformProduction*.jar
|
||||
!**/testmod*/
|
||||
|
||||
publish:
|
||||
needs:
|
||||
- validate-gradle
|
||||
- license
|
||||
- build
|
||||
runs-on: ubuntu-20.04
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[norelease]') && github.event.inputs.norelease != 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: 'temurin'
|
||||
|
||||
- name: Cache Gradle wrapper
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/wrapper
|
||||
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }}
|
||||
restore-keys: gradle-wrapper-${{ runner.os }}-
|
||||
|
||||
- name: Cache packages
|
||||
id: cache-packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: gradle-packages-${{ runner.os }}-
|
||||
|
||||
- name: Release to Maven and CurseForge
|
||||
- name: Release to Maven, CurseForge and Modrinth
|
||||
uses: gradle/gradle-build-action@v2
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[norelease]') && github.event.inputs.norelease != 'true'
|
||||
env:
|
||||
# currently unused, may want to use these for changelogs though!
|
||||
# GIT_COMMIT: ${{ github.event.after }}
|
||||
# GIT_PREVIOUS_COMMIT: ${{ github.event.before }}
|
||||
MAVEN_PASS: ${{ secrets.MAVEN_PASS }}
|
||||
CURSE_API_KEY: ${{ secrets.CURSE_API_KEY }}
|
||||
# TODO: make this use the artifacts from the previous build step
|
||||
run: |
|
||||
./gradlew build publish curseforgePublish --stacktrace --no-daemon
|
||||
|
||||
# Remove some potentially problematic files from the Gradle cache,
|
||||
# so that GitHub Actions doesn't cache them.
|
||||
- name: Cleanup Gradle Cache
|
||||
if: steps.cache-packages.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
rm -f $HOME/.gradle/caches/*/*.lock
|
||||
rm -rf $HOME/.gradle/caches/*/plugin-resolution/
|
||||
rm -rf $HOME/.gradle/caches/*/scripts/
|
||||
rm -rf $HOME/.gradle/caches/*/scripts-remapped/
|
||||
rm -rf $HOME/.gradle/caches/*/fileHashes/
|
||||
rm -f $HOME/.gradle/caches/journal-1/file-access.bin
|
||||
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
|
||||
with:
|
||||
arguments: publish curseforge modrinth --stacktrace --no-daemon
|
||||
|
||||
Reference in New Issue
Block a user