Skip to content

Commit 8670f92

Browse files
committed
add action to publish releases
1 parent 5771a95 commit 8670f92

File tree

9 files changed

+202
-113
lines changed

9 files changed

+202
-113
lines changed

.github/workflows/branch.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Branch
22

33
on:
44
push:
5-
branches-ignore: [ '3.x' ]
5+
branches-ignore: [ '3.x', 'release-build' ]
66

77
jobs:
88
test-and-build:

.github/workflows/release.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [ released, prereleased ]
6+
branches: [ '3.x', 'release-build' ]
7+
tags:
8+
- 'v3.*.*'
9+
10+
jobs:
11+
build:
12+
13+
runs-on: ubuntu-latest
14+
env:
15+
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
16+
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
17+
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_PRIVATE_KEY }}
18+
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
19+
CI_BUILD_NUMBER: ${{ github.run_number }}
20+
steps:
21+
- uses: actions/checkout@v2
22+
- name: Set up JDK 1.8
23+
uses: actions/setup-java@v1
24+
with:
25+
java-version: 1.8
26+
- name: Set up Cache
27+
uses: actions/cache@v2
28+
with:
29+
path: ~/.gradle/caches
30+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
31+
restore-keys: ${{ runner.os }}-gradle
32+
- name: Set Environment Variables
33+
run: |
34+
echo "AETERNITY_GENERATE_SOURCES=true" >> $GITHUB_ENV
35+
- name: Extract version tag
36+
run: echo "BUILD_TAG=${GITHUB_REF:10}" >> $GITHUB_ENV
37+
- name: Publish Release
38+
run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --stacktrace
39+
- name: Cleanup Gradle Cache
40+
# Remove some files from the Gradle cache, so they aren't cached by GitHub Actions.
41+
# Restoring these files from a GitHub Actions cache might cause problems for future builds.
42+
run: |
43+
rm -f ~/.gradle/caches/modules-2/modules-2.lock
44+
rm -f ~/.gradle/caches/modules-2/gc.properties
45+
- name: Upload to Codecov
46+
uses: codecov/codecov-action@v1

.github/workflows/snapshot.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,17 @@ jobs:
3838
echo "AETERNITY_BASE_URL=http://localhost" >> $GITHUB_ENV
3939
echo "COMPILER_BASE_URL=http://localhost:3080" >> $GITHUB_ENV
4040
echo "INDAEX_BASE_URL=http://localhost:4000" >> $GITHUB_ENV
41-
- name: Test & Build
41+
- name: Run Tests
4242
run: |
4343
docker-compose up -d
44-
./gradlew integrationTest
45-
./gradlew build
44+
./gradlew test integrationTest
45+
- name: Publish Snapshot
46+
run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
4647
- name: Cleanup Gradle Cache
4748
# Remove some files from the Gradle cache, so they aren't cached by GitHub Actions.
4849
# Restoring these files from a GitHub Actions cache might cause problems for future builds.
4950
run: |
5051
rm -f ~/.gradle/caches/modules-2/modules-2.lock
5152
rm -f ~/.gradle/caches/modules-2/gc.properties
5253
- name: Upload to Codecov
53-
uses: codecov/codecov-action@v1
54-
- name: Publish Snapshot
55-
run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
54+
uses: codecov/codecov-action@v1

build.gradle

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ plugins {
1515
id "maven-publish"
1616
id "jacoco"
1717
id "java"
18+
id "signing"
1819
}
1920

2021
repositories {
@@ -222,6 +223,8 @@ dependencies {
222223
compile "com.google.guava:guava:27.0.1-jre"
223224

224225
// tests
226+
testCompileOnly "org.projectlombok:lombok:${lombokVersion}"
227+
testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}"
225228
testImplementation enforcedPlatform("org.junit:junit-bom:${junitVersion}")
226229
testRuntime "org.junit.platform:junit-platform-console:${junitPlatformVersion}"
227230
testRuntime "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
@@ -296,6 +299,15 @@ def pomConfig = {
296299
}
297300
}
298301

302+
def releaseTag = System.getenv("BUILD_TAG")
303+
def isRelease = releaseTag != null && !releaseTag.isEmpty()
304+
if (isRelease) {
305+
if (releaseTag.startsWith("v")) {
306+
releaseTag = releaseTag.substring(1)
307+
}
308+
project.version(releaseTag)
309+
}
310+
299311
publishing {
300312
publications {
301313
mavenPublication(MavenPublication) {
@@ -320,6 +332,15 @@ publishing {
320332
}
321333
}
322334

335+
if (isRelease) {
336+
signing {
337+
def signingKey = findProperty("signingKey")
338+
def signingPassword = findProperty("signingPassword")
339+
useInMemoryPgpKeys(signingKey, signingPassword)
340+
sign publishing.publications.mavenPublication
341+
}
342+
}
343+
323344
nexusPublishing {
324345
repositories {
325346
sonatype()

gradle/wrapper/gradle-wrapper.jar

4.68 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

gradlew

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
#!/usr/bin/env sh
22

3+
#
4+
# Copyright 2015 the original author or authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#
18+
319
##############################################################################
420
##
521
## Gradle start up script for UN*X
@@ -28,7 +44,7 @@ APP_NAME="Gradle"
2844
APP_BASE_NAME=`basename "$0"`
2945

3046
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31-
DEFAULT_JVM_OPTS=""
47+
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
3248

3349
# Use the maximum available, or set MAX_FD != -1 to use that value.
3450
MAX_FD="maximum"
@@ -66,6 +82,7 @@ esac
6682

6783
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
6884

85+
6986
# Determine the Java command to use to start the JVM.
7087
if [ -n "$JAVA_HOME" ] ; then
7188
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -109,10 +126,11 @@ if $darwin; then
109126
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110127
fi
111128

112-
# For Cygwin, switch paths to Windows format before running java
113-
if $cygwin ; then
129+
# For Cygwin or MSYS, switch paths to Windows format before running java
130+
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
114131
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115132
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133+
116134
JAVACMD=`cygpath --unix "$JAVACMD"`
117135

118136
# We build the pattern for arguments to be converted via cygpath
@@ -138,19 +156,19 @@ if $cygwin ; then
138156
else
139157
eval `echo args$i`="\"$arg\""
140158
fi
141-
i=$((i+1))
159+
i=`expr $i + 1`
142160
done
143161
case $i in
144-
(0) set -- ;;
145-
(1) set -- "$args0" ;;
146-
(2) set -- "$args0" "$args1" ;;
147-
(3) set -- "$args0" "$args1" "$args2" ;;
148-
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149-
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150-
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151-
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152-
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153-
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
162+
0) set -- ;;
163+
1) set -- "$args0" ;;
164+
2) set -- "$args0" "$args1" ;;
165+
3) set -- "$args0" "$args1" "$args2" ;;
166+
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167+
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168+
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169+
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170+
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171+
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154172
esac
155173
fi
156174

@@ -159,14 +177,9 @@ save () {
159177
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160178
echo " "
161179
}
162-
APP_ARGS=$(save "$@")
180+
APP_ARGS=`save "$@"`
163181

164182
# Collect all arguments for the java command, following the shell quoting and substitution rules
165183
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166184

167-
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168-
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169-
cd "$(dirname "$0")"
170-
fi
171-
172185
exec "$JAVACMD" "$@"

0 commit comments

Comments
 (0)