Skip to content

Commit a63dc91

Browse files
committed
Merge branch 'develop'
2 parents 75fc23f + c0629e0 commit a63dc91

File tree

70 files changed

+1321
-841
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1321
-841
lines changed

Diff for: .github/dependabot.yml

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
version: 2
22
updates:
3-
- package-ecosystem: maven
4-
directory: "/"
5-
schedule:
6-
interval: daily
7-
time: "04:00"
8-
open-pull-requests-limit: 10
3+
- package-ecosystem: maven
4+
target-branch: "develop"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
day: "saturday"
9+
open-pull-requests-limit: 10
10+
- package-ecosystem: "github-actions"
11+
target-branch: "develop"
12+
directory: "/"
13+
schedule:
14+
interval: "daily"

Diff for: .github/workflows/check-links.yml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Check links in documentation
2+
3+
on:
4+
push:
5+
paths:
6+
- '.github/workflows/check-links.yml'
7+
- 'lychee.toml'
8+
- '**/*.md'
9+
schedule:
10+
# Run on the first of each month at 9:00 AM
11+
- cron: "0 9 1 * *"
12+
workflow_dispatch:
13+
14+
concurrency:
15+
group: "${{ github.workflow }}-${{ github.head_ref }}"
16+
cancel-in-progress: true
17+
18+
jobs:
19+
lychee:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout source code
23+
uses: actions/checkout@v4
24+
with:
25+
submodules: true
26+
fetch-depth: 0
27+
28+
- name: Restore lychee cache
29+
uses: actions/cache@v4
30+
with:
31+
path: .lycheecache
32+
key: cache-lychee-${{ github.sha }}
33+
restore-keys: cache-lychee-
34+
35+
- name: Check links
36+
id: lychee
37+
uses: lycheeverse/[email protected]
38+
with:
39+
fail: true
40+
args: --max-concurrency 1 --cache --no-progress --exclude-all-private './**/*.md'

Diff for: .github/workflows/codeql-analysis.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ jobs:
3535

3636
steps:
3737
- name: Checkout repository
38-
uses: actions/checkout@v2
38+
uses: actions/checkout@v4
3939

4040
# Initializes the CodeQL tools for scanning.
4141
- name: Initialize CodeQL
42-
uses: github/codeql-action/init@v1
42+
uses: github/codeql-action/init@v3
4343
with:
4444
languages: ${{ matrix.language }}
4545
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -50,7 +50,7 @@ jobs:
5050
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
5151
# If this step fails, then you should remove it and run the build manually (see below)
5252
- name: Autobuild
53-
uses: github/codeql-action/autobuild@v1
53+
uses: github/codeql-action/autobuild@v3
5454

5555
# ℹ️ Command-line programs to run using the OS shell.
5656
# 📚 https://git.io/JvXDl
@@ -64,4 +64,4 @@ jobs:
6464
# make release
6565

6666
- name: Perform CodeQL Analysis
67-
uses: github/codeql-action/analyze@v1
67+
uses: github/codeql-action/analyze@v3

Diff for: .github/workflows/heylogs.yml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Heylogs
2+
3+
on: [ push ]
4+
5+
jobs:
6+
badge-job:
7+
if: startsWith(github.repository, 'nbbrd/') && startsWith(github.ref, 'refs/heads/develop')
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout source code
11+
uses: actions/checkout@v4
12+
13+
- name: Setup Java
14+
uses: actions/setup-java@v4
15+
with:
16+
distribution: 'temurin'
17+
java-version: 21
18+
cache: 'maven'
19+
20+
- name: Scan changelog
21+
run: mvn -B -ntp -U com.github.nbbrd.heylogs:heylogs-maven-plugin::scan -Dheylogs.output.file=scan.json -Dheylogs.format.id=json
22+
23+
- name: Create badges endpoint json
24+
run: |
25+
mkdir heylogs
26+
jq '{schemaVersion: 1, label: "unreleased changes", message: "#\(.[0].summary.unreleasedChanges)", color: "E05735", logoColor: "white", namedLogo: "keepachangelog"}' scan.json > heylogs/unreleased-changes.json
27+
28+
- name: Deploy badges endpoint json
29+
uses: peaceiris/actions-gh-pages@v4
30+
with:
31+
github_token: ${{ secrets.GITHUB_TOKEN }}
32+
publish_branch: badges
33+
publish_dir: ./heylogs

