Skip to content

Commit f369359

Browse files
committed
Updated maven and github workflows
1 parent b3221c2 commit f369359

File tree

4 files changed

+51
-102
lines changed

4 files changed

+51
-102
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Build Lambda
33
on:
44
push:
55
branches:
6-
- '1.21.5'
6+
- '1.**'
77
pull_request:
88

99
jobs:
@@ -20,13 +20,11 @@ jobs:
2020

2121
env:
2222
SEGMENT_DOWNLOAD_TIMEOUT_MINS: '5'
23+
2324
steps:
2425
- name: Checkout Repository
2526
uses: actions/checkout@v4
2627

27-
- name: Set current date as env variable
28-
run: echo "DATE=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_ENV
29-
3028
- name: Get Short Commit Hash
3129
id: vars
3230
run: echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
@@ -46,30 +44,16 @@ jobs:
4644
file: gradle.properties
4745
all: true
4846

49-
- name: Build Lambda
50-
run: ./gradlew build --no-daemon
51-
52-
- name: Rename Files with Commit Hash
53-
run: |
54-
mv ./build/libs/lambda-${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}.jar ./build/libs/lambda-${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}-${{ env.COMMIT_HASH }}.jar
55-
56-
- name: Upload Lambda
57-
uses: ryand56/r2-upload-action@latest
47+
- name: Publish to Maven
5848
id: upload
59-
with:
60-
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
61-
r2-access-key-id: ${{ secrets.R2_ACCESS_KEY }}
62-
r2-secret-access-key: ${{ secrets.R2_ACCESS_SECRET }}
63-
r2-bucket: ${{ secrets.R2_BUCKET_NAME }}
64-
source-dir: |
65-
./build/libs/lambda-${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}-${{ env.COMMIT_HASH }}.jar
66-
destination-dir: ${{ env.DATE }}-${{ env.COMMIT_HASH }}
49+
run: ./gradlew publish -PmavenType=snapshots -PcommitHash=${{ env.COMMIT_HASH }} -PmavenUsername=${{ secrets.MAVEN_USER }} -PmavenPassword=${{ secrets.MAVEN_TOKEN }}
6750

6851
- name: Generate Summary
6952
if: ${{ steps.upload.outputs.result == 'success' }}
7053
run: |
54+
https://maven.lambda-client.org/snapshots/com/lambda/lambda/1.0.0+1.21.5/lambda-1.0.0+1.21.5.jar
7155
cat << EOF >> $GITHUB_STEP_SUMMARY
72-
### [Lambda ${{ steps.all.outputs.modVersion }} ${{ steps.all.outputs.minecraftVersion }} (${{ env.COMMIT_HASH }})](https://r2-bucket.edouard127.christmas/${{ env.DATE }}-${{ env.COMMIT_HASH }}/lambda-${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}-${{ env.COMMIT_HASH }}.jar)
56+
### [Lambda ${{ steps.all.outputs.modVersion }} ${{ steps.all.outputs.minecraftVersion }} (${{ env.COMMIT_HASH }})](${{ secrets.MAVEN_URL }}/snapshots/com/lambda/lambda/${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}-${{ env.COMMIT_HASH }}/lambda-${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}-${{ env.COMMIT_HASH }}.jar))
7357
EOF
7458
7559
- name: Failover Upload
@@ -79,5 +63,3 @@ jobs:
7963
name: lambda-nightly
8064
path: |
8165
/build/libs/lambda-*-${{ steps.all.outputs.modVersion }}+${{ steps.all.outputs.minecraftVersion }}-${{ env.COMMIT_HASH }}.jar
82-
83-

.github/workflows/publish-maven.yml

Lines changed: 10 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,11 @@ on:
66
- '*'
77

