diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4b9db6e..3854d04 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -10,10 +10,15 @@ on:
branches:
- "main"
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
jobs:
package:
name: Package
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
+ timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
@@ -32,7 +37,7 @@ jobs:
- name: Upload test reports
if: always()
- uses: actions/upload-artifact@c6a366c94c3e0affe28c06c8df20a878f24da3cf # v3
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: junit-reports
path: |
@@ -40,7 +45,7 @@ jobs:
if-no-files-found: ignore
- name: Upload Maven artifacts
- uses: actions/upload-artifact@c6a366c94c3e0affe28c06c8df20a878f24da3cf # v3
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: maven-artifacts
path: |
@@ -48,11 +53,40 @@ jobs:
startup.sh
if-no-files-found: error
- docker-main:
- name: Docker Build and Push (main)
- runs-on: ubuntu-latest
+ maven-publish:
+ name: Publish Maven Package
+ runs-on: ubuntu-24.04
+ timeout-minutes: 15
needs: package
- if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
+ if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+
+ - name: Set up JDK
+ uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
+ with:
+ distribution: 'temurin'
+ java-version: '25'
+ cache: 'maven'
+ server-id: gitea
+ server-username: REGISTRY_USER
+ server-password: REGISTRY_PASSWORD
+
+ - name: Publish Maven package
+ run: |
+ chmod +x ./mvnw
+ ./mvnw --batch-mode deploy -DskipTests
+ env:
+ REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
+ REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
+
+ docker:
+ name: Docker Build and Push
+ runs-on: ubuntu-24.04
+ timeout-minutes: 15
+ needs: package
+ if: ${{ github.event_name == 'push' }}
permissions:
contents: read
packages: write
@@ -61,51 +95,25 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download build artifacts
- uses: actions/download-artifact@a9bc5e6ef2cb54c177f32aa5726adaa15e7e2d59 # v3
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: maven-artifacts
path: .
- - name: Log in to registry
- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
- with:
- registry: ${{ secrets.REGISTRY_URL }}
- username: ${{ secrets.REGISTRY_USER }}
- password: ${{ secrets.REGISTRY_PASSWORD }}
-
- - name: Build and push (main)
- uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
- with:
- context: .
- file: ./Dockerfile
- push: true
- tags: "${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality:main"
-
- docker-release:
- name: Docker Build and Push (release)
- runs-on: ubuntu-latest
- needs: package
- if: ${{ startsWith(github.ref, 'refs/tags/') }}
- permissions:
- contents: read
- packages: write
- steps:
- - name: Checkout
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
-
- - name: Download build artifacts
- uses: actions/download-artifact@a9bc5e6ef2cb54c177f32aa5726adaa15e7e2d59 # v3
- with:
- name: maven-artifacts
- path: .
-
- - name: Compute release version
- id: rel
+ - name: Compute Docker tags
+ id: meta
shell: bash
run: |
- # Strip leading 'v' if present (e.g., v1.2.3 -> 1.2.3)
- ver="${GITHUB_REF_NAME#v}"
- echo "version=$ver" >> "$GITHUB_OUTPUT"
+ REGISTRY="${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality"
+ if [[ "$GITHUB_REF" == refs/tags/* ]]; then
+ ver="${GITHUB_REF_NAME#v}"
+ echo "tags=${REGISTRY}:${ver},${REGISTRY}:latest" >> "$GITHUB_OUTPUT"
+ else
+ echo "tags=${REGISTRY}:main" >> "$GITHUB_OUTPUT"
+ fi
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v4
- name: Log in to registry
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
@@ -114,12 +122,12 @@ jobs:
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- - name: Build and push (release + latest)
+ - name: Build and push
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
with:
context: .
file: ./Dockerfile
push: true
- tags: |
- ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality:${{ steps.rel.outputs.version }}
- ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality:latest
+ tags: ${{ steps.meta.outputs.tags }}
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
diff --git a/pom.xml b/pom.xml
index 0b7ca0b..fd37fa0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,7 @@
arbjergDev-releases
Lavalink Repository
- https://maven.lavalink.dev/releases
+ https://maven.lavalink.dev/snapshots
@@ -154,7 +154,7 @@
dev.lavalink.youtube
v2
- 1.18.2
+ f45bbb7aebfcbc1c553769e04af6cd43afa8b7c3-SNAPSHOT
club.minnced