Skip to content

Commit 0ddc337

Browse files
committed
Prepare release workflow
1 parent 476a679 commit 0ddc337

File tree

2 files changed

+128
-0
lines changed

2 files changed

+128
-0
lines changed

.github/workflows/release.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: "Publish release"
2+
on: [workflow_dispatch]
3+
4+
jobs:
5+
validation:
6+
name: Gradle Wrapper Validation
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v2
10+
- uses: gradle/wrapper-validation-action@v1
11+
test:
12+
name: Test run
13+
needs: validation
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v2
18+
- name: Setup Java
19+
uses: actions/setup-java@v1
20+
with:
21+
java-version: 8
22+
- name: Cache Gradle
23+
uses: actions/cache@v2
24+
env:
25+
java-version: 8
26+
with:
27+
path: |
28+
~/.gradle/caches
29+
~/.gradle/wrapper
30+
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
31+
restore-keys: |
32+
${{ runner.os }}-${{ env.java-version }}-gradle-
33+
- name: Make gradlew executable
34+
run: chmod +x ./gradlew
35+
- name: Gradle Check
36+
run: ./gradlew --info check
37+
build:
38+
name: Publish snapshot
39+
needs: test
40+
runs-on: ubuntu-latest
41+
steps:
42+
- name: Checkout
43+
uses: actions/checkout@v2
44+
- name: Setup Java
45+
uses: actions/setup-java@v1
46+
with:
47+
java-version: 8
48+
- name: Cache Gradle
49+
uses: actions/cache@v2
50+
env:
51+
java-version: 8
52+
with:
53+
path: |
54+
~/.gradle/caches
55+
~/.gradle/wrapper
56+
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
57+
restore-keys: |
58+
${{ runner.os }}-${{ env.java-version }}-gradle-
59+
- name: Make gradlew executable
60+
run: chmod +x ./gradlew
61+
- name: Publish release
62+
env:
63+
BINTRAY_USER: ${{ secrets.BINTRAY_USER }}
64+
BINTRAY_PASS: ${{ secrets.BINTRAY_PASSWORD }}
65+
run: bash github-build.sh

github-build.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/bash
2+
set -ev
3+
4+
#saveGitCredentials() {
5+
# cat >$HOME/.netrc <<EOL
6+
#machine github.com
7+
#login ${GITHUB_USERNAME}
8+
#password ${GITHUB_TOKEN}
9+
#
10+
#machine api.github.com
11+
#login ${GITHUB_USERNAME}
12+
#password ${GITHUB_TOKEN}
13+
#EOL
14+
# chmod 600 $HOME/.netrc
15+
#}
16+
17+
getVersion() {
18+
./gradlew properties -q | grep "version:" | grep -v "kotlin_version:" | awk '{print $2}' | tr -d '[:space:]'
19+
}
20+
21+
removeSnapshots() {
22+
sed -i 's/-SNAPSHOT//' gradle.properties
23+
}
24+
25+
commitRelease() {
26+
local APP_VERSION=$(getVersion)
27+
git commit -a -m "Update version for release"
28+
# git tag -a "v${APP_VERSION}" -m "Tag release version"
29+
}
30+
31+
bumpVersion() {
32+
echo "Bump version number"
33+
local APP_VERSION=$(getVersion | xargs)
34+
local SEMANTIC_REGEX='^([0-9]+)\.([0-9]+)(\.([0-9]+))?$'
35+
if [[ ${APP_VERSION} =~ ${SEMANTIC_REGEX} ]]; then
36+
if [[ ${BASH_REMATCH[4]} ]]; then
37+
nextVersion=$((BASH_REMATCH[4] + 1))
38+
nextVersion="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${nextVersion}-SNAPSHOT"
39+
else
40+
nextVersion=$((BASH_REMATCH[2] + 1))
41+
nextVersion="${BASH_REMATCH[1]}.${nextVersion}-SNAPSHOT"
42+
fi
43+
44+
echo "Next version: ${nextVersion}"
45+
sed -i -E "s/^version(\s)?=.*/version=${nextVersion}/" gradle.properties
46+
else
47+
echo "No semantic version and therefore cannot publish to maven repository: '${APP_VERSION}'"
48+
fi
49+
}
50+
51+
commitNextVersion() {
52+
git commit -a -m "Update version for release"
53+
}
54+
55+
echo "Deploying release to Bintray"
56+
removeSnapshots
57+
58+
./gradlew clean assemble && ./gradlew check --info #&& ./gradlew bintrayUpload -x check --info
59+
60+
commitRelease
61+
bumpVersion
62+
commitNextVersion
63+
git push --follow-tags

0 commit comments

Comments
 (0)