88
jobs:
9-
check-runner:
10-
name: Check Runner Availability
11-
runs-on: ubuntu-latest
12-
13-
outputs:
14-
runner-label: ${{ steps.set-runner.outputs.runner-label }}
15-
16-
steps:
17-
- name: Set runner
18-
id: set-runner
19-
run: |
20-
runners=$(curl -v -s -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.REPO_ACCESS_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/actions/runners" --http1.1)
21-
if [ $? -ne 0 ]; then
22-
echo "Error: Failed to fetch runners from GitHub API" >&2
23-
exit 1
24-
fi
25-
26-
runners_count=$(echo "$runners" | jq '.runners | length')
27-
if [ "$runners_count" -eq 0 ]; then
28-
echo "No runners available or failed to retrieve runners." >&2
29-
echo "runner-label=ubuntu-latest" >> $GITHUB_OUTPUT
30-
exit 0
31-
fi
32-
33-
available=$(echo "$runners" | jq '.runners[] | select(.status == "online" and .busy == false and .labels[] .name == "self-hosted")')
34-
if [ $? -ne 0 ]; then
35-
echo "Error: Failed to parse JSON response" >&2
36-
exit 1
37-
fi
38-
39-
if [ -n "$available" ]; then
40-
echo "runner-label=lambda-linux-runner" >> $GITHUB_OUTPUT
41-
else
42-
echo "runner-label=ubuntu-latest" >> $GITHUB_OUTPUT
43-
fi
44-
459
publish:
4610
concurrency:
4711
group: ${{ github.workflow }}-${{ github.ref }}
4812
cancel-in-progress: true
4913

50-
needs: check-runner
5114
runs-on: ${{ needs.check-runner.outputs.runner-label }}
5215

5316
name: Publish artifacts to maven
@@ -61,6 +24,15 @@ jobs:
6124
with:
6225
distribution: 'temurin'
6326
java-version: '21'
27+
architecture: x64
28+
cache: 'gradle'
29+
30+
- name: Read Gradle Properties
31+
uses: BrycensRanch/[email protected]
32+
id: all
33+
with:
34+
file: gradle.properties
35+
all: true
6436

6537
- name: Publish to Maven
66-
run: ./gradlew publish -PreposiliteUsername=${{ secrets.MAVEN_USER }} -PreposilitePassword=${{ secrets.MAVEN_TOKEN }}
38+
run: ./gradlew publish -PmavenType=releases -PmavenUsername=${{ secrets.MAVEN_USER }} -PmavenPassword=${{ secrets.MAVEN_TOKEN }}

.github/workflows/release.yml

Lines changed: 5 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,57 +6,23 @@ on:
66
- '*'
77

88
jobs:
9-
check-runner:
10-
name: Check Runner Availability
11-
runs-on: ubuntu-latest
12-
13-
outputs:
14-
runner-label: ${{ steps.set-runner.outputs.runner-label }}
15-
16-
steps:
17-
- name: Set runner
18-
id: set-runner
19-
run: |
20-
runners=$(curl -v -s -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.REPO_ACCESS_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/actions/runners" --http1.1)
21-
if [ $? -ne 0 ]; then
22-
echo "Error: Failed to fetch runners from GitHub API" >&2
23-
exit 1
24-
fi
25-
26-
runners_count=$(echo "$runners" | jq '.runners | length')
27-
if [ "$runners_count" -eq 0 ]; then
28-
echo "No runners available or failed to retrieve runners." >&2
29-
echo "runner-label=ubuntu-latest" >> $GITHUB_OUTPUT
30-
exit 0
31-
fi
32-
33-
available=$(echo "$runners" | jq '.runners[] | select(.status == "online" and .busy == false and .labels[] .name == "self-hosted")')
34-
if [ $? -ne 0 ]; then
35-
echo "Error: Failed to parse JSON response" >&2
36-
exit 1
37-
fi
38-
39-
if [ -n "$available" ]; then
40-
echo "runner-label=lambda-linux-runner" >> $GITHUB_OUTPUT
41-
else
42-
echo "runner-label=ubuntu-latest" >> $GITHUB_OUTPUT
43-
fi
449
build:
4510
concurrency:
4611
group: ${{ github.workflow }}-${{ github.ref }}
4712
cancel-in-progress: true
4813

49-
needs: check-runner
50-
runs-on: ${{ needs.check-runner.outputs.runner-label }}
51-
5214
name: Build and Release Lambda
15+
runs-on: ubuntu-latest
16+
5317
permissions:
5418
contents: write
19+
5520
env:
5621
SEGMENT_DOWNLOAD_TIMEOUT_MINS: '5'
22+
5723
steps:
5824
- name: Checkout Repository
59-
uses: actions/checkout@v4.1.1
25+
uses: actions/checkout@v4
6026

6127
- name: Set-Up JDK 21
6228
uses: actions/setup-java@v4

build.gradle.kts

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,42 @@ java {
233233
}
234234

235235
publishing {
236+
val publishType = project.findProperty("mavenType").toString()
237+
val commitHash = project.findProperty("commitHash").toString()
238+
val mavenUrl = if (project.findProperty("mavenType") == "releases") "https://maven.lambda-client.org/releases" else "https://maven.lambda-client.org/snapshots"
239+
240+
val isSnapshots = publishType == "snapshots"
241+
val isValidCommit = commitHash.matches(Regex("[A-Fa-f0-9]+"))
242+
243+
if (!isSnapshots && isValidCommit)
244+
println("WARNING: Commit hash for snapshot releases was supplied but the publish type is 'releases'. The commit will be omitted.")
245+
else if (isSnapshots && !isValidCommit)
246+
error("The maven publish type is set to 'snapshots' but no valid commit hash was supplied.")
247+
236248
publications {
237249
create<MavenPublication>("maven") {
238250
groupId = mavenGroup
239251
artifactId = modId
240-
version = "$modVersion+$minecraftVersion"
252+
version = if (isSnapshots) "$modVersion+$minecraftVersion-$commitHash"
253+
else "$modVersion+$minecraftVersion"
241254

242255
from(components["java"])
243256
}
244257
}
258+
259+
repositories {
260+
maven(mavenUrl) {
261+
name = "lambda-reposilite"
262+
263+
credentials {
264+
username = project.findProperty("mavenUsername").toString()
265+
password = project.findProperty("mavenPassword").toString()
266+
}
267+
268+
269+
authentication {
270+
create<BasicAuthentication>("basic")
271+
}
272+
}
273+
}
245274
}

0 commit comments

Comments
 (0)