-
-
Notifications
You must be signed in to change notification settings - Fork 95
150 lines (131 loc) · 4.6 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
name: Release LITIENGINE
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
workflow_dispatch:
inputs:
incrementVersion:
type: choice
description: "increment version?"
required: true
default: 'none'
options:
- none
- patch
- minor
- major
schedule:
# Midnight every day
- cron: "0 0 * * *"
jobs:
release:
name: Release build
runs-on: ubuntu-latest
permissions:
contents: write
packages: read
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- name: JDK Setup
uses: actions/[email protected]
with:
distribution: temurin
java-version: 21
- name: Gradle Setup
uses: gradle/gradle-build-action@v2
- name: Increment version
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
run: ./gradlew incrementVersion --increment=${{inputs.incrementVersion}}
- name: Publish Snapshot
if: inputs.incrementVersion == 'none' || inputs.incrementVersion == ''
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }}
run: ./gradlew publishToSonatype closeSonatypeStagingRepository
- name: Publish Stable
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }}
run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Push tags
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
env:
GRGIT_USER: ${{ secrets.GITHUB_TOKEN }}
run: ./gradlew pushTags
package:
name: Package distribution
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
needs: release
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Package
run: ./gradlew jpackage -Prelease=true
- name: Upload package
uses: actions/upload-artifact@v3
with:
name: utiLITI-${{ runner.os }}
path: build/litiengine-utiliti/jpackage
create_release:
name: Create GitHub release
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
needs: package
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Extract version number
id: tag_version
shell: bash
run: |
echo ::set-output name=release_version::$(echo ${{github.ref_name}} | sed "s/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)")
- name: Add release message
uses: softprops/action-gh-release@v1
with:
name: ${{ steps.tag_version.outputs.release_version }}
draft: true
body: |
Download the LITIENGINE SDK from https://litiengine.com/download/.
LITIENGINE is available through [Maven Central](https://search.maven.org/artifact/de.gurkenlabs/litiengine):
<details>
<summary>Gradle (Groovy)</summary>
````groovy
implementation 'de.gurkenlabs:litiengine:${{ steps.tag_version.outputs.release_version }}'
````
</details>
<details>
<summary>Gradle (Kotlin)</summary>
````kotlin
implementation("de.gurkenlabs:litiengine:${{ steps.tag_version.outputs.release_version }}")
````
</details>
<details>
<summary>Maven</summary>
````xml
<dependency>
<groupId>de.gurkenlabs</groupId>
<artifactId>litiengine</artifactId>
<version>${{ steps.tag_version.outputs.release_version }}</version>
</dependency>
````
</details>