Skip to content

Commit a7d06ab

Browse files
committed
Add initial project structure with Gradle build configuration and logging system
1 parent cf991a2 commit a7d06ab

19 files changed

Lines changed: 1108 additions & 0 deletions

.github/workflows/packager-jar.yml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: Publish JAR to GitHub Pages
2+
on:
3+
push:
4+
branches:
5+
- main
6+
permissions:
7+
contents: write
8+
pages: write
9+
id-token: write
10+
jobs:
11+
publish-jar:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
with:
17+
token: ${{ secrets.GITHUB_TOKEN }}
18+
fetch-depth: 0
19+
- name: Set up JDK 17
20+
uses: actions/setup-java@v4
21+
with:
22+
java-version: '17'
23+
distribution: 'temurin'
24+
- name: Grant execute permission for gradlew
25+
run: chmod +x gradlew
26+
- name: Extract version from build.gradle
27+
id: extract_version
28+
run: |
29+
VERSION=$(./gradlew -q printVersion)
30+
echo "version=$VERSION" >> $GITHUB_OUTPUT
31+
echo "Extracted version: $VERSION"
32+
- name: Check if tag already exists
33+
id: check_tag
34+
run: |
35+
if git tag -l "${{ steps.extract_version.outputs.version }}" | grep -q "${{ steps.extract_version.outputs.version }}"; then
36+
echo "tag_exists=true" >> $GITHUB_OUTPUT
37+
echo "Tag ${{ steps.extract_version.outputs.version }} already exists and will be overwritten"
38+
else
39+
echo "tag_exists=false" >> $GITHUB_OUTPUT
40+
echo "Tag ${{ steps.extract_version.outputs.version }} does not exist"
41+
fi
42+
- name: Publish Maven artifacts to local repo
43+
run: ./gradlew publish
44+
env:
45+
GROUP_ID: io.nodelink.server
46+
ARTIFACT_ID: NodeLink-Server
47+
VERSION: ${{ steps.extract_version.outputs.version }}
48+
- name: Checkout target repository
49+
uses: actions/checkout@v4
50+
with:
51+
repository: nodelink-project/nodelink-project.github.io
52+
token: ${{ secrets.GH_TOKEN }}
53+
path: target-repo
54+
- name: Clean existing version folder
55+
run: |
56+
if [ -d "target-repo/NodeLink-Server/jar" ]; then
57+
echo "Cleaning existing NodeLink-Server/jar folder..."
58+
rm -rf target-repo/nodelink-server/jar
59+
fi
60+
mkdir -p target-repo/nodelink-server/jar
61+
- name: Copy new artifacts
62+
run: |
63+
cp -r build/repo/* target-repo/nodelink-server/jar/
64+
- name: Deploy to GitHub Pages
65+
run: |
66+
cd target-repo
67+
git config --local user.email "action@github.com"
68+
git config --local user.name "GitHub Action"
69+
git add .
70+
if git diff --staged --quiet; then
71+
echo "No changes to commit"
72+
else
73+
git commit -m "Update Orbit artifacts for version ${{ steps.extract_version.outputs.version }}"
74+
git push
75+
fi
76+
- name: Create and push Git tag (with override)
77+
run: |
78+
git config --local user.email "action@github.com"
79+
git config --local user.name "GitHub Action"
80+
81+
# S'assurer qu'on pousse vers le bon repository
82+
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
83+
84+
# Supprimer le tag localement s'il existe
85+
git tag -d "${{ steps.extract_version.outputs.version }}" || true
86+
87+
# Supprimer le tag distant s'il existe
88+
git push origin --delete "${{ steps.extract_version.outputs.version }}" || true
89+
90+
# Créer et pousser le nouveau tag
91+
git tag -a "${{ steps.extract_version.outputs.version }}" -m "Release version ${{ steps.extract_version.outputs.version }}"
92+
git push origin "${{ steps.extract_version.outputs.version }}"
93+
env:
94+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
.gradle
2+
build/
3+
!gradle/wrapper/gradle-wrapper.jar
4+
!**/src/main/**/build/
5+
!**/src/test/**/build/
6+
.kotlin
7+
8+
### IntelliJ IDEA ###
9+
.idea/modules.xml
10+
.idea/jarRepositories.xml
11+
.idea/compiler.xml
12+
.idea/libraries/
13+
*.iws
14+
*.iml
15+
*.ipr
16+
out/
17+
!**/src/main/**/out/
18+
!**/src/test/**/out/
19+
20+
### Eclipse ###
21+
.apt_generated
22+
.classpath
23+
.factorypath
24+
.project
25+
.settings
26+
.springBeans
27+
.sts4-cache
28+
bin/
29+
!**/src/main/**/bin/
30+
!**/src/test/**/bin/
31+
32+
### NetBeans ###
33+
/nbproject/private/
34+
/nbbuild/
35+
/dist/
36+
/nbdist/
37+
/.nb-gradle/
38+
39+
### VS Code ###
40+
.vscode/
41+
42+
### Mac OS ###
43+
.DS_Store

