Skip to content

Commit e2c8f64

Browse files
authored
Merge pull request #1130 from lavalink-devs/dev
release v4.1.0
2 parents d9d11a8 + 40a4682 commit e2c8f64

Some content is hidden

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

51 files changed

+1233
-462
lines changed

.github/workflows/build.yml

Lines changed: 84 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,30 @@ on:
1010
- '.github/workflows/docs-pr.yml'
1111
workflow_call:
1212
secrets:
13+
DOCKER_REGISTRY:
14+
required: false
1315
DOCKER_USERNAME:
1416
required: false
1517
DOCKER_TOKEN:
1618
required: false
17-
DOCKER_REGISTRY:
18-
required: false
1919
DOCKER_IMAGE:
2020
required: false
2121
MAVEN_USERNAME:
2222
required: false
2323
MAVEN_PASSWORD:
2424
required: false
25-
ORG_GRADLE_PROJECT_mavenCentralPassword:
25+
MAVEN_CENTRAL_USERNAME:
2626
required: false
27-
ORG_GRADLE_PROJECT_mavenCentralUsername:
27+
MAVEN_CENTRAL_PASSWORD:
2828
required: false
29-
ORG_GRADLE_PROJECT_signingInMemoryKey:
29+
SIGNING_IN_MEMORY_KEY:
3030
required: false
31-
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword:
31+
SIGNING_IN_MEMORY_KEY_PASSWORD:
3232
required: false
3333

3434
jobs:
3535
build:
3636
runs-on: ubuntu-latest
37-
env:
38-
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
39-
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
40-
DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }}
41-
DOCKER_IMAGE: ${{ secrets.DOCKER_IMAGE }}
42-
MAVEN_USERNAME: ${{ vars.MAVEN_USERNAME }}
43-
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
44-
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD }}
45-
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }}
46-
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEY }}
47-
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }}
4837
steps:
4938
- name: Checkout
5039
uses: actions/checkout@v4
@@ -56,56 +45,67 @@ jobs:
5645
java-version: 17
5746

5847
- name: Setup Gradle
59-
uses: gradle/actions/setup-gradle@v3
48+
uses: gradle/actions/setup-gradle@v4
6049

61-
- name: Execute Gradle build
50+
- name: Build Lavalink
6251
run: ./gradlew build
6352

64-
- name: Execute Gradle build
53+
- name: Build Lavalink musl
6554
run: ./gradlew build -PtargetPlatform=musl
6655

6756
- name: Publish to Maven
68-
run: ./gradlew publish -PMAVEN_USERNAME=$MAVEN_USERNAME -PMAVEN_PASSWORD=$MAVEN_PASSWORD
69-
70-
- name: Upload Artifacts
57+
env:
58+
ORG_GRADLE_PROJECT_MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
59+
ORG_GRADLE_PROJECT_MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
60+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
61+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
62+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }}
63+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }}
64+
run: ./gradlew publish
65+
66+
- name: Upload Lavalink.jar
7167
uses: actions/upload-artifact@v4
7268
with:
7369
name: Lavalink.jar
74-
path: |
75-
LavalinkServer/build/libs/Lavalink.jar
76-
LavalinkServer/build/libs/Lavalink-musl.jar
70+
path: LavalinkServer/build/libs/Lavalink.jar
7771

78-
- name: Docker Meta
79-
id: meta
80-
uses: docker/metadata-action@v5
72+
- name: Upload Lavalink-musl.jar
73+
uses: actions/upload-artifact@v4
8174
with:
82-
images: |
83-
ghcr.io/${{ github.repository }}
84-
${{ env.DOCKER_IMAGE }}
85-
tags: |
86-
type=ref,event=branch
87-
type=ref,event=pr
88-
type=semver,pattern={{version}}
89-
type=semver,pattern={{major}}.{{minor}}
90-
type=semver,pattern={{major}}
91-
type=sha,prefix=
75+
name: Lavalink-musl.jar
76+
path: LavalinkServer/build/libs/Lavalink-musl.jar
9277

