From 2dcb980ee1cc061d508843055f9fa4d1ca1ac3f8 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Mon, 30 Nov 2020 19:04:17 +0000 Subject: Release using github actions + update ASM --- .github/workflows/build.yml | 15 +++++++++++ .github/workflows/release.yml | 16 +++++++++++ Jenkinsfile | 25 ----------------- build.gradle | 36 ++++++++++++++++++++----- enigma/build.gradle | 8 +++--- enigma/src/main/java/cuchaz/enigma/Enigma.java | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 58694 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 35 +++++++++++------------- gradlew.bat | 5 +++- 10 files changed, 85 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml delete mode 100644 Jenkinsfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..5aa1cd48 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,15 @@ +name: Build +on: [push, pull_request] +jobs: + build: + strategy: + matrix: + java: [8-jdk, 11-jdk] + runs-on: ubuntu-20.04 + container: + image: openjdk:${{ matrix.java }} + options: --user root + steps: + - uses: actions/checkout@v1 + - uses: gradle/wrapper-validation-action@v1 + - run: ./gradlew build --stacktrace diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..8c221f6e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,16 @@ +name: Release +on: [workflow_dispatch] # Manual trigger +jobs: + build: + runs-on: ubuntu-20.04 + container: + image: openjdk:11-jdk + options: --user root + steps: + - uses: actions/checkout@v1 + - uses: gradle/wrapper-validation-action@v1 + - run: ./gradlew checkVersion build publish --stacktrace + env: + MAVEN_URL: ${{ secrets.MAVEN_URL }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index f1d16265..00000000 --- a/Jenkinsfile +++ /dev/null @@ -1,25 +0,0 @@ -pipeline { - agent any - stages { - - stage ('Build') { - steps { - sh "chmod +x gradlew" - sh "./gradlew clean build" - - archiveArtifacts artifacts: '**/build/libs/*.jar', fingerprint: true - } - } - - stage ('Archive artifacts') { - //Only publish to maven when on master branch - when { - branch 'master' - } - steps { - sh "./gradlew publish" - } - } - - } -} diff --git a/build.gradle b/build.gradle index a2a735bd..0e0e4cf0 100644 --- a/build.gradle +++ b/build.gradle @@ -24,10 +24,9 @@ subprojects { } group = 'cuchaz' - version = '0.21.6' + version = '0.21.7' - def buildNumber = System.getenv("BUILD_NUMBER") - version = version + "+" + (buildNumber ? "build.$buildNumber" : "local") + version = version + (System.getenv("GITHUB_ACTIONS") ? "" : "+local") task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' @@ -38,6 +37,14 @@ subprojects { withSourcesJar() } + tasks.withType(JavaCompile).configureEach { + it.options.encoding = "UTF-8" + + if (JavaVersion.current().isJava9Compatible()) { + it.options.release = 8 + } + } + publishing { publications { "$project.name"(MavenPublication) { @@ -55,15 +62,30 @@ allprojects { repositories { mavenLocal() - if (project.hasProperty('mavenPass')) { + def ENV = System.getenv() + if (ENV.MAVEN_URL) { maven { - url = "http://mavenupload.modmuss50.me/" + url ENV.MAVEN_URL credentials { - username = "buildslave" - password = project.getProperty('mavenPass') + username ENV.MAVEN_USERNAME + password ENV.MAVEN_PASSWORD } } } } } } + +// A task to ensure that the version being released has not already been released. +task checkVersion { + doFirst { + def xml = new URL("https://maven.fabricmc.net/cuchaz/enigma/maven-metadata.xml").text + def metadata = new XmlSlurper().parseText(xml) + def versions = metadata.versioning.versions.version*.text(); + if (versions.contains(version)) { + throw new RuntimeException("${version} has already been released!") + } + } +} + +publish.mustRunAfter checkVersion \ No newline at end of file diff --git a/enigma/build.gradle b/enigma/build.gradle index 7cebcd16..19f8d160 100644 --- a/enigma/build.gradle +++ b/enigma/build.gradle @@ -3,10 +3,10 @@ configurations { } dependencies { - implementation 'org.ow2.asm:asm:8.0' - implementation 'org.ow2.asm:asm-commons:8.0' - implementation 'org.ow2.asm:asm-tree:8.0' - implementation 'org.ow2.asm:asm-util:8.0' + implementation 'org.ow2.asm:asm:9.0' + implementation 'org.ow2.asm:asm-commons:9.0' + implementation 'org.ow2.asm:asm-tree:9.0' + implementation 'org.ow2.asm:asm-util:9.0' implementation 'net.fabricmc:procyon-fabric-compilertools:0.5.35.13' implementation 'net.fabricmc:cfr:0.0.1' diff --git a/enigma/src/main/java/cuchaz/enigma/Enigma.java b/enigma/src/main/java/cuchaz/enigma/Enigma.java index d100a75a..a37f074b 100644 --- a/enigma/src/main/java/cuchaz/enigma/Enigma.java +++ b/enigma/src/main/java/cuchaz/enigma/Enigma.java @@ -38,7 +38,7 @@ public class Enigma { public static final String NAME = "Enigma"; public static final String VERSION; public static final String URL = "https://fabricmc.net"; - public static final int ASM_VERSION = Opcodes.ASM8; + public static final int ASM_VERSION = Opcodes.ASM9; private final EnigmaProfile profile; private final EnigmaServices services; diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf0..490fda85 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6623300b..4d9ca164 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index b0d6d0ab..2fe81a7d 100755 --- a/gradlew +++ b/gradlew @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -125,8 +125,8 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` @@ -154,19 +154,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -175,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 9991c503..62bd9b9c 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -5,7 +5,7 @@ @rem you may not use this file except in compliance with the License. @rem You may obtain a copy of the License at @rem -@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem https://www.apache.org/licenses/LICENSE-2.0 @rem @rem Unless required by applicable law or agreed to in writing, software @rem distributed under the License is distributed on an "AS IS" BASIS, @@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" -- cgit v1.2.3