From cd49869df71c09e06d2000ab490c6e6a11ff8bad Mon Sep 17 00:00:00 2001 From: yueh Date: Fri, 19 Jun 2020 17:57:47 +0200 Subject: [PATCH] Added release task (#4423) --- .github/workflows/release.yml | 42 +++++++++++++++++++++++++++++++++ build.gradle | 28 ++++++++++++++++++++++ gradle/scripts/artifacts.gradle | 1 + 3 files changed, 71 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..2728b511e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,42 @@ +name: 'Release' + +on: + release: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Validate semver + env: + RELEASE: ${{ github.event.release.tag_name }} + run: echo $RELEASE | 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-]+)*))?$' + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Use gradle cache for faster builds + uses: actions/cache@v1 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + - name: Generate assets + uses: GabrielBB/xvfb-action@v1.2 + env: + RELEASE: ${{ github.event.release.tag_name }} + with: + run: ./gradlew runData --no-daemon + - name: Build with Gradle + env: + RELEASE: ${{ github.event.release.tag_name }} + run: ./gradlew build --no-daemon + - name: Publish package + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE: ${{ github.event.release.tag_name }} + run: ./gradlew publish --no-daemon diff --git a/build.gradle b/build.gradle index d338e1b17..c95b193ca 100644 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,7 @@ buildscript { } plugins { + id "maven-publish" id "com.diffplug.gradle.spotless" version "4.3.0" id "org.sonarqube" version "2.8" id "jacoco" @@ -66,6 +67,12 @@ if (ext.branch) { version = version + "+branch." + ext.branch } +ext.release = System.getenv('RELEASE') ?: "" +if (ext.release) { + version = ext.release.substring(1) +} + + // Maven group and artifact name group = artifact_group archivesBaseName = artifact_basename @@ -136,3 +143,24 @@ minecraft { } apply from: 'gradle/scripts/artifacts.gradle' + +publishing { + publications { + maven(MavenPublication) { + groupId = project.group + artifactId = project.archivesBaseName + version = project.version + from components.java + } + } + repositories { + maven { + credentials { + username System.getenv("GITHUB_ACTOR") + password System.getenv("GITHUB_TOKEN") + } + name = "GitHubPackages" + url = "https://maven.pkg.github.com/AppliedEnergistics/Applied-Energistics-2" + } + } +} diff --git a/gradle/scripts/artifacts.gradle b/gradle/scripts/artifacts.gradle index 0dae2247c..e3f1caf90 100644 --- a/gradle/scripts/artifacts.gradle +++ b/gradle/scripts/artifacts.gradle @@ -40,6 +40,7 @@ jar { } task javadocs(type: Javadoc) { + classpath = sourceSets.main.compileClasspath source = sourceSets.api.java include "appeng/api/**"