.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/copilot.data.migration.ask2agent.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/discord.xml

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
plugins {
2+
id 'java'
3+
id 'application'
4+
id 'com.gradleup.shadow' version '8.3.0'
5+
id 'maven-publish'
6+
}
7+
8+
application {
9+
mainClass = 'io.nodelink.server.NodeLink'
10+
}
11+
12+
task generateVersionClass {
13+
doLast {
14+
def versionFile = file("$buildDir/generated/source/version/io/nodelink/server/update/Version.java")
15+
versionFile.parentFile.mkdirs()
16+
versionFile.text = """
17+
package io.nodelink.server.update;
18+
19+
public class Version {
20+
public static final String VERSION = "${project.version}";
21+
}
22+
"""
23+
}
24+
}
25+
26+
compileJava.dependsOn generateVersionClass
27+
sourceSets.main.java.srcDir "$buildDir/generated/source/version"
28+
29+
tasks.register('printVersion') {
30+
doLast {
31+
println project.version
32+
}
33+
}
34+
35+
shadowJar {
36+
archiveClassifier.set('fat')
37+
38+
39+
manifest {
40+
attributes 'Main-Class': 'io.nodelink.server.NodeLink'
41+
}
42+
}
43+
44+
group = 'io.nodelink.server'
45+
version = '0.1.0'
46+
47+
repositories {
48+
mavenCentral()
49+
}
50+
51+
dependencies {
52+
testImplementation platform('org.junit:junit-bom:5.10.0')
53+
testImplementation 'org.junit.jupiter:junit-jupiter'
54+
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
55+
56+
implementation 'com.google.code.gson:gson:2.10.1'
57+
implementation 'org.jline:jline:3.30.0'
58+
implementation 'io.projectreactor:reactor-core:3.8.1'
59+
}
60+
61+
test {
62+
useJUnitPlatform()
63+
}
64+
65+
tasks.jar {
66+
manifest {
67+
attributes 'Main-Class': 'io.nodelink.server.NodeLink'
68+
}
69+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
70+
}
71+
72+
tasks.test {
73+
useJUnitPlatform()
74+
}
75+
76+
test {
77+
useJUnitPlatform()
78+
}
79+
80+
java {
81+
withSourcesJar()
82+
}
83+
84+
publishing {
85+
publications {
86+
mavenJava(MavenPublication) {
87+
from components.java
88+
89+
groupId = project.group.toString()
90+
artifactId = 'NodeLink-Server'
91+
version = project.version.toString()
92+
pom {
93+
name = 'NodeLink-Server'
94+
description = 'Change later'
95+
url = 'https://nodelink-project.github.io/NodeLink-Server/'
96+
licenses {
97+
license {
98+
name = 'GPL-3.0'
99+
url = 'https://raw.githubusercontent.com/NodeLink-Project/NodeLink-Server/refs/heads/main/LICENSE'
100+
}
101+
}
102+
developers {
103+
developer {
104+
id = 'sandro642'
105+
name = 'Sandro'
106+
email = 'sandro33810@gmail.com'
107+
}
108+
}
109+
scm {
110+
connection = 'scm:git:git://github.com/NodeLink-Project/NodeLink-Server.git'
111+
developerConnection = 'scm:git:ssh://github.com/NodeLink-Project/NodeLink-Server.git'
112+
url = 'https://github.com/NodeLink-Project/NodeLink-Server'
113+
}
114+
}
115+
}
116+
}
117+
repositories {
118+
maven {
119+
name = 'LocalRepo'
120+
url = uri(layout.buildDirectory.dir('repo'))
121+
}
122+
}
123+
}

gradle/wrapper/gradle-wrapper.jar

59.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)