From a6c74d4443105044461b0b0abf35845013435502 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sat, 24 May 2025 23:08:56 +0000 Subject: [PATCH 01/66] workflows (#2) (#3) Reviewed-on: https://gitea.hithomelabs.com/Hithomelabs/CFTunnels/pulls/2 Co-authored-by: hitanshu310 Co-committed-by: hitanshu310 Reviewed-on: https://gitea.hithomelabs.com/Hithomelabs/CFTunnels/pulls/3 Co-authored-by: hitanshu310 Co-committed-by: hitanshu310 --- .gitea/workflows/test_image_build_push.yml | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .gitea/workflows/test_image_build_push.yml diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml new file mode 100644 index 0000000..f5805cb --- /dev/null +++ b/.gitea/workflows/test_image_build_push.yml @@ -0,0 +1,34 @@ +name: sample gradle build and test +run-name: Build started by $ {{gitea.actor}} +on: + push: + branches: [test] + pull_request: + branches: [test] +jobs: + build: + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: JDK setup + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '17' + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 + - name: Check secrets + run: echo "my secret is ${{ secrets.TOKEN }}" + - name: Log in to Gitea Docker Registry + uses: docker/login-action@v3 + with: + registry: 'http://192.168.0.100:8928' + username: hitanshu + password: ${{ secrets.TOKEN }} + - name: Gradle build + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:latest + - name: Push to Gitea Registry + run: docker push 192.168.0.100:8928/hithomelabs/cftunnels:latest -- 2.45.2 From a5df219e502be3dd866b2d81e9b48444bbe5e47b Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sun, 25 May 2025 23:32:39 +0530 Subject: [PATCH 02/66] Making changes to workflow pipeline --- .gitea/workflows/test_image_build_push.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index f5805cb..fac82f9 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -20,8 +20,6 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - - name: Check secrets - run: echo "my secret is ${{ secrets.TOKEN }}" - name: Log in to Gitea Docker Registry uses: docker/login-action@v3 with: @@ -29,6 +27,6 @@ jobs: username: hitanshu password: ${{ secrets.TOKEN }} - name: Gradle build - run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:latest + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:test - name: Push to Gitea Registry - run: docker push 192.168.0.100:8928/hithomelabs/cftunnels:latest + run: docker push 192.168.0.100:8928/hithomelabs/cftunnels:test -- 2.45.2 From 27457eb4a77d50e990d5edfbb42343cf26414053 Mon Sep 17 00:00:00 2001 From: Kruti Shah Date: Tue, 27 May 2025 00:46:57 +0530 Subject: [PATCH 03/66] Bruno api request and env changes --- CFTunnels/Get tunnels.bru | 2 +- CFTunnels/Tunnel.bru | 2 +- CFTunnels/Write ingress.bru | 14 +++++++++++--- CFTunnels/delete mapping.bru | 12 ++++++++++-- CFTunnels/environments/CFTunnels Local.bru | 4 ++++ CFTunnels/environments/CFTunnels.bru | 1 + 6 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 CFTunnels/environments/CFTunnels Local.bru diff --git a/CFTunnels/Get tunnels.bru b/CFTunnels/Get tunnels.bru index 14d6916..b3cb95a 100644 --- a/CFTunnels/Get tunnels.bru +++ b/CFTunnels/Get tunnels.bru @@ -5,7 +5,7 @@ meta { } get { - url: http://localhost8080/cloudflare/tunnels + url: {{base_url}}cloudflare/tunnels body: none auth: none } diff --git a/CFTunnels/Tunnel.bru b/CFTunnels/Tunnel.bru index 2944af1..d19374e 100644 --- a/CFTunnels/Tunnel.bru +++ b/CFTunnels/Tunnel.bru @@ -5,7 +5,7 @@ meta { } get { - url: http://localhost:8080/cloudflare/tunnel/{{tunnel_id}} + url: {{base_url}}cloudflare/tunnel/{{tunnel_id}} body: none auth: none } diff --git a/CFTunnels/Write ingress.bru b/CFTunnels/Write ingress.bru index 343a4c4..61f4ebc 100644 --- a/CFTunnels/Write ingress.bru +++ b/CFTunnels/Write ingress.bru @@ -4,8 +4,16 @@ meta { seq: 2 } -post { - url: http://localhost:8080/cloudflare/tunnel/50df9101-f625-4618-b7c5-100338a57124 - body: none +put { + url: {{base_url}}cloudflare/tunnel/{{tunnel_id}}/add + body: json auth: none } + +body:json { + { + "service": "http://192.168.0.100:3457", + "hostname": "random.hithomelabs.com", + "originRequest": {} + } +} diff --git a/CFTunnels/delete mapping.bru b/CFTunnels/delete mapping.bru index 3afa061..857a43e 100644 --- a/CFTunnels/delete mapping.bru +++ b/CFTunnels/delete mapping.bru @@ -5,7 +5,15 @@ meta { } put { - url: http://localhost:8080/cloudflare/tunnel/50df9101-f625-4618-b7c5-100338a57124/add - body: none + url: {{base_url}}cloudflare/tunnel/{{tunnel_id}}/delete + body: json auth: none } + +body:json { + { + "service": "http://192.168.0.100:6000", + "hostname": "random.hithomelabs.com", + "originRequest": {} + } +} diff --git a/CFTunnels/environments/CFTunnels Local.bru b/CFTunnels/environments/CFTunnels Local.bru new file mode 100644 index 0000000..9e83a22 --- /dev/null +++ b/CFTunnels/environments/CFTunnels Local.bru @@ -0,0 +1,4 @@ +vars { + tunnel_id: 50df9101-f625-4618-b7c5-100338a57124 + base_url: http://localhost:8080/ +} diff --git a/CFTunnels/environments/CFTunnels.bru b/CFTunnels/environments/CFTunnels.bru index fdb44d8..1c61ef6 100644 --- a/CFTunnels/environments/CFTunnels.bru +++ b/CFTunnels/environments/CFTunnels.bru @@ -1,3 +1,4 @@ vars { tunnel_id: 50df9101-f625-4618-b7c5-100338a57124 + base_url: https://testcf.hithomelabs.com/ } -- 2.45.2 From d3f0797e333542e81493dfbd8b92244e33806e51 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 27 May 2025 01:08:07 +0530 Subject: [PATCH 04/66] Adding field path to ingress --- .../java/com/hithomelabs/CFTunnels/Models/Ingress.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/hithomelabs/CFTunnels/Models/Ingress.java b/src/main/java/com/hithomelabs/CFTunnels/Models/Ingress.java index 8adcc89..7c6c7be 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Models/Ingress.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Models/Ingress.java @@ -8,6 +8,16 @@ public class Ingress { private String service; private String hostname; private Map originRequest; + private String path; + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } public static boolean deleteByHostName(List ingressList, String toBeDeleted){ return ingressList.removeIf(ingress -> ingress.getHostname() != null && ingress.getHostname().equals(toBeDeleted)); -- 2.45.2 From 585dd26a7be3fa5c5b7378a0ca583bfe47727b9d Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 28 May 2025 18:55:38 +0530 Subject: [PATCH 05/66] Workflow to only build on PR and building an image only on push to test --- .gitea/workflows/test_build.yml | 20 ++++++++++++++++++++ .gitea/workflows/test_image_build_push.yml | 3 --- 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 .gitea/workflows/test_build.yml diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml new file mode 100644 index 0000000..0a4e7d0 --- /dev/null +++ b/.gitea/workflows/test_build.yml @@ -0,0 +1,20 @@ +name: sample gradle build and test +run-name: Build started by $ {{gitea.actor}} +on: + pull_request: + branches: [test] +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: JDK setup + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '17' + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 + - name: Gradle build + run: /gradlew build --debug \ No newline at end of file diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index fac82f9..f45a5a8 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -3,9 +3,6 @@ run-name: Build started by $ {{gitea.actor}} on: push: branches: [test] - pull_request: - branches: [test] -jobs: build: runs-on: ubuntu-latest container: -- 2.45.2 From 882b12781832c50ea57d0fbcb582f689606949d5 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 28 May 2025 19:01:11 +0530 Subject: [PATCH 06/66] Fixing issue related to not beaing able to execute gradlew --- .gitea/workflows/test_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index 0a4e7d0..05e8adb 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -17,4 +17,4 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - name: Gradle build - run: /gradlew build --debug \ No newline at end of file + run: ./gradlew build --debug \ No newline at end of file -- 2.45.2 From 4483bf5a1b359c4b104b05fe912cf6f878d78ffd Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 28 May 2025 19:15:50 +0530 Subject: [PATCH 07/66] Adding env agnostic docker compose file --- .env.example | 4 ++++ docker-compose.yaml | 12 ++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 .env.example create mode 100644 docker-compose.yaml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..08c0845 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +CLOUDFLARE_ACCOUNT_ID="" +CLOUDFLARE_API_KEY="" +CLOUDFLARE_EMAIL="" +ENV="" \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..1c03e48 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,12 @@ +services: + app: + image: gitea.hithomelabs.com/hithomelabs/cftunnels:${ENV} + container_name: cftunnels_${ENV} + environment: + - CLOUDFLARE_ACCOUNT_ID=${CLOUDFLARE_ACCOUNT_ID} + - CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY} + - CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL} + - ENV=${ENV} + ports: + - 5002:8080 + restart: unless-stopped \ No newline at end of file -- 2.45.2 From 87f779450dcc78647f4f3170a19301a36c13f294 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 28 May 2025 20:39:53 +0530 Subject: [PATCH 08/66] Changing open api springdoc version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 663b328..467f49e 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ repositories { } dependencies { - implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.0.3' + implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.8' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' -- 2.45.2 From 8bc84a3202845347753892dfcb20cbec1a2a3d67 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 28 May 2025 23:54:27 +0530 Subject: [PATCH 09/66] Changing some bruno env variables --- CFTunnels/Get tunnels.bru | 2 +- CFTunnels/Tunnel.bru | 2 +- CFTunnels/Write ingress.bru | 2 +- CFTunnels/delete mapping.bru | 2 +- CFTunnels/environments/CFTunnels Local.bru | 2 +- CFTunnels/environments/CFTunnels.bru | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CFTunnels/Get tunnels.bru b/CFTunnels/Get tunnels.bru index b3cb95a..231ee08 100644 --- a/CFTunnels/Get tunnels.bru +++ b/CFTunnels/Get tunnels.bru @@ -5,7 +5,7 @@ meta { } get { - url: {{base_url}}cloudflare/tunnels + url: {{base_url}}/cloudflare/tunnels body: none auth: none } diff --git a/CFTunnels/Tunnel.bru b/CFTunnels/Tunnel.bru index d19374e..826b583 100644 --- a/CFTunnels/Tunnel.bru +++ b/CFTunnels/Tunnel.bru @@ -5,7 +5,7 @@ meta { } get { - url: {{base_url}}cloudflare/tunnel/{{tunnel_id}} + url: {{base_url}}/cloudflare/tunnel/{{tunnel_id}} body: none auth: none } diff --git a/CFTunnels/Write ingress.bru b/CFTunnels/Write ingress.bru index 61f4ebc..9930a0b 100644 --- a/CFTunnels/Write ingress.bru +++ b/CFTunnels/Write ingress.bru @@ -5,7 +5,7 @@ meta { } put { - url: {{base_url}}cloudflare/tunnel/{{tunnel_id}}/add + url: {{base_url}}/cloudflare/tunnel/{{tunnel_id}}/add body: json auth: none } diff --git a/CFTunnels/delete mapping.bru b/CFTunnels/delete mapping.bru index 857a43e..c9e3dbb 100644 --- a/CFTunnels/delete mapping.bru +++ b/CFTunnels/delete mapping.bru @@ -5,7 +5,7 @@ meta { } put { - url: {{base_url}}cloudflare/tunnel/{{tunnel_id}}/delete + url: {{base_url}}/cloudflare/tunnel/{{tunnel_id}}/delete body: json auth: none } diff --git a/CFTunnels/environments/CFTunnels Local.bru b/CFTunnels/environments/CFTunnels Local.bru index 9e83a22..6d2b6b0 100644 --- a/CFTunnels/environments/CFTunnels Local.bru +++ b/CFTunnels/environments/CFTunnels Local.bru @@ -1,4 +1,4 @@ vars { tunnel_id: 50df9101-f625-4618-b7c5-100338a57124 - base_url: http://localhost:8080/ + base_url: http://localhost:8080 } diff --git a/CFTunnels/environments/CFTunnels.bru b/CFTunnels/environments/CFTunnels.bru index 1c61ef6..d8219ab 100644 --- a/CFTunnels/environments/CFTunnels.bru +++ b/CFTunnels/environments/CFTunnels.bru @@ -1,4 +1,4 @@ vars { tunnel_id: 50df9101-f625-4618-b7c5-100338a57124 - base_url: https://testcf.hithomelabs.com/ + base_url: https://testcf.hithomelabs.com } -- 2.45.2 From 6cd3524ca0b67344004dee16c27a8e5d167d0b54 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 29 May 2025 00:13:49 +0530 Subject: [PATCH 10/66] Fixing broken image creation --- .gitea/workflows/test_image_build_push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index f45a5a8..e4cdd2f 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -3,6 +3,7 @@ run-name: Build started by $ {{gitea.actor}} on: push: branches: [test] +jobs: build: runs-on: ubuntu-latest container: -- 2.45.2 From ec7d3299dfc2fd646f4fbe0aae57021611b72c29 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sun, 1 Jun 2025 17:29:24 +0530 Subject: [PATCH 11/66] Changes derver in OpenAPI Config to avoid CORS --- build.gradle | 2 +- .../CFTunnels/Config/OpenApiConfig.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java diff --git a/build.gradle b/build.gradle index 467f49e..aaa90d3 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ repositories { } dependencies { - implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.8' + implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.5' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' diff --git a/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java b/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java new file mode 100644 index 0000000..0b2aa4b --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java @@ -0,0 +1,22 @@ +package com.hithomelabs.CFTunnels.Config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.servers.Server; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; + +@Configuration +public class OpenApiConfig { + + @Bean + public OpenAPI openAPI(){ + Server httpsServer = new Server().url("https://testcf.hithomelabs.com"); + OpenAPI openApi = new OpenAPI(); + ArrayList servers = new ArrayList<>(); + servers.add(httpsServer); + openApi.setServers(servers); + return openApi; + } +} -- 2.45.2 From c5d01ece01327baa7dbc47f09882d0225b57e50d Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 4 Jun 2025 01:27:34 +0530 Subject: [PATCH 12/66] Adding profiles for different OpenAPI server URLS in different environments --- .../com/hithomelabs/CFTunnels/Config/OpenApiConfig.java | 6 +++++- src/main/resources/application-local.properties | 1 + src/main/resources/application-prod.properties | 1 + src/main/resources/application-test.properties | 1 + src/main/resources/application.properties | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/application-local.properties create mode 100644 src/main/resources/application-prod.properties create mode 100644 src/main/resources/application-test.properties diff --git a/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java b/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java index 0b2aa4b..e24e6f5 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java @@ -2,6 +2,7 @@ package com.hithomelabs.CFTunnels.Config; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.servers.Server; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -10,9 +11,12 @@ import java.util.ArrayList; @Configuration public class OpenApiConfig { + @Value("${api.baseUrl}") + private String baseUrl; + @Bean public OpenAPI openAPI(){ - Server httpsServer = new Server().url("https://testcf.hithomelabs.com"); + Server httpsServer = new Server().url(baseUrl); OpenAPI openApi = new OpenAPI(); ArrayList servers = new ArrayList<>(); servers.add(httpsServer); diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties new file mode 100644 index 0000000..fdb25ce --- /dev/null +++ b/src/main/resources/application-local.properties @@ -0,0 +1 @@ +api.baseUrl=http://localhost:8080 \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties new file mode 100644 index 0000000..dec0f4b --- /dev/null +++ b/src/main/resources/application-prod.properties @@ -0,0 +1 @@ +api.baseUrl=https://cftunnels.hithomelabs.com \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties new file mode 100644 index 0000000..e5c014b --- /dev/null +++ b/src/main/resources/application-test.properties @@ -0,0 +1 @@ +api.baseUrl=https://testcf.hithomelabs.com \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 2c265e1..9b04cc9 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,3 +2,4 @@ spring.application.name=CFTunnels cloudflare.accountId=${CLOUDFLARE_ACCOUNT_ID} cloudflare.apiKey=${CLOUDFLARE_API_KEY} cloudflare.email=${CLOUDFLARE_EMAIL} +spring.profiles.active=${ENV} -- 2.45.2 From ebd65ccbbe655b99731b5b9bc6c6262f394974a0 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 4 Jun 2025 01:34:19 +0530 Subject: [PATCH 13/66] Changing verbosity of gradle logs --- .gitea/workflows/test_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index 05e8adb..ae070cd 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -17,4 +17,4 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - name: Gradle build - run: ./gradlew build --debug \ No newline at end of file + run: ./gradlew build --info \ No newline at end of file -- 2.45.2 From 196cf74a722683dba0d608aaff6b2416afed509d Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Wed, 4 Jun 2025 01:50:41 +0530 Subject: [PATCH 14/66] Adding default profile test for gradle build test task --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index aaa90d3..49a3976 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,10 @@ java { } } +test { + systemProperty 'spring.profiles.active', 'test' +} + repositories { mavenCentral() } -- 2.45.2 From 5fb59032cb8c88aa50f7808a6a380a5a4ccc9e94 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 01:52:45 +0530 Subject: [PATCH 15/66] Adding tags to release and images --- .gitea/workflows/test_image_build_push.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index e4cdd2f..96b71d2 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,6 +18,16 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 + - name: Get latest tag + run: echo "VERSION=$(git describe --tags --abbrev=0)" + - name: Increment version + run: echo "NEW_VERSION=$(echo $VERSION | awk -F'v' '{print $2}' | awk -F. '{print "v"$1"."$2"."$3+1}')" + - name: Extract commit message + run: echo "COMMIT_MESSAGE=$((git log -1 --pretty=%B)" + - name: Create and push tag + run: | + git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" + git push origin ${NEW_VERSION} - name: Log in to Gitea Docker Registry uses: docker/login-action@v3 with: @@ -25,6 +35,10 @@ jobs: username: hitanshu password: ${{ secrets.TOKEN }} - name: Gradle build - run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:test + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} + - name: Tag image as test + run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} 192.168.0.100:8928/hithomelabs/cftunnels:test - name: Push to Gitea Registry - run: docker push 192.168.0.100:8928/hithomelabs/cftunnels:test + run: | + docker push 192.168.0.100:8928/hithomelabs/cftunnels:test + docker push 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} -- 2.45.2 From 8f1f6e4f99dd0ceda6fe0c56ad0ca1abcfad6c06 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 01:59:40 +0530 Subject: [PATCH 16/66] Minor bugfix --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 96b71d2..6abc8a3 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -23,7 +23,7 @@ jobs: - name: Increment version run: echo "NEW_VERSION=$(echo $VERSION | awk -F'v' '{print $2}' | awk -F. '{print "v"$1"."$2"."$3+1}')" - name: Extract commit message - run: echo "COMMIT_MESSAGE=$((git log -1 --pretty=%B)" + run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag run: | git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" -- 2.45.2 From b66ba60028795bf0b15821efd589e7a9e62558ab Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 02:19:59 +0530 Subject: [PATCH 17/66] Fetching tags explicitly --- .gitea/workflows/test_image_build_push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 6abc8a3..4bcfafc 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -26,6 +26,7 @@ jobs: run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag run: | + git fetch --tags git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" git push origin ${NEW_VERSION} - name: Log in to Gitea Docker Registry -- 2.45.2 From f6bd7573a6a85283067a5f0e429dec2b22a47598 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 02:29:02 +0530 Subject: [PATCH 18/66] using fetch-depth 0 as specified in https://github.com/actions/checkout/issues/1781 --- .gitea/workflows/test_image_build_push.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 4bcfafc..4130c59 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -11,6 +11,8 @@ jobs: steps: - name: Check out repository code uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: JDK setup uses: actions/setup-java@v4 with: @@ -26,7 +28,6 @@ jobs: run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag run: | - git fetch --tags git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" git push origin ${NEW_VERSION} - name: Log in to Gitea Docker Registry -- 2.45.2 From 1cd63d6d3d48a6489152f8628b54a96f49ce5a0a Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 02:36:19 +0530 Subject: [PATCH 19/66] Adding awk --- .gitea/workflows/test_image_build_push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 4130c59..f74f74f 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,6 +18,8 @@ jobs: with: distribution: 'zulu' java-version: '17' + - name: Install AWK + run: sudo apt-get update && sudo apt-get install -y gawk - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - name: Get latest tag -- 2.45.2 From 005863c9988a90a9c79f07c2e982e868de736251 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 21:45:30 +0530 Subject: [PATCH 20/66] Using cut to increment version --- .gitea/workflows/test_image_build_push.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index f74f74f..18792f0 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,14 +18,18 @@ jobs: with: distribution: 'zulu' java-version: '17' - - name: Install AWK - run: sudo apt-get update && sudo apt-get install -y gawk - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - name: Get latest tag - run: echo "VERSION=$(git describe --tags --abbrev=0)" + run: | + echo "VERSION=$(git describe --tags --abbrev=0)" + MAJOR=$(echo $VERSION | cut -d "." -f 1) + MINOR=$(echo $VERSION | cut -d "." -f 2) + PATCH=$(echo $VERSION | cut -d "." -f 3) - name: Increment version - run: echo "NEW_VERSION=$(echo $VERSION | awk -F'v' '{print $2}' | awk -F. '{print "v"$1"."$2"."$3+1}')" + run: | + PATCH=$((PATCH + 1)) + echo "NEW_VERSION=$(echo $MAJOR.$MINOR.$PATCH)" - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag -- 2.45.2 From 3bf981ac05c21965a193a730fdbba8074b5ee3a2 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 22:05:51 +0530 Subject: [PATCH 21/66] Checking if cut is installed on gitea runner --- .gitea/workflows/test_image_build_push.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 18792f0..b035c3b 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -20,12 +20,14 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 + - name: Check if cut is installed + run: echo $(which cut) - name: Get latest tag run: | echo "VERSION=$(git describe --tags --abbrev=0)" - MAJOR=$(echo $VERSION | cut -d "." -f 1) - MINOR=$(echo $VERSION | cut -d "." -f 2) - PATCH=$(echo $VERSION | cut -d "." -f 3) + echo "MAJOR=$(echo $VERSION | cut -d "." -f 1)" + echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" + echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" - name: Increment version run: | PATCH=$((PATCH + 1)) -- 2.45.2 From 3742fb53af916a9e43eaa5d6d05f70c101ee5a9b Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 23:13:27 +0530 Subject: [PATCH 22/66] Trying a different base image --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index b035c3b..aa75baf 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -7,7 +7,7 @@ jobs: build: runs-on: ubuntu-latest container: - image: catthehacker/ubuntu:act-latest + image: catthehacker/ubuntu:runner-latest steps: - name: Check out repository code uses: actions/checkout@v4 -- 2.45.2 From ccc65aef8d9b4828e1aeebfc3dd81e845e2d0d0f Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 23:23:44 +0530 Subject: [PATCH 23/66] Trying to figure out RCA --- .gitea/workflows/test_build.yml | 7 +++++++ .gitea/workflows/test_image_build_push.yml | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index ae070cd..a546543 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -15,6 +15,13 @@ jobs: distribution: 'zulu' java-version: '17' - name: Validate Gradle Wrapper + - name: Get latest tag dry run + run: | + echo "VERSION=$(git describe --tags --abbrev=0)" + echo $VERSION + echo "MAJOR=$(echo $VERSION | cut -d "." -f 1)" + echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" + echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" uses: gradle/actions/wrapper-validation@v3 - name: Gradle build run: ./gradlew build --info \ No newline at end of file diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index aa75baf..3feddd2 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -7,7 +7,7 @@ jobs: build: runs-on: ubuntu-latest container: - image: catthehacker/ubuntu:runner-latest + image: catthehacker/ubuntu:act-latest steps: - name: Check out repository code uses: actions/checkout@v4 @@ -25,6 +25,7 @@ jobs: - name: Get latest tag run: | echo "VERSION=$(git describe --tags --abbrev=0)" + echo $VERSION echo "MAJOR=$(echo $VERSION | cut -d "." -f 1)" echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" -- 2.45.2 From 36050aec95f171f1ce26149fbab6396e7e8c1de2 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 23:26:25 +0530 Subject: [PATCH 24/66] Trying to figure out RCA --- .gitea/workflows/test_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index a546543..85e9353 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -15,6 +15,7 @@ jobs: distribution: 'zulu' java-version: '17' - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 - name: Get latest tag dry run run: | echo "VERSION=$(git describe --tags --abbrev=0)" @@ -22,6 +23,5 @@ jobs: echo "MAJOR=$(echo $VERSION | cut -d "." -f 1)" echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" - uses: gradle/actions/wrapper-validation@v3 - name: Gradle build run: ./gradlew build --info \ No newline at end of file -- 2.45.2 From c6ded4a74d5de69c6e122571f80eb8c2062a1700 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Thu, 5 Jun 2025 23:43:57 +0530 Subject: [PATCH 25/66] Trying to figure out RCA --- .gitea/workflows/test_build.yml | 7 ------- .gitea/workflows/test_image_build_push.yml | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index 85e9353..ae070cd 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -16,12 +16,5 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - - name: Get latest tag dry run - run: | - echo "VERSION=$(git describe --tags --abbrev=0)" - echo $VERSION - echo "MAJOR=$(echo $VERSION | cut -d "." -f 1)" - echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" - echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" - name: Gradle build run: ./gradlew build --info \ No newline at end of file diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 3feddd2..c6f314b 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -26,8 +26,8 @@ jobs: run: | echo "VERSION=$(git describe --tags --abbrev=0)" echo $VERSION - echo "MAJOR=$(echo $VERSION | cut -d "." -f 1)" - echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" + echo "MAJOR=$(echo $VERSION | /usr/bin/cut -d "." -f 1)" + sudo echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" - name: Increment version run: | -- 2.45.2 From df2a50d356fb055e8de7b83c0510fabbe97f4273 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 00:02:30 +0530 Subject: [PATCH 26/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index c6f314b..492ed6e 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -25,10 +25,10 @@ jobs: - name: Get latest tag run: | echo "VERSION=$(git describe --tags --abbrev=0)" - echo $VERSION - echo "MAJOR=$(echo $VERSION | /usr/bin/cut -d "." -f 1)" - sudo echo "MINOR=$(echo $VERSION | cut -d "." -f 2)" - echo "PATCH=$(echo $VERSION | cut -d "." -f 3)" + echo "${VERSION}" + echo "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" + sudo echo "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" + echo "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" - name: Increment version run: | PATCH=$((PATCH + 1)) -- 2.45.2 From cc64b7c74872c33c1e5538c7f9705a1f1a71a33b Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 00:30:25 +0530 Subject: [PATCH 27/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 27 +++++++--------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 492ed6e..250d553 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,27 +18,16 @@ jobs: with: distribution: 'zulu' java-version: '17' - - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@v3 - - name: Check if cut is installed - run: echo $(which cut) - - name: Get latest tag - run: | - echo "VERSION=$(git describe --tags --abbrev=0)" - echo "${VERSION}" - echo "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" - sudo echo "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" - echo "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" - - name: Increment version - run: | - PATCH=$((PATCH + 1)) - echo "NEW_VERSION=$(echo $MAJOR.$MINOR.$PATCH)" - - name: Extract commit message - run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" + - name: Get Next Patch Version + id: version + uses: reecetech/version-increment@v2024.10.1 + with: + scheme: semver + increment: patch - name: Create and push tag run: | - git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" - git push origin ${NEW_VERSION} + git tag -a ${{ steps.version.outputs.version }} -m "Tagging with ${{ steps.version.outputs.version }}" + git push origin ${{ steps.version.outputs.version }} - name: Log in to Gitea Docker Registry uses: docker/login-action@v3 with: -- 2.45.2 From 61df434e0da719efd10a2dc886544b3db8d20ff8 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 00:31:06 +0530 Subject: [PATCH 28/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 250d553..5693c1b 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -35,10 +35,10 @@ jobs: username: hitanshu password: ${{ secrets.TOKEN }} - name: Gradle build - run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.version.outputs.version }} - name: Tag image as test - run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} 192.168.0.100:8928/hithomelabs/cftunnels:test + run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.version.outputs.version }} 192.168.0.100:8928/hithomelabs/cftunnels:test - name: Push to Gitea Registry run: | docker push 192.168.0.100:8928/hithomelabs/cftunnels:test - docker push 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} + docker push 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.version.outputs.version }} -- 2.45.2 From 80b55fd993139bf38662c40854b8ee5a8175c335 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 00:48:35 +0530 Subject: [PATCH 29/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 31 ++++++++++++++-------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 5693c1b..a7f80aa 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,16 +18,25 @@ jobs: with: distribution: 'zulu' java-version: '17' - - name: Get Next Patch Version - id: version - uses: reecetech/version-increment@v2024.10.1 - with: - scheme: semver - increment: patch + - name: Check if cut is installed + run: echo $(which cut) + - name: Get latest tag + run: | + export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_OUTPUT + echo "${GITEA_OUTPUT}" + echo "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" + sudo echo "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" + echo "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" + - name: Increment version + run: | + PATCH=$((PATCH + 1)) + echo "NEW_VERSION=$(echo $MAJOR.$MINOR.$PATCH)" + - name: Extract commit message + run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag run: | - git tag -a ${{ steps.version.outputs.version }} -m "Tagging with ${{ steps.version.outputs.version }}" - git push origin ${{ steps.version.outputs.version }} + git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" + git push origin ${NEW_VERSION} - name: Log in to Gitea Docker Registry uses: docker/login-action@v3 with: @@ -35,10 +44,10 @@ jobs: username: hitanshu password: ${{ secrets.TOKEN }} - name: Gradle build - run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.version.outputs.version }} + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} - name: Tag image as test - run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.version.outputs.version }} 192.168.0.100:8928/hithomelabs/cftunnels:test + run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} 192.168.0.100:8928/hithomelabs/cftunnels:test - name: Push to Gitea Registry run: | docker push 192.168.0.100:8928/hithomelabs/cftunnels:test - docker push 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.version.outputs.version }} + docker push 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} -- 2.45.2 From 0bc90d5d773a94baec457b13f6bcd08056a9a74d Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:07:33 +0530 Subject: [PATCH 30/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index a7f80aa..217374d 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -24,9 +24,12 @@ jobs: run: | export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_OUTPUT echo "${GITEA_OUTPUT}" - echo "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" - sudo echo "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" - echo "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" + export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" + echo "${MAJOR}" + export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" + echo "${MINOR}" + export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" + echo "${PATCH} - name: Increment version run: | PATCH=$((PATCH + 1)) -- 2.45.2 From 4afeb9f6b2249ec50e081d064220661147df9ec0 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:11:09 +0530 Subject: [PATCH 31/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 217374d..dace717 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -22,14 +22,14 @@ jobs: run: echo $(which cut) - name: Get latest tag run: | - export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_OUTPUT - echo "${GITEA_OUTPUT}" + export "VERSION=$(git describe --tags --abbrev=0)" + echo "${VERSION}" export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" echo "${MAJOR}" export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" echo "${MINOR}" export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" - echo "${PATCH} + echo "${PATCH}" - name: Increment version run: | PATCH=$((PATCH + 1)) -- 2.45.2 From c045dae894cb82e3a8d4c8b1f2fb5812586e2f66 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:33:41 +0530 Subject: [PATCH 32/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index dace717..317c324 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,22 +18,21 @@ jobs: with: distribution: 'zulu' java-version: '17' - - name: Check if cut is installed - run: echo $(which cut) - name: Get latest tag + id: get_tag run: | export "VERSION=$(git describe --tags --abbrev=0)" echo "${VERSION}" export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" - echo "${MAJOR}" + echo "MAJOR=${MAJOR}" export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" - echo "${MINOR}" + echo "MINOR=${MINOR}" export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" - echo "${PATCH}" + echo "PATCH=${PATCH}" - name: Increment version run: | - PATCH=$((PATCH + 1)) - echo "NEW_VERSION=$(echo $MAJOR.$MINOR.$PATCH)" + export "NEW_VERSION=$(echo ${{ steps.get_tag.outputs.MAJOR }}.${{ steps.get_tag.outputs.MINOR }}.$( ${{ steps.get_tag.outputs.PATCH }} + 1) ) + echo "NEW_VERSION=${NEW_VERSION}" - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag -- 2.45.2 From 27576d6023096f34173f83a47a2b3bde7c1d172b Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:36:57 +0530 Subject: [PATCH 33/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 317c324..6bc41d8 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - export "NEW_VERSION=$(echo ${{ steps.get_tag.outputs.MAJOR }}.${{ steps.get_tag.outputs.MINOR }}.$( ${{ steps.get_tag.outputs.PATCH }} + 1) ) + export "NEW_VERSION=$(echo ${{ steps.get_tag.outputs.MAJOR }}.${{ steps.get_tag.outputs.MINOR }}.$( ${{ steps.get_tag.outputs.PATCH }} + 1) )" echo "NEW_VERSION=${NEW_VERSION}" - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" -- 2.45.2 From 7203877b27771111800ea39e21b221ac304e19be Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:41:34 +0530 Subject: [PATCH 34/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 6bc41d8..998c7c7 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - export "NEW_VERSION=$(echo ${{ steps.get_tag.outputs.MAJOR }}.${{ steps.get_tag.outputs.MINOR }}.$( ${{ steps.get_tag.outputs.PATCH }} + 1) )" + export "NEW_VERSION=$(echo ${{ steps.get_tag.outputs.MAJOR }}.${{ steps.get_tag.outputs.MINOR }}.${{ steps.get_tag.outputs.PATCH }})" echo "NEW_VERSION=${NEW_VERSION}" - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" -- 2.45.2 From 856748edb77ce1d249c12bcc342a0b87b1e03437 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:46:54 +0530 Subject: [PATCH 35/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 998c7c7..30b431a 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - export "NEW_VERSION=$(echo ${{ steps.get_tag.outputs.MAJOR }}.${{ steps.get_tag.outputs.MINOR }}.${{ steps.get_tag.outputs.PATCH }})" + export "NEW_VERSION=${{ steps.get_tag.outputs.MAJOR }}" echo "NEW_VERSION=${NEW_VERSION}" - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" -- 2.45.2 From c24abc76be63cd58189ae03ddfc1480976bde93e Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 01:54:20 +0530 Subject: [PATCH 36/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 30b431a..99f6a46 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -21,7 +21,7 @@ jobs: - name: Get latest tag id: get_tag run: | - export "VERSION=$(git describe --tags --abbrev=0)" + export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_ENV echo "${VERSION}" export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" echo "MAJOR=${MAJOR}" @@ -31,8 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - export "NEW_VERSION=${{ steps.get_tag.outputs.MAJOR }}" - echo "NEW_VERSION=${NEW_VERSION}" + cat $GITEA_ENV - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag -- 2.45.2 From 05214000af88a83507ffc65e7fab79a65032205e Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:02:19 +0530 Subject: [PATCH 37/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 99f6a46..51d6af2 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -23,15 +23,17 @@ jobs: run: | export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_ENV echo "${VERSION}" - export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" + export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" >> $GITEA_ENV echo "MAJOR=${MAJOR}" - export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" + export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" >> $GITEA_ENV echo "MINOR=${MINOR}" - export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" + export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" >> $GITEA_ENV echo "PATCH=${PATCH}" - name: Increment version run: | - cat $GITEA_ENV + export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV + export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV + echo "NEW_VERSION=${NEW_VERSION}" - name: Extract commit message run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" - name: Create and push tag -- 2.45.2 From 5760f9e7141f85c9b8a777b7fe9d3569f349bcda Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:06:12 +0530 Subject: [PATCH 38/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 51d6af2..b302553 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,6 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | + echo "MAJOR=${MAJOR}" export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV echo "NEW_VERSION=${NEW_VERSION}" -- 2.45.2 From d7cda65f2110dce372b77341e8620e7678c85178 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:11:28 +0530 Subject: [PATCH 39/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index b302553..641a094 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - echo "MAJOR=${MAJOR}" + echo $GITEA_ENV export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV echo "NEW_VERSION=${NEW_VERSION}" -- 2.45.2 From 2b0e0eb9c4318fe793eabcee073ce5bed7c88591 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:14:30 +0530 Subject: [PATCH 40/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 641a094..ebc6e00 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - echo $GITEA_ENV + cat /var/run/act/workflow/envs.txt export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV echo "NEW_VERSION=${NEW_VERSION}" -- 2.45.2 From 40a536ddcfd16bb23bc900ac751b7ca1bd64d97e Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:19:18 +0530 Subject: [PATCH 41/66] Trying to figure out RCA --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index ebc6e00..a07f84a 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - cat /var/run/act/workflow/envs.txt + source $GITEA_ENV export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV echo "NEW_VERSION=${NEW_VERSION}" -- 2.45.2 From 38753791d71069952988a74672e6fe75765eaf81 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:20:03 +0530 Subject: [PATCH 42/66] Trying to figure out RCA --- .gitea/workflows/test_build.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index ae070cd..b991e53 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -16,5 +16,22 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 + - name: Get latest tag + id: get_tag + run: | + export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_ENV + echo "${VERSION}" + export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" >> $GITEA_ENV + echo "MAJOR=${MAJOR}" + export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" >> $GITEA_ENV + echo "MINOR=${MINOR}" + export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" >> $GITEA_ENV + echo "PATCH=${PATCH}" + - name: Increment version + run: | + source $GITEA_ENV + export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV + export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV + echo "NEW_VERSION=${NEW_VERSION}" - name: Gradle build run: ./gradlew build --info \ No newline at end of file -- 2.45.2 From 1980b49272f9435fa57f90f85e8c5de3f17c93ae Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Fri, 6 Jun 2025 02:24:53 +0530 Subject: [PATCH 43/66] Trying to figure out RCA --- .gitea/workflows/test_build.yml | 4 +++- .gitea/workflows/test_image_build_push.yml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index b991e53..3817663 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -6,6 +6,8 @@ on: jobs: build: runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest steps: - name: Check out repository code uses: actions/checkout@v4 @@ -29,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - source $GITEA_ENV + . $GITEA_ENV export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV echo "NEW_VERSION=${NEW_VERSION}" diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index a07f84a..d96fd01 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -31,7 +31,7 @@ jobs: echo "PATCH=${PATCH}" - name: Increment version run: | - source $GITEA_ENV + . $GITEA_ENV export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV echo "NEW_VERSION=${NEW_VERSION}" -- 2.45.2 From cd4b2ae2d86de6dac2635941d374cea641252b11 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 21:21:39 +0530 Subject: [PATCH 44/66] Trying to pass variables between steps using outputs --- .gitea/workflows/test_build.yml | 19 ----------- .gitea/workflows/test_image_build_push.yml | 37 +++++++++++----------- 2 files changed, 18 insertions(+), 38 deletions(-) diff --git a/.gitea/workflows/test_build.yml b/.gitea/workflows/test_build.yml index 3817663..ae070cd 100644 --- a/.gitea/workflows/test_build.yml +++ b/.gitea/workflows/test_build.yml @@ -6,8 +6,6 @@ on: jobs: build: runs-on: ubuntu-latest - container: - image: catthehacker/ubuntu:act-latest steps: - name: Check out repository code uses: actions/checkout@v4 @@ -18,22 +16,5 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - - name: Get latest tag - id: get_tag - run: | - export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_ENV - echo "${VERSION}" - export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" >> $GITEA_ENV - echo "MAJOR=${MAJOR}" - export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" >> $GITEA_ENV - echo "MINOR=${MINOR}" - export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" >> $GITEA_ENV - echo "PATCH=${PATCH}" - - name: Increment version - run: | - . $GITEA_ENV - export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV - export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV - echo "NEW_VERSION=${NEW_VERSION}" - name: Gradle build run: ./gradlew build --info \ No newline at end of file diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index d96fd01..425a819 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -18,29 +18,28 @@ jobs: with: distribution: 'zulu' java-version: '17' + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 - name: Get latest tag id: get_tag run: | - export "VERSION=$(git describe --tags --abbrev=0)" >> $GITEA_ENV - echo "${VERSION}" - export "MAJOR=$(echo ${VERSION} | /usr/bin/cut -d "." -f 1)" >> $GITEA_ENV - echo "MAJOR=${MAJOR}" - export "MINOR=$(echo ${VERSION} | cut -d "." -f 2)" >> $GITEA_ENV - echo "MINOR=${MINOR}" - export "PATCH=$(echo ${VERSION} | cut -d "." -f 3)" >> $GITEA_ENV - echo "PATCH=${PATCH}" + VERSION=$(git describe --tags --abbrev=0) + echo "VERSION=${VERSION}" >> $GITEA_OUTPUT + MAJOR=$(echo ${VERSION} | cut -d "." -f 1) + echo "MAJOR=${MAJOR}" >> $GITEA_OUTPUT + MINOR=$(echo ${VERSION} | cut -d "." -f 2) + echo "MINOR=${MINOR}" >> $GITEA_OUTPUT + PATCH=$(echo ${VERSION} | cut -d "." -f 3) + echo "PATCH=${PATCH}" >> $GITEA_OUTPUT - name: Increment version + id: calc_new_tag run: | - . $GITEA_ENV - export "PATCH=$((${PATCH} + 1))" >> $GITEA_ENV - export "NEW_VERSION=$(echo ${MAJOR}.${MINOR}.${PATCH})" >> $GITEA_ENV - echo "NEW_VERSION=${NEW_VERSION}" - - name: Extract commit message - run: echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" + echo "NEW_PATCH=$((${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITEA_OUTPUT + echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${{ steps.get_id.outputs.NEW_PATCH }})" >> $GITEA_OUTPUT - name: Create and push tag run: | - git tag -a ${NEW_VERSION} -m "${COMMIT_MESSAGE}" - git push origin ${NEW_VERSION} + git tag -a ${{ steps.calc_new_tag.outputs.NEW_VERSION }} -m "Pushing new version ${{ steps.calc_new_tag.outputs.NEW_VERSION }}" + git push origin ${{ steps.calc_new_tag.outputs.NEW_VERSION }} - name: Log in to Gitea Docker Registry uses: docker/login-action@v3 with: @@ -48,10 +47,10 @@ jobs: username: hitanshu password: ${{ secrets.TOKEN }} - name: Gradle build - run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.calc_new_tag.outputs.NEW_VERSION }} - name: Tag image as test - run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} 192.168.0.100:8928/hithomelabs/cftunnels:test + run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.calc_new_tag.outputs.NEW_VERSION }} 192.168.0.100:8928/hithomelabs/cftunnels:test - name: Push to Gitea Registry run: | docker push 192.168.0.100:8928/hithomelabs/cftunnels:test - docker push 192.168.0.100:8928/hithomelabs/cftunnels:${NEW_VERSION} + docker push 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.calc_new_tag.outputs.NEW_VERSION }} -- 2.45.2 From 66fbfc5d69e69b30c39b9f47cabc7f4ddbef5aee Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 21:29:54 +0530 Subject: [PATCH 45/66] Trying to pass variables between steps using outputs --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 425a819..f4b42f1 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -35,7 +35,7 @@ jobs: id: calc_new_tag run: | echo "NEW_PATCH=$((${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITEA_OUTPUT - echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${{ steps.get_id.outputs.NEW_PATCH }})" >> $GITEA_OUTPUT + echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${NEW_PATCH})" >> $GITEA_OUTPUT - name: Create and push tag run: | git tag -a ${{ steps.calc_new_tag.outputs.NEW_VERSION }} -m "Pushing new version ${{ steps.calc_new_tag.outputs.NEW_VERSION }}" -- 2.45.2 From 8720810c46b5fb58aaecc1b5bd6dae2f3227467d Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 21:39:17 +0530 Subject: [PATCH 46/66] Trying to pass variables between steps using outputs --- .gitea/workflows/test_image_build_push.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index f4b42f1..b44a6f1 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -34,7 +34,8 @@ jobs: - name: Increment version id: calc_new_tag run: | - echo "NEW_PATCH=$((${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITEA_OUTPUT + echo "${{ steps.get_id.outputs.PATCH }}" + echo "NEW_PATCH=$(( ${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITEA_OUTPUT echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${NEW_PATCH})" >> $GITEA_OUTPUT - name: Create and push tag run: | -- 2.45.2 From 6262c84535174dd1e6b7fdb132fd104715dbe26a Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 21:46:10 +0530 Subject: [PATCH 47/66] Trying to use --- .gitea/workflows/test_image_build_push.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index b44a6f1..1295a5f 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -24,19 +24,19 @@ jobs: id: get_tag run: | VERSION=$(git describe --tags --abbrev=0) - echo "VERSION=${VERSION}" >> $GITEA_OUTPUT + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT MAJOR=$(echo ${VERSION} | cut -d "." -f 1) - echo "MAJOR=${MAJOR}" >> $GITEA_OUTPUT + echo "MAJOR=${MAJOR}" >> $GITHUB_OUTPUT MINOR=$(echo ${VERSION} | cut -d "." -f 2) - echo "MINOR=${MINOR}" >> $GITEA_OUTPUT + echo "MINOR=${MINOR}" >> $GITHUB_OUTPUT PATCH=$(echo ${VERSION} | cut -d "." -f 3) - echo "PATCH=${PATCH}" >> $GITEA_OUTPUT + echo "PATCH=${PATCH}" >> $GITHUB_OUTPUT - name: Increment version id: calc_new_tag run: | echo "${{ steps.get_id.outputs.PATCH }}" - echo "NEW_PATCH=$(( ${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITEA_OUTPUT - echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${NEW_PATCH})" >> $GITEA_OUTPUT + echo "NEW_PATCH=$(( ${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITHUB_OUTPUT + echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${NEW_PATCH})" >> $GITHUB_OUTPUT - name: Create and push tag run: | git tag -a ${{ steps.calc_new_tag.outputs.NEW_VERSION }} -m "Pushing new version ${{ steps.calc_new_tag.outputs.NEW_VERSION }}" -- 2.45.2 From 5307ba0307169d96d6125d5759b7f7faec0f0385 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:14:11 +0530 Subject: [PATCH 48/66] Trying to use --- .gitea/workflows/test_image_build_push.yml | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 1295a5f..dec2b35 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -4,8 +4,25 @@ on: push: branches: [test] jobs: + tag: + runs-on: ubuntu-latest + outputs: + new_version: ${{ steps.new_version.outputs.new_version }} + steps: + id: new_version + run: | + VERSION=$(git describe --tags --abbrev=0) + echo ${VERSION} + MAJOR=$(echo ${VERSION} | cut -d "." -f 1) + MINOR=$(echo ${VERSION} | cut -d "." -f 2) + PATCH=$(echo ${VERSION} | cut -d "." -f 3) + NEW_PATCH=$(( ${PATCH} + 1)) + echo ${NEW_PATCH} + echo "new_version=$($MAJOR.$MINOR.$NEW_PATCH)" >> $GITHUB_OUTPUT + echo ${new_version} build: runs-on: ubuntu-latest + needs: tag container: image: catthehacker/ubuntu:act-latest steps: @@ -20,27 +37,10 @@ jobs: java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - - name: Get latest tag - id: get_tag - run: | - VERSION=$(git describe --tags --abbrev=0) - echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - MAJOR=$(echo ${VERSION} | cut -d "." -f 1) - echo "MAJOR=${MAJOR}" >> $GITHUB_OUTPUT - MINOR=$(echo ${VERSION} | cut -d "." -f 2) - echo "MINOR=${MINOR}" >> $GITHUB_OUTPUT - PATCH=$(echo ${VERSION} | cut -d "." -f 3) - echo "PATCH=${PATCH}" >> $GITHUB_OUTPUT - - name: Increment version - id: calc_new_tag - run: | - echo "${{ steps.get_id.outputs.PATCH }}" - echo "NEW_PATCH=$(( ${{ steps.get_id.outputs.PATCH }} + 1))" >> $GITHUB_OUTPUT - echo "NEW_VERSION=$( ${{ steps.get_id.outputs.MAJOR }}.${{ steps.get_id.outputs.MINOR }}.${NEW_PATCH})" >> $GITHUB_OUTPUT - name: Create and push tag run: | - git tag -a ${{ steps.calc_new_tag.outputs.NEW_VERSION }} -m "Pushing new version ${{ steps.calc_new_tag.outputs.NEW_VERSION }}" - git push origin ${{ steps.calc_new_tag.outputs.NEW_VERSION }} + git tag -a ${{ needs.tag.outputs.new_version }} -m "Pushing new version ${{ needs.tag.outputs.new_version }}" + git push origin ${{ needs.tag.outputs.new_version }} - name: Log in to Gitea Docker Registry uses: docker/login-action@v3 with: @@ -48,10 +48,10 @@ jobs: username: hitanshu password: ${{ secrets.TOKEN }} - name: Gradle build - run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.calc_new_tag.outputs.NEW_VERSION }} + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${{ needs.tag.outputs.new_version }} - name: Tag image as test - run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.calc_new_tag.outputs.NEW_VERSION }} 192.168.0.100:8928/hithomelabs/cftunnels:test + run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${{ needs.tag.outputs.new_version }} 192.168.0.100:8928/hithomelabs/cftunnels:test - name: Push to Gitea Registry run: | docker push 192.168.0.100:8928/hithomelabs/cftunnels:test - docker push 192.168.0.100:8928/hithomelabs/cftunnels:${{ steps.calc_new_tag.outputs.NEW_VERSION }} + docker push 192.168.0.100:8928/hithomelabs/cftunnels:${{ needs.tag.outputs.new_version }} -- 2.45.2 From bdb4c77ac30cebb080c512359a315b509fdac48e Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:15:19 +0530 Subject: [PATCH 49/66] Trying to multiple jobs --- .gitea/workflows/test_image_build_push.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index dec2b35..749327a 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -9,6 +9,10 @@ jobs: outputs: new_version: ${{ steps.new_version.outputs.new_version }} steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 id: new_version run: | VERSION=$(git describe --tags --abbrev=0) -- 2.45.2 From b7c6149fb79721db3e0b5f5cf6c935b85d3fb2e0 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:24:03 +0530 Subject: [PATCH 50/66] Correcting syntax --- .gitea/workflows/test_image_build_push.yml | 31 +++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 749327a..26b78f7 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -9,21 +9,22 @@ jobs: outputs: new_version: ${{ steps.new_version.outputs.new_version }} steps: - - name: Check out repository code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - id: new_version - run: | - VERSION=$(git describe --tags --abbrev=0) - echo ${VERSION} - MAJOR=$(echo ${VERSION} | cut -d "." -f 1) - MINOR=$(echo ${VERSION} | cut -d "." -f 2) - PATCH=$(echo ${VERSION} | cut -d "." -f 3) - NEW_PATCH=$(( ${PATCH} + 1)) - echo ${NEW_PATCH} - echo "new_version=$($MAJOR.$MINOR.$NEW_PATCH)" >> $GITHUB_OUTPUT - echo ${new_version} + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Get new version + id: new_version + run: | + VERSION=$(git describe --tags --abbrev=0) + echo ${VERSION} + MAJOR=$(echo ${VERSION} | cut -d "." -f 1) + MINOR=$(echo ${VERSION} | cut -d "." -f 2) + PATCH=$(echo ${VERSION} | cut -d "." -f 3) + NEW_PATCH=$(( ${PATCH} + 1)) + echo ${NEW_PATCH} + echo "new_version=$($MAJOR.$MINOR.$NEW_PATCH)" >> $GITHUB_OUTPUT + echo ${new_version} build: runs-on: ubuntu-latest needs: tag -- 2.45.2 From fe591b8af09c22ffb31dd9a750ba937233057e97 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:32:54 +0530 Subject: [PATCH 51/66] Minor bugfix --- .gitea/workflows/test_image_build_push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 26b78f7..213fa22 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -23,7 +23,7 @@ jobs: PATCH=$(echo ${VERSION} | cut -d "." -f 3) NEW_PATCH=$(( ${PATCH} + 1)) echo ${NEW_PATCH} - echo "new_version=$($MAJOR.$MINOR.$NEW_PATCH)" >> $GITHUB_OUTPUT + echo "new_version=$MAJOR.$MINOR.$NEW_PATCH" >> $GITHUB_OUTPUT echo ${new_version} build: runs-on: ubuntu-latest -- 2.45.2 From 5b8735bf58f8adc0e1f109b3f6b60992d7f45c82 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:44:55 +0530 Subject: [PATCH 52/66] Adding git config --- .gitea/workflows/test_image_build_push.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index 213fa22..f97fdc9 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -23,7 +23,7 @@ jobs: PATCH=$(echo ${VERSION} | cut -d "." -f 3) NEW_PATCH=$(( ${PATCH} + 1)) echo ${NEW_PATCH} - echo "new_version=$MAJOR.$MINOR.$NEW_PATCH" >> $GITHUB_OUTPUT + echo "new_version=$(echo "${MAJOR}.${MINOR}.${NEW_PATCH}")" >> $GITHUB_OUTPUT echo ${new_version} build: runs-on: ubuntu-latest @@ -44,6 +44,8 @@ jobs: uses: gradle/actions/wrapper-validation@v3 - name: Create and push tag run: | + git config --global user.name "${{gitea.actor}}" + git config --global user.email "${{ gitea.actor }}@users.noreply.github.com" git tag -a ${{ needs.tag.outputs.new_version }} -m "Pushing new version ${{ needs.tag.outputs.new_version }}" git push origin ${{ needs.tag.outputs.new_version }} - name: Log in to Gitea Docker Registry -- 2.45.2 From 33682a4425e8c9584f6d0b4c06e65e187a295ae6 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:45:42 +0530 Subject: [PATCH 53/66] Adding git config --- .gitea/workflows/test_image_build_push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index f97fdc9..a933b76 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -44,6 +44,7 @@ jobs: uses: gradle/actions/wrapper-validation@v3 - name: Create and push tag run: | + echo "NEW_VERSION=${{ needs.tag.outputs.new_version }}" git config --global user.name "${{gitea.actor}}" git config --global user.email "${{ gitea.actor }}@users.noreply.github.com" git tag -a ${{ needs.tag.outputs.new_version }} -m "Pushing new version ${{ needs.tag.outputs.new_version }}" -- 2.45.2 From 5fe2d96f42d7b6a70eeacdd5ee95b8fa83fa482b Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 10 Jun 2025 23:55:45 +0530 Subject: [PATCH 54/66] Add semantic versioning, when pushing to test PATH is incremented by 1 --- .gitea/workflows/test_image_build_push.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/test_image_build_push.yml b/.gitea/workflows/test_image_build_push.yml index a933b76..f53e140 100644 --- a/.gitea/workflows/test_image_build_push.yml +++ b/.gitea/workflows/test_image_build_push.yml @@ -24,8 +24,7 @@ jobs: NEW_PATCH=$(( ${PATCH} + 1)) echo ${NEW_PATCH} echo "new_version=$(echo "${MAJOR}.${MINOR}.${NEW_PATCH}")" >> $GITHUB_OUTPUT - echo ${new_version} - build: + build_tag_push: runs-on: ubuntu-latest needs: tag container: -- 2.45.2 From e960c5cfa595b0e91d1cae6452c84796192e3045 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Mon, 15 Sep 2025 00:21:49 +0530 Subject: [PATCH 55/66] Final cahnges to add OIDC, setting groups and authorities --- build.gradle | 1 + docker-compose.yaml | 2 + .../Config/AuthoritiesToGroupMapping.java | 28 ++++++++++++ .../Config/CustomOidcUserConfiguration.java | 45 +++++++++++++++++++ .../Config/Security/SecuirtyConfig.java | 39 ++++++++++++++++ .../Controllers/TunnelController.java | 27 +++++++++-- .../CFTunnels/Models/Authorities.java | 10 +++++ .../hithomelabs/CFTunnels/Models/Groups.java | 10 +++++ src/main/resources/application.properties | 12 +++++ 9 files changed, 171 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Config/AuthoritiesToGroupMapping.java create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Config/CustomOidcUserConfiguration.java create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Config/Security/SecuirtyConfig.java create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Models/Authorities.java create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Models/Groups.java diff --git a/build.gradle b/build.gradle index 49a3976..bfc0540 100644 --- a/build.gradle +++ b/build.gradle @@ -23,6 +23,7 @@ repositories { dependencies { implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.5' + implementation group: 'org.springframework.boot', name:'spring-boot-starter-oauth2-client', version: '3.5.5' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' diff --git a/docker-compose.yaml b/docker-compose.yaml index 1c03e48..7cac007 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,6 +7,8 @@ services: - CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY} - CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL} - ENV=${ENV} + - OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID} + - OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET} ports: - 5002:8080 restart: unless-stopped \ No newline at end of file diff --git a/src/main/java/com/hithomelabs/CFTunnels/Config/AuthoritiesToGroupMapping.java b/src/main/java/com/hithomelabs/CFTunnels/Config/AuthoritiesToGroupMapping.java new file mode 100644 index 0000000..b323700 --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Config/AuthoritiesToGroupMapping.java @@ -0,0 +1,28 @@ +package com.hithomelabs.CFTunnels.Config; + +import com.hithomelabs.CFTunnels.Models.Authorities; +import com.hithomelabs.CFTunnels.Models.Groups; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +@Configuration +public class AuthoritiesToGroupMapping { + + public Map> getAuthorityForGroup(){ + HashMap> mappings = new HashMap<>(); + mappings.put(Groups.GITEA_USER, new HashSet<>(Set.of(new SimpleGrantedAuthority(Authorities.ROLE_USER)))); + mappings.put(Groups.POWER_USER, new HashSet<>(Set.of(new SimpleGrantedAuthority(Authorities.ROLE_USER)))); + mappings.put(Groups.HOMELAB_DEVELOPER, new HashSet<>(Set.of(new SimpleGrantedAuthority(Authorities.ROLE_DEVELOPER)))); + mappings.put(Groups.SYSTEM_ADMIN, new HashSet<>(Set.of(new SimpleGrantedAuthority(Authorities.ROLE_APPROVER), new SimpleGrantedAuthority(Authorities.ROLE_ADMIN)))); + return mappings; + } + + + +} diff --git a/src/main/java/com/hithomelabs/CFTunnels/Config/CustomOidcUserConfiguration.java b/src/main/java/com/hithomelabs/CFTunnels/Config/CustomOidcUserConfiguration.java new file mode 100644 index 0000000..22a4e64 --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Config/CustomOidcUserConfiguration.java @@ -0,0 +1,45 @@ +package com.hithomelabs.CFTunnels.Config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserRequest; +import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserService; +import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser; +import org.springframework.security.oauth2.core.oidc.user.OidcUser; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Configuration +public class CustomOidcUserConfiguration extends OidcUserService { + + @Autowired + AuthoritiesToGroupMapping authoritiesToGroupMapping; + + @Override + public OidcUser loadUser(OidcUserRequest userRequest) { + // * * Delegate to the default implementation for loading user and claims + OidcUser oidcUser = super.loadUser(userRequest); + + // * * Copy existing authorities (e.g. scopes → authorities) + Set mappedAuthorities = new HashSet<>(); + + // * * Extract your custom claim (change "roles" to your claim name) + List groups = oidcUser.getClaimAsStringList("groups"); + if (groups != null) { + groups.forEach(group -> + mappedAuthorities.addAll(authoritiesToGroupMapping.getAuthorityForGroup().get(group)) + ); + } + + // * * Return a new DefaultOidcUser with merged authorities + return new DefaultOidcUser( + mappedAuthorities, + oidcUser.getIdToken(), + oidcUser.getUserInfo() + ); + } + } + diff --git a/src/main/java/com/hithomelabs/CFTunnels/Config/Security/SecuirtyConfig.java b/src/main/java/com/hithomelabs/CFTunnels/Config/Security/SecuirtyConfig.java new file mode 100644 index 0000000..7bd9c1e --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Config/Security/SecuirtyConfig.java @@ -0,0 +1,39 @@ +package com.hithomelabs.CFTunnels.Config.Security; + +import com.hithomelabs.CFTunnels.Config.CustomOidcUserConfiguration; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.oauth2.client.OAuth2LoginConfigurer; +import org.springframework.security.web.SecurityFilterChain; + + +@Configuration +@EnableWebSecurity +@EnableMethodSecurity( + prePostEnabled = true, + securedEnabled = true, + jsr250Enabled = true +) +public class SecuirtyConfig { + + @Autowired + private CustomOidcUserConfiguration customOidcUserConfiguration; + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http + .authorizeHttpRequests(auth -> auth + .anyRequest().authenticated() + ) + .with(new OAuth2LoginConfigurer<>(), oauth2 -> oauth2.userInfoEndpoint(u -> u.oidcUserService(customOidcUserConfiguration))); + + + return http.build(); + } + +} diff --git a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java index 9e8ad9c..fc8819f 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java @@ -1,8 +1,7 @@ package com.hithomelabs.CFTunnels.Controllers; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; +import com.hithomelabs.CFTunnels.Config.AuthoritiesToGroupMapping; import com.hithomelabs.CFTunnels.Config.CloudflareConfig; import com.hithomelabs.CFTunnels.Config.RestTemplateConfig; import com.hithomelabs.CFTunnels.Headers.AuthKeyEmailHeader; @@ -11,7 +10,10 @@ import com.hithomelabs.CFTunnels.Models.Ingress; import com.hithomelabs.CFTunnels.Models.TunnelResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; -import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.security.oauth2.core.oidc.user.OidcUser; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; @@ -25,6 +27,8 @@ public class TunnelController { private final RestTemplate restTemplate = new RestTemplate(); + @Autowired + private AuthoritiesToGroupMapping authoritiesToGroupMapping; @Autowired private CloudflareConfig cloudflareConfig; @@ -34,6 +38,20 @@ public class TunnelController { @Autowired private RestTemplateConfig restTemplateConfig; + @PreAuthorize("hasAnyRole('USER')") + @GetMapping("/whoami") + public Map whoAmI(@AuthenticationPrincipal OidcUser oidcUser) { + + List authorities = oidcUser.getAuthorities().stream() + .map(GrantedAuthority::getAuthority) + .toList(); + return Map.of( + "username", oidcUser.getPreferredUsername(), + "roles", authorities + ); + } + + @PreAuthorize("hasAnyRole('USER')") @GetMapping("/tunnels") public ResponseEntity> getTunnels(){ @@ -50,6 +68,7 @@ public class TunnelController { return ResponseEntity.ok(jsonResponse); } + @PreAuthorize("hasAnyRole('DEVELOPER')") @GetMapping("/tunnel/{tunnelId}") public ResponseEntity> getTunnelConfigurations(@PathVariable String tunnelId) throws JsonProcessingException { @@ -67,6 +86,7 @@ public class TunnelController { } // 50df9101-f625-4618-b7c5-100338a57124 + @PreAuthorize("hasAnyRole('ADMIN')") @PutMapping("/tunnel/{tunnelId}/add") public ResponseEntity> addTunnelconfiguration(@PathVariable String tunnelId, @RequestBody Ingress ingress) throws JsonProcessingException { @@ -95,6 +115,7 @@ public class TunnelController { return ResponseEntity.ok(jsonResponse); } + @PreAuthorize("hasAnyRole('DEVELOPER')") @PutMapping("/tunnel/{tunnelId}/delete") public ResponseEntity> deleteTunnelConfiguration(@PathVariable String tunnelId, @RequestBody Ingress ingress) throws JsonProcessingException { diff --git a/src/main/java/com/hithomelabs/CFTunnels/Models/Authorities.java b/src/main/java/com/hithomelabs/CFTunnels/Models/Authorities.java new file mode 100644 index 0000000..f26a17b --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Models/Authorities.java @@ -0,0 +1,10 @@ +package com.hithomelabs.CFTunnels.Models; + +public class Authorities { + + public static final String ROLE_ADMIN = "ROLE_ADMIN"; + public static final String ROLE_DEVELOPER = "ROLE_DEVELOPER"; + public static final String ROLE_USER = "ROLE_USER"; + public static final String ROLE_APPROVER = "ROLE_APPROVER"; + +} diff --git a/src/main/java/com/hithomelabs/CFTunnels/Models/Groups.java b/src/main/java/com/hithomelabs/CFTunnels/Models/Groups.java new file mode 100644 index 0000000..f7c213d --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Models/Groups.java @@ -0,0 +1,10 @@ +package com.hithomelabs.CFTunnels.Models; + +public class Groups { + + public static final String HOMELAB_DEVELOPER = "homelab developer"; + public static final String SYSTEM_ADMIN = "authentik Admins"; + public static final String POWER_USER = "arr premium"; + public static final String GITEA_USER = "gitrestricted"; + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9b04cc9..3ba3827 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,3 +3,15 @@ cloudflare.accountId=${CLOUDFLARE_ACCOUNT_ID} cloudflare.apiKey=${CLOUDFLARE_API_KEY} cloudflare.email=${CLOUDFLARE_EMAIL} spring.profiles.active=${ENV} + +spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} +spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} +spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code +spring.security.oauth2.client.registration.cftunnels.redirect-uri={baseUrl}/login/oauth2/code/cftunnels +spring.security.oauth2.client.registration.cftunnels.scope=openid,profile,email,offline_access,cftunnels + +spring.security.oauth2.client.provider.cftunnels.authorization-uri=https://auth.hithomelabs.com/application/o/authorize/ +spring.security.oauth2.client.provider.cftunnels.token-uri=https://auth.hithomelabs.com/application/o/token/ +spring.security.oauth2.client.provider.cftunnels.user-info-uri=https://auth.hithomelabs.com/application/o/userinfo/ +spring.security.oauth2.client.provider.cftunnels.jwk-set-uri=https://auth.hithomelabs.com/application/o/cftunnels/jwks/ +spring.security.oauth2.client.provider.cftunnels.issuer-uri=https://auth.hithomelabs.com/application/o/cftunnels/ \ No newline at end of file -- 2.45.2 From 674d541d7848519b421217649ce46641ada95799 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Mon, 15 Sep 2025 00:59:13 +0530 Subject: [PATCH 56/66] Trying to address the issue of redirect_uri --- src/main/resources/application-test.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index e5c014b..9f52712 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -1 +1 @@ -api.baseUrl=https://testcf.hithomelabs.com \ No newline at end of file +api.baseUrl=http://192.168.0.100:5002 \ No newline at end of file -- 2.45.2 From f1ec120715c93f9c82bd4230fea3acd7b811b799 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Mon, 15 Sep 2025 01:17:29 +0530 Subject: [PATCH 57/66] Tinkering with redirect-uri --- src/main/resources/application-test.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 9f52712..e5c014b 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -1 +1 @@ -api.baseUrl=http://192.168.0.100:5002 \ No newline at end of file +api.baseUrl=https://testcf.hithomelabs.com \ No newline at end of file -- 2.45.2 From 37a57279fdd8c31730d896e359ab816439a2a8d8 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Mon, 15 Sep 2025 01:43:31 +0530 Subject: [PATCH 58/66] Trying something seeing if it works --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3ba3827..1b13697 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,7 +7,7 @@ spring.profiles.active=${ENV} spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code -spring.security.oauth2.client.registration.cftunnels.redirect-uri={baseUrl}/login/oauth2/code/cftunnels +spring.security.oauth2.client.registration.cftunnels.redirect-uri=http://localhost:8080/login/oauth2/code/cftunnels spring.security.oauth2.client.registration.cftunnels.scope=openid,profile,email,offline_access,cftunnels spring.security.oauth2.client.provider.cftunnels.authorization-uri=https://auth.hithomelabs.com/application/o/authorize/ -- 2.45.2 From e46974870a00aa41022ade71a76811636186bd39 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Mon, 15 Sep 2025 01:57:34 +0530 Subject: [PATCH 59/66] Trying to avoid clash with baseUrl variable --- .../com/hithomelabs/CFTunnels/Config/OpenApiConfig.java | 6 +++--- src/main/resources/application-local.properties | 2 +- src/main/resources/application-prod.properties | 2 +- src/main/resources/application-test.properties | 2 +- src/main/resources/application.properties | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java b/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java index e24e6f5..ef3b098 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Config/OpenApiConfig.java @@ -11,12 +11,12 @@ import java.util.ArrayList; @Configuration public class OpenApiConfig { - @Value("${api.baseUrl}") - private String baseUrl; + @Value("${api.corsResolveUrl}") + private String corsResolveUrl; @Bean public OpenAPI openAPI(){ - Server httpsServer = new Server().url(baseUrl); + Server httpsServer = new Server().url(corsResolveUrl); OpenAPI openApi = new OpenAPI(); ArrayList servers = new ArrayList<>(); servers.add(httpsServer); diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties index fdb25ce..9001ed2 100644 --- a/src/main/resources/application-local.properties +++ b/src/main/resources/application-local.properties @@ -1 +1 @@ -api.baseUrl=http://localhost:8080 \ No newline at end of file +api.corsResolveUrl=http://localhost:8080 \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index dec0f4b..5126249 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1 +1 @@ -api.baseUrl=https://cftunnels.hithomelabs.com \ No newline at end of file +api.corsResolveUrl=https://cftunnels.hithomelabs.com \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index e5c014b..1ea328b 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -1 +1 @@ -api.baseUrl=https://testcf.hithomelabs.com \ No newline at end of file +api.corsResolveUrl=https://testcf.hithomelabs.com \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1b13697..3ba3827 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,7 +7,7 @@ spring.profiles.active=${ENV} spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code -spring.security.oauth2.client.registration.cftunnels.redirect-uri=http://localhost:8080/login/oauth2/code/cftunnels +spring.security.oauth2.client.registration.cftunnels.redirect-uri={baseUrl}/login/oauth2/code/cftunnels spring.security.oauth2.client.registration.cftunnels.scope=openid,profile,email,offline_access,cftunnels spring.security.oauth2.client.provider.cftunnels.authorization-uri=https://auth.hithomelabs.com/application/o/authorize/ -- 2.45.2 From e04ac4b73d8889c59c926652af94fd364ab5b6fb Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 16 Sep 2025 00:27:12 +0530 Subject: [PATCH 60/66] Adding config to make sping boot return an https redirect URI --- src/main/resources/application.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3ba3827..c3fb4db 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,6 +4,8 @@ cloudflare.apiKey=${CLOUDFLARE_API_KEY} cloudflare.email=${CLOUDFLARE_EMAIL} spring.profiles.active=${ENV} +server.forward-headers-strategy=framework + spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code -- 2.45.2 From 30ec013002f19d63eec69f5302e502ae5bf5e10f Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 16 Sep 2025 01:30:02 +0530 Subject: [PATCH 61/66] Trying to do everythng via http --- src/main/resources/application-test.properties | 3 ++- src/main/resources/application.properties | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 1ea328b..fb3cd9e 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -1 +1,2 @@ -api.corsResolveUrl=https://testcf.hithomelabs.com \ No newline at end of file +api.corsResolveUrl=https://testcf.hithomelabs.com +spring.security.oauth2.client.registration.cftunnels.redirect-uri=http://192.168.0.100:5002/login/oauth2/code/cftunnels \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c3fb4db..3ba3827 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,8 +4,6 @@ cloudflare.apiKey=${CLOUDFLARE_API_KEY} cloudflare.email=${CLOUDFLARE_EMAIL} spring.profiles.active=${ENV} -server.forward-headers-strategy=framework - spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code -- 2.45.2 From b3b3d4a441052f91724faca8deed41b6405eff47 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sat, 20 Sep 2025 20:29:48 +0530 Subject: [PATCH 62/66] Trying to fix OIDC configuration with TLS termination behind reverse proxy --- src/main/resources/application-test.properties | 3 +-- src/main/resources/application.properties | 8 ++------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index fb3cd9e..1ea328b 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -1,2 +1 @@ -api.corsResolveUrl=https://testcf.hithomelabs.com -spring.security.oauth2.client.registration.cftunnels.redirect-uri=http://192.168.0.100:5002/login/oauth2/code/cftunnels \ No newline at end of file +api.corsResolveUrl=https://testcf.hithomelabs.com \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3ba3827..03b15a5 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,14 +4,10 @@ cloudflare.apiKey=${CLOUDFLARE_API_KEY} cloudflare.email=${CLOUDFLARE_EMAIL} spring.profiles.active=${ENV} +server.forward-headers-strategy=framework spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code spring.security.oauth2.client.registration.cftunnels.redirect-uri={baseUrl}/login/oauth2/code/cftunnels spring.security.oauth2.client.registration.cftunnels.scope=openid,profile,email,offline_access,cftunnels - -spring.security.oauth2.client.provider.cftunnels.authorization-uri=https://auth.hithomelabs.com/application/o/authorize/ -spring.security.oauth2.client.provider.cftunnels.token-uri=https://auth.hithomelabs.com/application/o/token/ -spring.security.oauth2.client.provider.cftunnels.user-info-uri=https://auth.hithomelabs.com/application/o/userinfo/ -spring.security.oauth2.client.provider.cftunnels.jwk-set-uri=https://auth.hithomelabs.com/application/o/cftunnels/jwks/ -spring.security.oauth2.client.provider.cftunnels.issuer-uri=https://auth.hithomelabs.com/application/o/cftunnels/ \ No newline at end of file +spring.security.oauth2.client.provider.cftunnels.issuer-uri=https://auth.hithomelabs.com/application/o/cftunnels \ No newline at end of file -- 2.45.2 From 84b2b5aead9df6e7664ff1753ffc58a8786223fb Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sat, 20 Sep 2025 20:40:19 +0530 Subject: [PATCH 63/66] Fixing breaking build --- src/main/resources/application.properties | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 03b15a5..b95f4d1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -10,4 +10,8 @@ spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIEN spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code spring.security.oauth2.client.registration.cftunnels.redirect-uri={baseUrl}/login/oauth2/code/cftunnels spring.security.oauth2.client.registration.cftunnels.scope=openid,profile,email,offline_access,cftunnels -spring.security.oauth2.client.provider.cftunnels.issuer-uri=https://auth.hithomelabs.com/application/o/cftunnels \ No newline at end of file +spring.security.oauth2.client.provider.cftunnels.authorization-uri=https://auth.hithomelabs.com/application/o/authorize/ +spring.security.oauth2.client.provider.cftunnels.token-uri=https://auth.hithomelabs.com/application/o/token/ +spring.security.oauth2.client.provider.cftunnels.user-info-uri=https://auth.hithomelabs.com/application/o/userinfo/ +spring.security.oauth2.client.provider.cftunnels.jwk-set-uri=https://auth.hithomelabs.com/application/o/cftunnels/jwks/ +spring.security.oauth2.client.provider.cftunnels.issuer-uri=https://auth.hithomelabs.com/application/o/cftunnels/ \ No newline at end of file -- 2.45.2 From 77a43bfde89ae2758a6720f60c3a50a812160eb9 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sat, 20 Sep 2025 21:00:58 +0530 Subject: [PATCH 64/66] Adding new URL mapping that redirects / to swagger UI --- .../hithomelabs/CFTunnels/Controllers/TunnelController.java | 5 +++++ src/main/resources/application.properties | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java index fc8819f..8c9d145 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java @@ -38,6 +38,11 @@ public class TunnelController { @Autowired private RestTemplateConfig restTemplateConfig; + @GetMapping("/") + public String redirectToSwagger() { + return "redirect:/swagger-ui/index.html"; + } + @PreAuthorize("hasAnyRole('USER')") @GetMapping("/whoami") public Map whoAmI(@AuthenticationPrincipal OidcUser oidcUser) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b95f4d1..4774989 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,7 +4,9 @@ cloudflare.apiKey=${CLOUDFLARE_API_KEY} cloudflare.email=${CLOUDFLARE_EMAIL} spring.profiles.active=${ENV} +/ * * Masking sure app works behind a reverse proxy server.forward-headers-strategy=framework + spring.security.oauth2.client.registration.cftunnels.client-id=${OAUTH_CLIENT_ID} spring.security.oauth2.client.registration.cftunnels.client-secret=${OAUTH_CLIENT_SECRET} spring.security.oauth2.client.registration.cftunnels.authorization-grant-type=authorization_code -- 2.45.2 From 40168545148990ba216f2e94b67e7d26ea1a8abb Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sat, 20 Sep 2025 21:29:53 +0530 Subject: [PATCH 65/66] Adding a new HomeController to redirect to swagger UI --- .../CFTunnels/Controllers/HomeController.java | 32 +++++++++++++++++++ .../Controllers/TunnelController.java | 9 ++---- 2 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/hithomelabs/CFTunnels/Controllers/HomeController.java diff --git a/src/main/java/com/hithomelabs/CFTunnels/Controllers/HomeController.java b/src/main/java/com/hithomelabs/CFTunnels/Controllers/HomeController.java new file mode 100644 index 0000000..43ea57a --- /dev/null +++ b/src/main/java/com/hithomelabs/CFTunnels/Controllers/HomeController.java @@ -0,0 +1,32 @@ +package com.hithomelabs.CFTunnels.Controllers; + + +import org.springframework.boot.web.servlet.error.ErrorController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class HomeController implements ErrorController { + + private static final String ERROR_PATH = "/error"; + + /** + * Redirects the root (including any query params like ?continue=…) + * straight into Swagger UI. + */ + @GetMapping("/") + public String rootRedirect() { + return "redirect:/swagger-ui/index.html"; + } + + /** + * Catches any errors (404s, unhandled paths) and punts them + * into the same Swagger UI page. + */ + @RequestMapping(ERROR_PATH) + public String onError() { + return "redirect:/swagger-ui/index.html"; + } + +} diff --git a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java index 8c9d145..612fc78 100644 --- a/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java +++ b/src/main/java/com/hithomelabs/CFTunnels/Controllers/TunnelController.java @@ -9,6 +9,7 @@ import com.hithomelabs.CFTunnels.Models.Config; import com.hithomelabs.CFTunnels.Models.Ingress; import com.hithomelabs.CFTunnels.Models.TunnelResponse; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.http.*; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.GrantedAuthority; @@ -23,9 +24,10 @@ import java.util.Map; @RestController @RequestMapping("/cloudflare") -public class TunnelController { +public class TunnelController implements ErrorController { private final RestTemplate restTemplate = new RestTemplate(); + private static final String ERROR_PATH = "/error"; @Autowired private AuthoritiesToGroupMapping authoritiesToGroupMapping; @@ -38,11 +40,6 @@ public class TunnelController { @Autowired private RestTemplateConfig restTemplateConfig; - @GetMapping("/") - public String redirectToSwagger() { - return "redirect:/swagger-ui/index.html"; - } - @PreAuthorize("hasAnyRole('USER')") @GetMapping("/whoami") public Map whoAmI(@AuthenticationPrincipal OidcUser oidcUser) { -- 2.45.2 From c8ba9ef6a965091567d02464b6b46f189c7afd21 Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Sat, 20 Sep 2025 23:31:18 +0530 Subject: [PATCH 66/66] Incrementing minor version and building an PROD image when PR merged to main --- .gitea/workflows/prod_image_build_push.yaml | 64 +++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .gitea/workflows/prod_image_build_push.yaml diff --git a/.gitea/workflows/prod_image_build_push.yaml b/.gitea/workflows/prod_image_build_push.yaml new file mode 100644 index 0000000..ec31a2c --- /dev/null +++ b/.gitea/workflows/prod_image_build_push.yaml @@ -0,0 +1,64 @@ +name: Promote image with tag test to prod +run-name: Build started by $ {{gitea.actor}} +on: + push: + branches: [main] +jobs: + tag: + runs-on: ubuntu-latest + outputs: + new_version: ${{ steps.new_version.outputs.new_version }} + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Get new version + id: new_version + run: | + VERSION=$(git describe --tags --abbrev=0) + echo ${VERSION} + MAJOR=$(echo ${VERSION} | cut -d "." -f 1) + MINOR=$(echo ${VERSION} | cut -d "." -f 2) + PATCH=0 + NEW_MINOR=$(( ${MINOR} + 1)) + echo ${NEW_MINOR} + echo "new_version=$(echo "${MAJOR}.${NEW_MINOR}.${PATCH}")" >> $GITHUB_OUTPUT + build_tag_push: + runs-on: ubuntu-latest + needs: tag + container: + image: catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: JDK setup + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '17' + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 + - name: Create and push tag + run: | + echo "NEW_VERSION=${{ needs.tag.outputs.new_version }}" + git config --global user.name "${{gitea.actor}}" + git config --global user.email "${{ gitea.actor }}@users.noreply.github.com" + git tag -a ${{ needs.tag.outputs.new_version }} -m "Pushing new version ${{ needs.tag.outputs.new_version }}" + git push origin ${{ needs.tag.outputs.new_version }} + - name: Log in to Gitea Docker Registry + uses: docker/login-action@v3 + with: + registry: 'http://192.168.0.100:8928' + username: hitanshu + password: ${{ secrets.TOKEN }} + - name: Gradle build + run: ./gradlew bootBuildImage --imageName=192.168.0.100:8928/hithomelabs/cftunnels:${{ needs.tag.outputs.new_version }} + - name: Tag image as test + run: docker tag 192.168.0.100:8928/hithomelabs/cftunnels:${{ needs.tag.outputs.new_version }} 192.168.0.100:8928/hithomelabs/cftunnels:prod + - name: Push to Gitea Registry + run: | + docker push 192.168.0.100:8928/hithomelabs/cftunnels:prod + docker push 192.168.0.100:8928/hithomelabs/cftunnels:${{ needs.tag.outputs.new_version }} -- 2.45.2