93-
- name: Docker Meta Alpine
94-
id: meta-alpine
95-
uses: docker/metadata-action@v5
78+
build-docker:
79+
needs: build
80+
runs-on: ubuntu-latest
81+
strategy:
82+
fail-fast: false
83+
matrix:
84+
include:
85+
- name: Ubuntu
86+
dockerfile: LavalinkServer/docker/Dockerfile
87+
suffix: ''
88+
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
89+
artifact: Lavalink.jar
90+
- name: Alpine
91+
dockerfile: LavalinkServer/docker/alpine.Dockerfile
92+
suffix: '-alpine'
93+
platforms: linux/amd64,linux/arm64/v8
94+
artifact: Lavalink-musl.jar
95+
- name: Distroless
96+
dockerfile: LavalinkServer/docker/distroless.Dockerfile
97+
suffix: '-distroless'
98+
platforms: linux/amd64,linux/arm64/v8
99+
artifact: Lavalink.jar
100+
steps:
101+
- name: Checkout
102+
uses: actions/checkout@v4
103+
104+
- name: Download ${{ matrix.artifact }}
105+
uses: actions/download-artifact@v4
96106
with:
97-
images: |
98-
ghcr.io/${{ github.repository }}
99-
${{ env.DOCKER_IMAGE }}
100-
flavor: |
101-
suffix=-alpine,onlatest=true
102-
tags: |
103-
type=ref,event=branch
104-
type=ref,event=pr
105-
type=semver,pattern={{version}}
106-
type=semver,pattern={{major}}.{{minor}}
107-
type=semver,pattern={{major}}
108-
type=sha,prefix=
107+
name: ${{ matrix.artifact }}
108+
path: LavalinkServer/build/libs/
109109

110110
- name: Set up QEMU
111111
uses: docker/setup-qemu-action@v3
@@ -121,29 +121,41 @@ jobs:
121121
password: ${{ secrets.GITHUB_TOKEN }}
122122

123123
- name: Log in to docker registry
124-
if: env.DOCKER_USERNAME && env.DOCKER_TOKEN && env.DOCKER_REGISTRY && env.DOCKER_IMAGE
124+
env:
125+
DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }}
126+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
127+
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
128+
DOCKER_IMAGE: ${{ secrets.DOCKER_IMAGE }}
129+
if: env.DOCKER_REGISTRY != '' && env.DOCKER_USERNAME != '' && env.DOCKER_TOKEN != '' && env.DOCKER_IMAGE != ''
125130
uses: docker/login-action@v3
126131
with:
127-
registry: ${{ env.DOCKER_REGISTRY }}
128-
username: ${{ env.DOCKER_USERNAME }}
129-
password: ${{ env.DOCKER_TOKEN }}
132+
registry: ${{ secrets.DOCKER_REGISTRY }}
133+
username: ${{ secrets.DOCKER_USERNAME }}
134+
password: ${{ secrets.DOCKER_TOKEN }}
130135

131-
- name: Build Ubuntu and Push
132-
uses: docker/build-push-action@v5
136+
- name: Docker Meta ${{ matrix.name }}
137+
id: meta
138+
uses: docker/metadata-action@v5
133139
with:
134-
file: LavalinkServer/docker/Dockerfile
135-
context: .
136-
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
137-
push: true
138-
tags: ${{ steps.meta.outputs.tags }}
139-
labels: ${{ steps.meta.outputs.labels }}
140+
images: |
141+
ghcr.io/${{ github.repository }}
142+
${{ secrets.DOCKER_IMAGE }}
143+
flavor: |
144+
suffix=${{ matrix.suffix }},onlatest=true
145+
tags: |
146+
type=ref,event=branch
147+
type=ref,event=pr
148+
type=semver,pattern={{version}}
149+
type=semver,pattern={{major}}.{{minor}}
150+
type=semver,pattern={{major}}
151+
type=sha,prefix=
140152
141-
- name: Build Alpine and Push
142-
uses: docker/build-push-action@v5
153+
- name: Docker Build ${{ matrix.name }} and Push
154+
uses: docker/build-push-action@v6
143155
with:
144-
file: LavalinkServer/docker/alpine.Dockerfile
156+
file: ${{ matrix.dockerfile }}
145157
context: .
146-
platforms: linux/amd64,linux/arm64/v8
158+
platforms: ${{ matrix.platforms }}
147159
push: true
148-
tags: ${{ steps.meta-alpine.outputs.tags }}
149-
labels: ${{ steps.meta-alpine.outputs.labels }}
160+
tags: ${{ steps.meta.outputs.tags }}
161+
labels: ${{ steps.meta.outputs.labels }}