Diff for: .github/workflows/java-ea-maven.yml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Java-EA with Maven
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
workflow_dispatch:
8+
9+
jobs:
10+
build-and-test-job:
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
java: [ 21 ]
15+
os: [ ubuntu-latest, macos-latest ]
16+
17+
name: JDK${{ matrix.java }} on ${{ matrix.os }}
18+
runs-on: ${{ matrix.os }}
19+
20+
steps:
21+
- name: Checkout source code
22+
uses: actions/checkout@v4
23+
with:
24+
submodules: true
25+
fetch-depth: 0
26+
27+
- name: Setup Java
28+
uses: actions/setup-java@v4
29+
with:
30+
distribution: 'temurin'
31+
java-version: ${{ matrix.java }}
32+
cache: 'maven'
33+
34+
- name: Build and (headless) test with Maven
35+
uses: smithki/[email protected]
36+
with:
37+
run: mvn -U -B -ntp verify

Diff for: .github/workflows/java8-maven.yml

+83-52
Original file line numberDiff line numberDiff line change
@@ -4,130 +4,161 @@ on: [ push, pull_request ]
44

55
jobs:
66
build-and-test-job:
7+
if: github.event_name == 'pull_request' || startsWith(github.ref, 'refs/heads/develop') || startsWith(github.ref, 'refs/tags/v')
78
strategy:
89
fail-fast: false
910
matrix:
10-
java: [ 8, 11 ]
11-
os: [ ubuntu-latest, macOS-latest, windows-latest ]
12-
experimental: [ false ]
13-
include:
14-
- java: '>11'
15-
os: ubuntu-latest
16-
experimental: true
11+
java: [ 8, 21 ]
12+
os: [ ubuntu-latest, macos-13, windows-latest ]
1713

1814
name: JDK${{ matrix.java }} on ${{ matrix.os }}
1915
runs-on: ${{ matrix.os }}
20-
continue-on-error: ${{ matrix.experimental }}
2116

2217
steps:
2318
- name: Checkout source code
24-
uses: actions/checkout@v2
19+
uses: actions/checkout@v4
2520
with:
2621
submodules: true
22+
fetch-depth: 0
2723

2824
- name: Setup Java
29-
uses: actions/setup-java@v1
25+
uses: actions/setup-java@v4
3026
with:
27+
distribution: 'temurin'
3128
java-version: ${{ matrix.java }}
29+
cache: 'maven'
3230

33-
- name: Setup Maven cache
34-
uses: actions/cache@v1
31+
- name: Pre-download dependencies with Maven
32+
uses: nick-fields/retry@v3
3533
with:
36-
path: ~/.m2
37-
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
38-
restore-keys: ${{ runner.os }}-m2
34+
command: mvn -U -B -ntp dependency:go-offline
35+
max_attempts: 3
36+
timeout_minutes: 5
3937

4038
- name: Build and (headless) test with Maven
41-
uses: GabrielBB/xvfb-action@v1
39+
uses: smithki/xvfb-action@v1.1.2
4240
with:
43-
run: mvn -B -ntp package
41+
run: mvn -U -B -ntp verify
42+
43+
auto-merge-job:
44+
needs: build-and-test-job
45+
if: startsWith(github.repository, 'nbbrd/') && github.event_name == 'pull_request' && github.actor == 'dependabot[bot]'
46+
permissions:
47+
contents: write
48+
pull-requests: write
49+
50+
name: Auto-merge on dependabot PR
51+
runs-on: ubuntu-latest
52+
53+
steps:
54+
- name: Merge PR
55+
uses: nick-fields/retry@v3
56+
with:
57+
command: gh pr merge --auto --rebase "$PR_URL"
58+
max_attempts: 3
59+
timeout_minutes: 5
60+
env:
61+
PR_URL: ${{github.event.pull_request.html_url}}
62+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
4463

4564
snapshot-job:
4665
needs: build-and-test-job
4766
if: startsWith(github.repository, 'nbbrd/') && startsWith(github.ref, 'refs/heads/develop')
4867
strategy:
4968
matrix:
50-
java: [ 11 ]
69+
java: [ 21 ]
5170
os: [ ubuntu-latest ]
5271

5372
name: Snapshot on develop
5473
runs-on: ${{ matrix.os }}
5574

5675
steps:
5776
- name: Checkout source code
58-
uses: actions/checkout@v2
77+
uses: actions/checkout@v4
5978
with:
6079
submodules: true
80+
fetch-depth: 0
6181

