diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f5ffe6854..ec5c2f623 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,9 @@ name: 'Release' on: - release: - types: [published] + create: + tags: + - fabric/v* jobs: build: @@ -11,16 +12,10 @@ jobs: steps: - name: Validate semver env: - TAG: ${{ github.event.release.tag_name }} + TAG: ${{ github.event.ref }} run: | - echo $TAG | grep -oP '^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$' + echo $TAG | grep -oP '^fabric/v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$' echo "::set-env name=RELEASE::${TAG:1}" - - name: Export keystore - env: - KEY_STORE: ${{ secrets.KEY_STORE }} - run: | - echo $KEY_STORE | base64 -d > $HOME/keystore.jks - echo "::set-env name=KEY_STORE_FILE::$HOME/keystore.jks" - uses: actions/checkout@v2 - name: Set up JDK 1.8 uses: actions/setup-java@v1 @@ -30,43 +25,16 @@ jobs: run: chmod +x gradlew - name: Validate no assets run: test ! -d ./src/generated - - name: Generate assets - run: ./gradlew runData --no-daemon --max-workers 1 - - name: Validate assets - run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle env: - KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }} - KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }} - KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew build --no-daemon --max-workers 1 - - name: Upload to curseforge - env: - KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }} - KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }} - KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }} - CHANGELOG: ${{ github.event.release.body }} - CURSEFORGE: ${{ secrets.CURSEFORGE }} - run: ./gradlew curseforge --no-daemon --max-workers 1 + run: ./gradlew generateData build - name: Publish to github packages env: - KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }} - KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }} - KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew publish --no-daemon --max-workers 1 - - name: Prepare artifact metadata - id: prepare_artifact_metadata - run: | - echo ::set-output name=ARTIFACT_PATH::./build/libs/appliedenergistics2-${RELEASE}.jar - echo ::set-output name=ARTIFACT_NAME::appliedenergistics2-${RELEASE}.jar - - name: Upload Release Artifact - uses: actions/upload-release-asset@v1.0.1 + run: ./gradlew publish + - name: Upload to curseforge env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ steps.prepare_artifact_metadata.outputs.ARTIFACT_PATH }} - asset_name: ${{ steps.prepare_artifact_metadata.outputs.ARTIFACT_NAME }} - asset_content_type: application/zip + CURSEFORGE: ${{ secrets.CURSEFORGE }} + run: ./gradlew curseforge diff --git a/build.gradle b/build.gradle index b47cece1f..c9f314ab2 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,7 @@ plugins { id 'fabric-loom' id 'maven-publish' id "com.diffplug.gradle.spotless" version "4.3.0" + id "com.matthewprenger.cursegradle" version "1.4.0" id "org.sonarqube" version "2.8" id "jacoco" } diff --git a/gradle/scripts/curseforge.gradle b/gradle/scripts/curseforge.gradle index a925a4506..462255591 100644 --- a/gradle/scripts/curseforge.gradle +++ b/gradle/scripts/curseforge.gradle @@ -34,6 +34,17 @@ if (System.getenv("CURSEFORGE")) { changelogType = "markdown" changelog = System.getenv("CHANGELOG") ?: "Please visit our [releases](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases) for a changelog" releaseType = cfReleaseType + addGameVersion project.minecraft_version + addGameVersion "Fabric" + mainArtifact(remapJar.archiveFile) { + displayName = "${project.version} [FABRIC]" + } + } + options { + forgeGradleIntegration = false + } + afterEvaluate { + tasks.getByName("curseforge${project.curseforge_project}").dependsOn remapJar } } -} \ No newline at end of file +}