.github/workflows/docs-pr.yml

Lines changed: 0 additions & 49 deletions
This file was deleted.

.github/workflows/docs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ on:
88
- '.github/workflows/docs.yml'
99

1010
concurrency:
11-
group: pages-${{ github.ref }}
12-
cancel-in-progress: true
11+
group: pages-${{ github.ref }}
12+
cancel-in-progress: true
1313

1414
jobs:
1515
deploy:
@@ -33,7 +33,7 @@ jobs:
3333
mkdocs-material-
3434
- run: pip install -r requirements.txt
3535
working-directory: docs
36-
# - run: mkdocs build --verbose --strict
36+
# - run: mkdocs build --verbose --strict
3737
- run: mkdocs build --verbose
3838
working-directory: docs
3939
- uses: actions/upload-pages-artifact@v3

.github/workflows/release.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Release
22

33
on:
44
release:
5-
types: [published]
5+
types: [ published ]
66

77
jobs:
88
build:
@@ -12,12 +12,12 @@ jobs:
1212
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
1313
DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }}
1414
DOCKER_IMAGE: ${{ secrets.DOCKER_IMAGE }}
15-
MAVEN_USERNAME: ${{ vars.MAVEN_USERNAME }}
15+
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
1616
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
17-
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD }}
18-
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }}
19-
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEY }}
20-
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }}
17+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
18+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
19+
SIGNING_IN_MEMORY_KEY: ${{ secrets.SIGNING_IN_MEMORY_KEY }}
20+
SIGNING_IN_MEMORY_KEY_PASSWORD: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }}
2121

2222
release:
2323
needs: build
@@ -26,15 +26,20 @@ jobs:
2626
- name: Checkout
2727
uses: actions/checkout@v4
2828

29-
- name: Download Artifacts
29+
- name: Download Lavalink.jar
3030
uses: actions/download-artifact@v4
3131
with:
3232
name: Lavalink.jar
3333

34+
- name: Download Lavalink-musl.jar
35+
uses: actions/download-artifact@v4
36+
with:
37+
name: Lavalink-musl.jar
38+
3439
- name: Upload Artifacts to GitHub Release
3540
uses: ncipollo/release-action@v1
3641
with:
37-
artifacts: Lavalink.jar
42+
artifacts: Lavalink.jar,Lavalink-musl.jar
3843
allowUpdates: true
3944
omitBodyDuringUpdate: true
4045
omitDraftDuringUpdate: true

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ build/*
1717
/plugin-api/out/
1818
/protocol/build/
1919
/protocol/out/
20-
gradle.properties
2120
application.yml
2221
LavalinkServer/plugins
2322
.cache/
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
spring:
2+
cloud:
3+
config:
4+
# Enable the use of the Config Server
5+
enabled: true
6+
# Set the application name here
7+
name: Lavalink
8+
# Set profile here (default: default)
9+
profile: node1
10+
# Set the label (git branch/commit id/release) (default: main/master)
11+
label: master
12+
# Fail if no config could be found
13+
fail-fast: true
14+
# Set the username for the Config Server
15+
username: admin
16+
# Set the password for the Config Server
17+
password: "youshallnotpass"
18+
config:
19+
# Replace http://localhost:8888 with the url to your Lavalink Config Server
20+
import: "configserver:http://localhost:8888/"

LavalinkServer/application.yml.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ lavalink:
6464
#proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy
6565
#proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth
6666
#proxyPassword: "" # Password for basic authentication
67+
timeouts:
68+
connectTimeoutMs: 3000
69+
connectionRequestTimeoutMs: 3000
70+
socketTimeoutMs: 3000
6771

6872
metrics:
6973
prometheus:

0 commit comments

Comments
 (0)