From 9ca76948dfb1ce648de21d4c2f6c6f0798a321fd Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 25 Feb 2024 00:15:24 +0100 Subject: [PATCH 01/25] Added version display - Added error route handling --- build.gradle | 3 ++ .../src/app/credits/credits.component.html | 8 +++- frontend/src/app/credits/credits.component.ts | 25 +++++++++++-- .../sharepulse/rest/ErrorRestController.java | 19 ++++++++++ .../sharepulse/rest/mappings/Version.java | 37 +++++++++++++++++++ 5 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 src/main/java/de/w665/sharepulse/rest/ErrorRestController.java create mode 100644 src/main/java/de/w665/sharepulse/rest/mappings/Version.java diff --git a/build.gradle b/build.gradle index d59f36b..c082c3d 100644 --- a/build.gradle +++ b/build.gradle @@ -40,6 +40,9 @@ dependencies { bootJar { manifest { + attributes( + 'Application-Version': project.version + ) } } diff --git a/frontend/src/app/credits/credits.component.html b/frontend/src/app/credits/credits.component.html index b65b6b4..6a83fd0 100644 --- a/frontend/src/app/credits/credits.component.html +++ b/frontend/src/app/credits/credits.component.html @@ -15,11 +15,15 @@

Version:

-

1.0.0

+

+ + {{ version }} +

API-Status:

-

online

+ +

online

Libraries:

diff --git a/frontend/src/app/credits/credits.component.ts b/frontend/src/app/credits/credits.component.ts index f23db40..2aacf5b 100644 --- a/frontend/src/app/credits/credits.component.ts +++ b/frontend/src/app/credits/credits.component.ts @@ -1,19 +1,26 @@ import { Component } from '@angular/core'; import {RouterLink} from "@angular/router"; import {LegalService} from "../../service/legalService"; +import axios from "axios"; +import {DevelopmentStore} from "../../store/DevelopmentStore"; +import {NgIf} from "@angular/common"; @Component({ selector: 'app-credits', standalone: true, - imports: [ - RouterLink - ], + imports: [ + RouterLink, + NgIf + ], templateUrl: './credits.component.html', styleUrl: './credits.component.scss' }) export class CreditsComponent { - constructor(private legalService: LegalService) { + version: string = ''; + + constructor(private legalService: LegalService, private developmentStore: DevelopmentStore) { + this.getVersion(); } openPrivacyPolicyModal() { @@ -23,4 +30,14 @@ export class CreditsComponent { openTermsOfUseModal() { this.legalService.openTermsOfUse(); } + + getVersion() { + axios.get(this.developmentStore.getBaseUrl() + 'api/v1/version') + .then((response) => { + this.version = response.data; + }) + .catch((error) => { + console.log(error); + }); + } } diff --git a/src/main/java/de/w665/sharepulse/rest/ErrorRestController.java b/src/main/java/de/w665/sharepulse/rest/ErrorRestController.java new file mode 100644 index 0000000..487a54e --- /dev/null +++ b/src/main/java/de/w665/sharepulse/rest/ErrorRestController.java @@ -0,0 +1,19 @@ +package de.w665.sharepulse.rest; + +import org.springframework.boot.web.servlet.error.ErrorController; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * This class is used to redirect the user to the home page if an endpoint is not found. + */ +@RestController +public class ErrorRestController implements ErrorController { + @RequestMapping("/error") + public String handleError() { + return ""; + } +} diff --git a/src/main/java/de/w665/sharepulse/rest/mappings/Version.java b/src/main/java/de/w665/sharepulse/rest/mappings/Version.java new file mode 100644 index 0000000..df31b41 --- /dev/null +++ b/src/main/java/de/w665/sharepulse/rest/mappings/Version.java @@ -0,0 +1,37 @@ +package de.w665.sharepulse.rest.mappings; + +import com.rethinkdb.net.Response; +import de.w665.sharepulse.rest.ApiRestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.Resource; +import org.springframework.core.io.ResourceLoader; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.jar.Attributes; +import java.util.jar.Manifest; + +@RestController +public class Version extends ApiRestController { + + private final ResourceLoader resourceLoader; + + @Autowired + public Version(ResourceLoader resourceLoader) { + this.resourceLoader = resourceLoader; + } + + @GetMapping("/version") + public ResponseEntity getVersion() throws Exception { + Resource resource = resourceLoader.getResource("classpath:META-INF/MANIFEST.MF"); + Manifest manifest = new Manifest(resource.getInputStream()); + Attributes attr = manifest.getMainAttributes(); + String version = attr.getValue("Application-Version"); + String response = version != null ? version : "Version is only available in production builds"; + return new ResponseEntity<>(response, HttpStatus.OK); + } +} From 374d2661c0bdd8213928355ffe7173d083660676 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 25 Feb 2024 00:17:18 +0100 Subject: [PATCH 02/25] Removed allow cors --- frontend/src/app/download/download.component.ts | 9 --------- frontend/src/app/upload/upload.component.ts | 2 -- 2 files changed, 11 deletions(-) diff --git a/frontend/src/app/download/download.component.ts b/frontend/src/app/download/download.component.ts index bc9e3b5..ca70a4c 100644 --- a/frontend/src/app/download/download.component.ts +++ b/frontend/src/app/download/download.component.ts @@ -101,9 +101,6 @@ export class DownloadComponent { method: 'get', url: this.developmentStore.getBaseUrl() + 'api/v1/speed-test', responseType: 'arraybuffer', - headers: { - 'Access-Control-Allow-Origin': '*', // Allow CORS - } }) .then(response => { const end = new Date().getTime(); // End timer @@ -124,9 +121,6 @@ export class DownloadComponent { method: 'get', url: this.developmentStore.getBaseUrl() + 'api/v1/download-info?fileId=' + this.fileId, responseType: 'json', - headers: { - 'Access-Control-Allow-Origin': '*', // Allow CORS - } }) .then(response => { this.downloadInfo = response.data; @@ -146,9 +140,6 @@ export class DownloadComponent { method: 'get', url: this.developmentStore.getBaseUrl() + 'api/v1/download?fileId=' + this.fileId + '&password=' + this.filePassword, responseType: 'arraybuffer', - headers: { - 'Access-Control-Allow-Origin': '*', // Allow CORS - }, onDownloadProgress: (progressEvent) => { const endTime = new Date().getTime(); const duration = (endTime - startTime) / 1000; diff --git a/frontend/src/app/upload/upload.component.ts b/frontend/src/app/upload/upload.component.ts index 783101a..df1cce8 100644 --- a/frontend/src/app/upload/upload.component.ts +++ b/frontend/src/app/upload/upload.component.ts @@ -85,7 +85,6 @@ export class UploadComponent { const config = { headers: { 'Content-Type': 'multipart/form-data', - 'Access-Control-Allow-Origin': '*', // Allow CORS }, onUploadProgress: (progressEvent: AxiosProgressEvent) => { if (progressEvent.total) { @@ -156,7 +155,6 @@ export class UploadComponent { data: uint8View, headers: { 'Content-Type': 'application/octet-stream', - 'Access-Control-Allow-Origin': '*', // Allow CORS }, onUploadProgress: function(progressEvent) { // Optional: handle progress events for feedback From 9025af366079d6fce2dbf930d324bd813d2aba5c Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 22:27:52 +0100 Subject: [PATCH 03/25] Updated workflow and readme --- .gitea/workflows/build.yml | 1 + README.md | 47 +++++++++++++++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 29ba252..85e3da1 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -45,6 +45,7 @@ jobs: build-docker-image: needs: build-jar runs-on: ubuntu-22.04 + if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v') steps: - name: Initialize Docker runtime run: | diff --git a/README.md b/README.md index 6596347..1896f80 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,49 @@ Requirements: 1. Update `spring.profiles.active` in `application.properties` to `development` 2. Start external Backend and Database -3. Run `./gradlew bootRun ` in the root directory \ No newline at end of file +3. Run `./gradlew bootRun ` in the root directory + +# Running SharePulse using Docker +```yml +version: '3.8' + +services: + sharepulse: + image: git.walzen665.de/walzen665/sharepulse:latest + ports: + - "80:80" + environment: + # All Configurable parameters with default values + # Can be deleted if default values are used + RETHINKDB_HOST: rethinkdb + RETHINKDB_PORT: 28015 + RETHINKDB_DATABASE: sharepulse + SHAREPULSE_FILEPASSWORD_LENGTH: "6" + SHAREPULSE_FILEID_LENGTH: "6" + SHAREPULSE_TEMP_FILESTORE_PATH: "/temp-filestore" + SHAREPULSE_AUTO_RESET_ON_STARTUP: "true" + MAX_FILE_SIZE: "1GB" + MAX_REQUEST_SIZE: "1GB" + depends_on: + - rethinkdb + networks: + - sharepulse-net + + rethinkdb: + image: rethinkdb:latest + volumes: + - rethinkdb_data:/data + ports: + - "28015:28015" +# - "8080:8080" Webinterface of rethinkdb (optional and only accessible from localhost) + networks: + - sharepulse-net + +networks: + sharepulse-net: + external: false + +volumes: + rethinkdb_data: + +``` \ No newline at end of file From cb4d3bc5e711c025306a83d9d389ccd29c1cbc95 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 22:37:25 +0100 Subject: [PATCH 04/25] Update build.yml - Added dynamic versioning of docker image --- .gitea/workflows/build.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 85e3da1..891abc3 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -70,14 +70,18 @@ jobs: name: jar-artifact path: build/libs + - name: Set up Docker Image Tag + id: docker_tag + run: echo "DOCKER_IMAGE_TAG=$(echo ${{ github.ref }} | sed 's#refs/tags/v##')" >> $GITHUB_ENV + - name: Build Docker Image - run: docker build . -t walzen665/sharepulse:latest + run: docker build . -t walzen665/sharepulse:${{ env.DOCKER_IMAGE_TAG }} - name: Tag Docker image - run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest + run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:${{ env.DOCKER_IMAGE_TAG }} - name: Log in to Gitea Docker Registry run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de - name: Push Docker Image to Gitea - run: docker push git.walzen665.de/walzen665/sharepulse:latest \ No newline at end of file + run: docker push git.walzen665.de/walzen665/sharepulse:${{ env.DOCKER_IMAGE_TAG }} \ No newline at end of file From f69415141c157a9ad3c450f1a228a7a5e9d1af5c Mon Sep 17 00:00:00 2001 From: Walzen665 Date: Sat, 2 Mar 2024 21:46:40 +0000 Subject: [PATCH 05/25] revert cb4d3bc5e711c025306a83d9d389ccd29c1cbc95 revert Update build.yml - Added dynamic versioning of docker image --- .gitea/workflows/build.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 891abc3..85e3da1 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -70,18 +70,14 @@ jobs: name: jar-artifact path: build/libs - - name: Set up Docker Image Tag - id: docker_tag - run: echo "DOCKER_IMAGE_TAG=$(echo ${{ github.ref }} | sed 's#refs/tags/v##')" >> $GITHUB_ENV - - name: Build Docker Image - run: docker build . -t walzen665/sharepulse:${{ env.DOCKER_IMAGE_TAG }} + run: docker build . -t walzen665/sharepulse:latest - name: Tag Docker image - run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:${{ env.DOCKER_IMAGE_TAG }} + run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest - name: Log in to Gitea Docker Registry run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de - name: Push Docker Image to Gitea - run: docker push git.walzen665.de/walzen665/sharepulse:${{ env.DOCKER_IMAGE_TAG }} \ No newline at end of file + run: docker push git.walzen665.de/walzen665/sharepulse:latest \ No newline at end of file From f731beab23bba3cdc659f2e89c2c9b9c7167d321 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 22:53:40 +0100 Subject: [PATCH 06/25] Refactored build workflows --- .gitea/workflows/build-docker.yml | 56 +++++++++++++++++++++++++++++++ .gitea/workflows/build.yml | 43 ++---------------------- 2 files changed, 58 insertions(+), 41 deletions(-) create mode 100644 .gitea/workflows/build-docker.yml diff --git a/.gitea/workflows/build-docker.yml b/.gitea/workflows/build-docker.yml new file mode 100644 index 0000000..85c5519 --- /dev/null +++ b/.gitea/workflows/build-docker.yml @@ -0,0 +1,56 @@ +name: SharePulse docker image build + +on: + push: + tags: + - 'v*' + +jobs: + build-docker-image: + needs: build-jar + runs-on: ubuntu-22.04 + steps: + - name: Extract tag name + id: get_tag + run: | + TAG_NAME=$(echo $GITEA_REF | sed -n 's/refs\/tags\/v\([0-9.]*\)/\1/p') + if [ -z "$TAG_NAME" ]; then + echo "Tag does not start with 'v', skipping..." + exit 78 # Exiting with specific status to mark job as skipped + fi + echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV + + - name: Initialize Docker runtime + run: | + apt-get update + apt-get install ca-certificates curl gnupg lsb-release -y + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + chmod a+r /etc/apt/keyrings/docker.gpg + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ + $(lsb_release -cs) stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y + + - name: Checkout + uses: actions/checkout@v4 + + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: jar-artifact + path: build/libs + + - name: Build Docker Image + run: docker build . -t walzen665/sharepulse:latest + + - name: Tag Docker image + run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest + + - name: Log in to Gitea Docker Registry + run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de + + - name: Push Docker Image to Gitea + run: docker push git.walzen665.de/walzen665/sharepulse:latest \ No newline at end of file diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 85e3da1..8acbe81 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,4 +1,4 @@ -name: SharePulse Build +name: SharePulse build on: push: @@ -41,43 +41,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: jar-artifact - path: build/libs/*.jar - build-docker-image: - needs: build-jar - runs-on: ubuntu-22.04 - if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v') - steps: - - name: Initialize Docker runtime - run: | - apt-get update - apt-get install ca-certificates curl gnupg lsb-release -y - install -m 0755 -d /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg - chmod a+r /etc/apt/keyrings/docker.gpg - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ - $(lsb_release -cs) stable" | \ - tee /etc/apt/sources.list.d/docker.list > /dev/null - apt-get update - apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y - - - name: Checkout - uses: actions/checkout@v4 - - - name: Download Artifact - uses: actions/download-artifact@v3 - with: - name: jar-artifact - path: build/libs - - - name: Build Docker Image - run: docker build . -t walzen665/sharepulse:latest - - - name: Tag Docker image - run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest - - - name: Log in to Gitea Docker Registry - run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de - - - name: Push Docker Image to Gitea - run: docker push git.walzen665.de/walzen665/sharepulse:latest \ No newline at end of file + path: build/libs/*.jar \ No newline at end of file From 9c5a340b1412f562426c401c62b01b6eefe41674 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:08:53 +0100 Subject: [PATCH 07/25] Refactored build --- .gitea/workflows/build-docker.yml | 56 ------------------------------- .gitea/workflows/build.yml | 53 ++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 57 deletions(-) delete mode 100644 .gitea/workflows/build-docker.yml diff --git a/.gitea/workflows/build-docker.yml b/.gitea/workflows/build-docker.yml deleted file mode 100644 index 85c5519..0000000 --- a/.gitea/workflows/build-docker.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: SharePulse docker image build - -on: - push: - tags: - - 'v*' - -jobs: - build-docker-image: - needs: build-jar - runs-on: ubuntu-22.04 - steps: - - name: Extract tag name - id: get_tag - run: | - TAG_NAME=$(echo $GITEA_REF | sed -n 's/refs\/tags\/v\([0-9.]*\)/\1/p') - if [ -z "$TAG_NAME" ]; then - echo "Tag does not start with 'v', skipping..." - exit 78 # Exiting with specific status to mark job as skipped - fi - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - - - name: Initialize Docker runtime - run: | - apt-get update - apt-get install ca-certificates curl gnupg lsb-release -y - install -m 0755 -d /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg - chmod a+r /etc/apt/keyrings/docker.gpg - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ - $(lsb_release -cs) stable" | \ - tee /etc/apt/sources.list.d/docker.list > /dev/null - apt-get update - apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y - - - name: Checkout - uses: actions/checkout@v4 - - - name: Download Artifact - uses: actions/download-artifact@v3 - with: - name: jar-artifact - path: build/libs - - - name: Build Docker Image - run: docker build . -t walzen665/sharepulse:latest - - - name: Tag Docker image - run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest - - - name: Log in to Gitea Docker Registry - run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de - - - name: Push Docker Image to Gitea - run: docker push git.walzen665.de/walzen665/sharepulse:latest \ No newline at end of file diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 8acbe81..d7a36ff 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -41,4 +41,55 @@ jobs: uses: actions/upload-artifact@v3 with: name: jar-artifact - path: build/libs/*.jar \ No newline at end of file + path: build/libs/*.jar + + build-docker-image: + runs-on: ubuntu-22.04 + needs: build-jar + steps: + - name: Extract tag name + id: get_tag + run: | + TAG_NAME=$(echo $GITEA_REF | sed -n 's/refs\/tags\/v\([0-9.]*\)/\1/p') + if [ -z "$TAG_NAME" ]; then + echo "Tag does not start with 'v', skipping..." + exit 78 # Exiting with specific status to mark job as skipped + fi + echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV + + - name: Initialize Docker runtime + run: | + apt-get update + apt-get install ca-certificates curl gnupg lsb-release -y + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + chmod a+r /etc/apt/keyrings/docker.gpg + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ + $(lsb_release -cs) stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y + + - name: Checkout + uses: actions/checkout@v4 + + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: jar-artifact + path: build/libs + + - name: Build Docker Image + run: docker build . -t walzen665/sharepulse:latest + + - name: Tag Docker image + run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest + + - name: Log in to Gitea Docker Registry + run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de + + - name: Push Docker Image to Gitea + run: docker push git.walzen665.de/walzen665/sharepulse:latest + + From d0d0a555b703401277172316c951da37f3dd845c Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:13:45 +0100 Subject: [PATCH 08/25] Update build.yml --- .gitea/workflows/build.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index d7a36ff..0cc37d0 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -42,7 +42,7 @@ jobs: with: name: jar-artifact path: build/libs/*.jar - + build-docker-image: runs-on: ubuntu-22.04 needs: build-jar @@ -50,12 +50,7 @@ jobs: - name: Extract tag name id: get_tag run: | - TAG_NAME=$(echo $GITEA_REF | sed -n 's/refs\/tags\/v\([0-9.]*\)/\1/p') - if [ -z "$TAG_NAME" ]; then - echo "Tag does not start with 'v', skipping..." - exit 78 # Exiting with specific status to mark job as skipped - fi - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV + echo TAG_NAME=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT - name: Initialize Docker runtime run: | From b5d27931592ff6d22c5233c4715f57171526e034 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:19:58 +0100 Subject: [PATCH 09/25] Update build.yml --- .gitea/workflows/build.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 0cc37d0..5c6f4d3 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -12,6 +12,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Extract tag name + run: | + if [[ "$GITEA_REF" =~ ^refs/tags/v ]]; then + TAG_NAME=${GITEA_REF#refs/tags/v} + echo "Extracted tag name: $TAG_NAME" + else + echo "This is not a tag push with 'v' prefix, skipping..." + - name: Set up JDK 21 uses: actions/setup-java@v2 with: @@ -48,9 +56,12 @@ jobs: needs: build-jar steps: - name: Extract tag name - id: get_tag run: | - echo TAG_NAME=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT + if [[ "$GITEA_REF" =~ ^refs/tags/v ]]; then + TAG_NAME=${GITEA_REF#refs/tags/v} + echo "Extracted tag name: $TAG_NAME" + else + echo "This is not a tag push with 'v' prefix, skipping..." - name: Initialize Docker runtime run: | From ee22250634deb952e99eefd3ce12fda348f03a91 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:21:06 +0100 Subject: [PATCH 10/25] Update build.yml --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 5c6f4d3..e6ed0c9 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -19,6 +19,7 @@ jobs: echo "Extracted tag name: $TAG_NAME" else echo "This is not a tag push with 'v' prefix, skipping..." + exit 78 - name: Set up JDK 21 uses: actions/setup-java@v2 From 325fddedca57b3708d843c1effdcd8a511b953e2 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:21:36 +0100 Subject: [PATCH 11/25] Update build.yml --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index e6ed0c9..44596bf 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -20,6 +20,7 @@ jobs: else echo "This is not a tag push with 'v' prefix, skipping..." exit 78 + fi - name: Set up JDK 21 uses: actions/setup-java@v2 From 67cda113f4263c9fe1fea494199dd5a3266b82cd Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:26:25 +0100 Subject: [PATCH 12/25] Update build.yml --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 44596bf..62dd06f 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -14,6 +14,7 @@ jobs: - name: Extract tag name run: | + echo "GITEA_REF: $GITEA_REF" if [[ "$GITEA_REF" =~ ^refs/tags/v ]]; then TAG_NAME=${GITEA_REF#refs/tags/v} echo "Extracted tag name: $TAG_NAME" From 311157e0e6d30eb41418c2f267128dfb570a2d6c Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:28:49 +0100 Subject: [PATCH 13/25] Update build.yml --- .gitea/workflows/build.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 62dd06f..d626351 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -14,9 +14,10 @@ jobs: - name: Extract tag name run: | - echo "GITEA_REF: $GITEA_REF" - if [[ "$GITEA_REF" =~ ^refs/tags/v ]]; then - TAG_NAME=${GITEA_REF#refs/tags/v} + GIT_TAG=$(git describe --tags --always) + echo "GIT_TAG: $GIT_TAG" + if [[ "$GIT_TAG" == v* ]]; then + TAG_NAME=${GIT_TAG#v} echo "Extracted tag name: $TAG_NAME" else echo "This is not a tag push with 'v' prefix, skipping..." From f68fe9953f0a3bdfe0a700b5870ff95680d09a44 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:33:18 +0100 Subject: [PATCH 14/25] Update build.yml --- .gitea/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index d626351..083ead1 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -14,7 +14,8 @@ jobs: - name: Extract tag name run: | - GIT_TAG=$(git describe --tags --always) + echo git fetch --tags + GIT_TAG=$(git tag --points-at HEAD) echo "GIT_TAG: $GIT_TAG" if [[ "$GIT_TAG" == v* ]]; then TAG_NAME=${GIT_TAG#v} From 3cc7a064a17a07441e0ab5401dc32101997ce5c7 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:33:57 +0100 Subject: [PATCH 15/25] Update build.yml --- .gitea/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 083ead1..3c5736d 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -14,7 +14,7 @@ jobs: - name: Extract tag name run: | - echo git fetch --tags + git fetch --tags GIT_TAG=$(git tag --points-at HEAD) echo "GIT_TAG: $GIT_TAG" if [[ "$GIT_TAG" == v* ]]; then From 4a05ffba950c76ad05eb3263d1a0372eefd97383 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:37:37 +0100 Subject: [PATCH 16/25] Update build.yml --- .gitea/workflows/build.yml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 3c5736d..a87c9fa 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -12,19 +12,6 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Extract tag name - run: | - git fetch --tags - GIT_TAG=$(git tag --points-at HEAD) - echo "GIT_TAG: $GIT_TAG" - if [[ "$GIT_TAG" == v* ]]; then - TAG_NAME=${GIT_TAG#v} - echo "Extracted tag name: $TAG_NAME" - else - echo "This is not a tag push with 'v' prefix, skipping..." - exit 78 - fi - - name: Set up JDK 21 uses: actions/setup-java@v2 with: @@ -62,11 +49,14 @@ jobs: steps: - name: Extract tag name run: | - if [[ "$GITEA_REF" =~ ^refs/tags/v ]]; then - TAG_NAME=${GITEA_REF#refs/tags/v} + GIT_TAG=$(git tag --points-at HEAD) + if [[ "$GIT_TAG" == v* ]]; then + TAG_NAME=${GIT_TAG#v} echo "Extracted tag name: $TAG_NAME" else echo "This is not a tag push with 'v' prefix, skipping..." + exit 78 + fi - name: Initialize Docker runtime run: | From 1ed16871d3b78e319b40d0978e09786902650333 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:43:00 +0100 Subject: [PATCH 17/25] Update build.yml --- .gitea/workflows/build.yml | 43 ++++---------------------------------- 1 file changed, 4 insertions(+), 39 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index a87c9fa..8e7d492 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -6,47 +6,15 @@ on: - '**' jobs: - build-jar: - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - java-version: '21' - distribution: 'adopt' - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: 'node' # Use latest version - npm-version: 'latest' - - - name: Build frontend - run: | - cd frontend - npm install - npm run build - cd .. - - - name: Grant execute permission for gradlew - run: chmod +x ./gradlew - - - name: Build .jar with Gradle - run: ./gradlew clean bootJar - - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: jar-artifact - path: build/libs/*.jar + build-docker-image: runs-on: ubuntu-22.04 needs: build-jar steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Extract tag name run: | GIT_TAG=$(git tag --points-at HEAD) @@ -72,9 +40,6 @@ jobs: apt-get update apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y - - name: Checkout - uses: actions/checkout@v4 - - name: Download Artifact uses: actions/download-artifact@v3 with: From c972053cd13f0888ddb2ef8371b702112f1b5eba Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:44:17 +0100 Subject: [PATCH 18/25] Update build.yml --- .gitea/workflows/build.yml | 47 +++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 8e7d492..b4d01dc 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -6,7 +6,42 @@ on: - '**' jobs: - + build-jar: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v2 + with: + java-version: '21' + distribution: 'adopt' + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 'node' # Use latest version + npm-version: 'latest' + + - name: Build frontend + run: | + cd frontend + npm install + npm run build + cd .. + + - name: Grant execute permission for gradlew + run: chmod +x ./gradlew + + - name: Build .jar with Gradle + run: ./gradlew clean bootJar + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: jar-artifact + path: build/libs/*.jar build-docker-image: runs-on: ubuntu-22.04 @@ -19,8 +54,8 @@ jobs: run: | GIT_TAG=$(git tag --points-at HEAD) if [[ "$GIT_TAG" == v* ]]; then - TAG_NAME=${GIT_TAG#v} - echo "Extracted tag name: $TAG_NAME" + VERSION=${GIT_TAG#v} + echo "Extracted tag name: $VERSION" else echo "This is not a tag push with 'v' prefix, skipping..." exit 78 @@ -47,15 +82,15 @@ jobs: path: build/libs - name: Build Docker Image - run: docker build . -t walzen665/sharepulse:latest + run: docker build . -t walzen665/sharepulse:$VERSION - name: Tag Docker image - run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest + run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:$VERSION - name: Log in to Gitea Docker Registry run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de - name: Push Docker Image to Gitea - run: docker push git.walzen665.de/walzen665/sharepulse:latest + run: docker push git.walzen665.de/walzen665/sharepulse:$VERSION From d465078a2d65739606e418f5e110d2b353ae2981 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 2 Mar 2024 23:50:02 +0100 Subject: [PATCH 19/25] Update build.yml --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index b4d01dc..61f64ca 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -52,6 +52,7 @@ jobs: - name: Extract tag name run: | + git fetch --tags GIT_TAG=$(git tag --points-at HEAD) if [[ "$GIT_TAG" == v* ]]; then VERSION=${GIT_TAG#v} From da8153101e8686b8ef888fce9824779eb0c3cc9f Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 3 Mar 2024 00:00:37 +0100 Subject: [PATCH 20/25] Update build.yml --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 61f64ca..fa9def6 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -57,6 +57,7 @@ jobs: if [[ "$GIT_TAG" == v* ]]; then VERSION=${GIT_TAG#v} echo "Extracted tag name: $VERSION" + echo "VERSION=$VERSION" >> $GITHUB_ENV else echo "This is not a tag push with 'v' prefix, skipping..." exit 78 From 6c6995de4550fb90c43371e88ca8e1120d42b594 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 3 Mar 2024 15:29:32 +0100 Subject: [PATCH 21/25] Update build.yml --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index fa9def6..dc855ed 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -46,6 +46,7 @@ jobs: build-docker-image: runs-on: ubuntu-22.04 needs: build-jar + if: startsWith(env.GITEA_REF, 'refs/tags/v') steps: - name: Checkout uses: actions/checkout@v4 From 9ba50b7d4ef439253e249e8d5df220354209a2df Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 3 Mar 2024 15:40:10 +0100 Subject: [PATCH 22/25] Update build.yml --- .gitea/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index dc855ed..3d320b7 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -46,7 +46,7 @@ jobs: build-docker-image: runs-on: ubuntu-22.04 needs: build-jar - if: startsWith(env.GITEA_REF, 'refs/tags/v') + if: startsWith(gitea.ref, 'refs/tags/v') steps: - name: Checkout uses: actions/checkout@v4 From c2c0d97585cd9162eb54d7b74b46ee400a7c7128 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 3 Mar 2024 15:48:24 +0100 Subject: [PATCH 23/25] Update build.yml --- .gitea/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 3d320b7..cad49a4 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -46,7 +46,6 @@ jobs: build-docker-image: runs-on: ubuntu-22.04 needs: build-jar - if: startsWith(gitea.ref, 'refs/tags/v') steps: - name: Checkout uses: actions/checkout@v4 @@ -61,7 +60,7 @@ jobs: echo "VERSION=$VERSION" >> $GITHUB_ENV else echo "This is not a tag push with 'v' prefix, skipping..." - exit 78 + echo "SKIP_SUBSEQUENT_STEPS=true" >> $GITHUB_ENV fi - name: Initialize Docker runtime From 049ce241e89c7c9fef5f28f9d4ec6afa6a81c028 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 3 Mar 2024 16:07:21 +0100 Subject: [PATCH 24/25] Update build.yml --- .gitea/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index cad49a4..5cbb0d9 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -64,6 +64,7 @@ jobs: fi - name: Initialize Docker runtime + if: env.SKIP_SUBSEQUENT_STEPS != 'true' run: | apt-get update apt-get install ca-certificates curl gnupg lsb-release -y @@ -78,21 +79,26 @@ jobs: apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y - name: Download Artifact + if: env.SKIP_SUBSEQUENT_STEPS != 'true' uses: actions/download-artifact@v3 with: name: jar-artifact path: build/libs - name: Build Docker Image + if: env.SKIP_SUBSEQUENT_STEPS != 'true' run: docker build . -t walzen665/sharepulse:$VERSION - name: Tag Docker image + if: env.SKIP_SUBSEQUENT_STEPS != 'true' run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:$VERSION - name: Log in to Gitea Docker Registry + if: env.SKIP_SUBSEQUENT_STEPS != 'true' run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de - name: Push Docker Image to Gitea + if: env.SKIP_SUBSEQUENT_STEPS != 'true' run: docker push git.walzen665.de/walzen665/sharepulse:$VERSION From d13368fe9a39cd772f9ad9b70900680494862f39 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 3 Mar 2024 16:13:30 +0100 Subject: [PATCH 25/25] Update build.yml --- .gitea/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 5cbb0d9..0afe7bf 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -56,10 +56,10 @@ jobs: GIT_TAG=$(git tag --points-at HEAD) if [[ "$GIT_TAG" == v* ]]; then VERSION=${GIT_TAG#v} - echo "Extracted tag name: $VERSION" + echo "Version tag found. Initializing docker image build for version: $VERSION" echo "VERSION=$VERSION" >> $GITHUB_ENV else - echo "This is not a tag push with 'v' prefix, skipping..." + echo "No version tag found. Skipping subsequent steps. (Version tag format: vX.X.X)" echo "SKIP_SUBSEQUENT_STEPS=true" >> $GITHUB_ENV fi