6282
- name: Setup Java
63-
uses: actions/setup-java@v1
83+
uses: actions/setup-java@v4
6484
with:
85+
distribution: 'temurin'
6586
java-version: ${{ matrix.java }}
66-
67-
- name: Setup Maven cache
68-
uses: actions/cache@v1
69-
with:
70-
path: ~/.m2
71-
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
72-
restore-keys: ${{ runner.os }}-m2
87+
cache: 'maven'
7388

7489
- name: Deploy snapshot with Maven if settings defined
75-
run: test -f ci.settings.xml && mvn -B -ntp deploy -DskipTests=true -s ci.settings.xml -P base-deploy,snapshot-deploy,!non-deployable-modules
90+
run: test ! -f ci.settings.xml || mvn -B -ntp deploy -DskipTests -s ci.settings.xml -P base-deploy,snapshot-deploy,!non-deployable-modules
7691
env:
7792
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
7893
OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
7994
SIGN_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
8095
SIGN_KEY_PASS: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
8196

97+
- name: Dryrun release assets with Maven
98+
run: mvn -B -ntp install -DskipTests -P full-release -Djreleaser.output.directory=$PWD/out/jreleaser -Djreleaser.dry.run
99+
env:
100+
JRELEASER_GITHUB_TOKEN: ${{ secrets.JRELEASER_GITHUB_TOKEN }}
101+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.MAVEN_GPG_PUBLIC_KEY }}
102+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
103+
JRELEASER_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
104+
105+
- name: Upload JReleaser output
106+
if: always()
107+
uses: actions/upload-artifact@v4
108+
with:
109+
name: assets-snapshot-log
110+
path: |
111+
out/jreleaser/trace.log
112+
out/jreleaser/output.properties
113+
82114
release-job:
83115
needs: build-and-test-job
84116
if: startsWith(github.repository, 'nbbrd/') && startsWith(github.ref, 'refs/tags/v')
85117
strategy:
86118
matrix:
87-
java: [ 11 ]
119+
java: [ 21 ]
88120
os: [ ubuntu-latest ]
89121

90122
name: Release on tag
91123
runs-on: ${{ matrix.os }}
92124

93125
steps:
94126
- name: Checkout source code
95-
uses: actions/checkout@v2
127+
uses: actions/checkout@v4
96128
with:
97129
submodules: true
130+
fetch-depth: 0
98131

99132
- name: Setup Java
100-
uses: actions/setup-java@v1
133+
uses: actions/setup-java@v4
101134
with:
135+
distribution: 'temurin'
102136
java-version: ${{ matrix.java }}
103-
104-
- name: Setup Maven cache
105-
uses: actions/cache@v1
106-
with:
107-
path: ~/.m2
108-
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
109-
restore-keys: ${{ runner.os }}-m2
137+
cache: 'maven'
110138

111139
- name: Deploy with Maven if settings defined
112-
run: test -f ci.settings.xml && mvn -B -ntp deploy -DskipTests=true -s ci.settings.xml -P base-deploy,release-deploy,!non-deployable-modules
140+
run: test ! -f ci.settings.xml || mvn -B -ntp deploy -DskipTests -s ci.settings.xml -P base-deploy,release-deploy,!non-deployable-modules
113141
env:
114142
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
115143
OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
116144
SIGN_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
117145
SIGN_KEY_PASS: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
146+
# Fix https://issues.sonatype.org/browse/OSSRH-66257
147+
MAVEN_OPTS: "--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED"
118148

119-
- name: Build assets with Maven
120-
run: mvn -B -ntp install -DskipTests=true -P base-deploy
121-
env:
122-
SIGN_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
123-
SIGN_KEY_PASS: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
124-
125-
- name: Create dummy file if no assets
126-
run: test -d "binaries" || (mkdir binaries && echo "no assets" > binaries/no_assets.txt)
127-
128-
- name: Create draft release and upload assets
129-
uses: xresloader/upload-to-github-release@v1
149+
- name: Release assets with Maven
150+
run: mvn -B -ntp install -DskipTests -P full-release -Djreleaser.output.directory=$PWD/out/jreleaser
130151
env:
131-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
152+
JRELEASER_GITHUB_TOKEN: ${{ secrets.JRELEASER_GITHUB_TOKEN }}
153+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.MAVEN_GPG_PUBLIC_KEY }}
154+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
155+
JRELEASER_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
156+
157+
- name: Upload JReleaser output
158+
if: always()
159+
uses: actions/upload-artifact@v4
132160
with:
133-
file: 'binaries/*'
161+
name: assets-release-log
162+
path: |
163+
out/jreleaser/trace.log
164+
out/jreleaser/output.properties

Diff for: .gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
target/
2-
/binaries/

0 commit comments

Comments
 (0)