diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bdb45ae..1395e764 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,9 +7,33 @@ on: - master jobs: + paths: + name: Check for Changes + runs-on: ubuntu-latest + outputs: + backend: ${{ steps.filter.outputs.backend }} + webapp: ${{ steps.filter.outputs.webapp }} + website: ${{ steps.filter.outputs.website }} + steps: + - uses: actions/checkout@v3 + + - name: Paths Filter + id: filter + uses: dorny/paths-filter@v2 + with: + filters: | + backend: + - 'backend/**' + webapp: + - 'webapp/**' + website: + - 'website/**' + backend-build: + name: Backend Build runs-on: ubuntu-latest - name: Quarkus build test + needs: paths + if: ${{ needs.paths.outputs.backend == 'true' }} defaults: run: working-directory: 'backend' @@ -24,18 +48,18 @@ jobs: run: mvn quarkus:build package backend-test: - name: Quarkus UT - defaults: - run: - working-directory: 'backend' + name: Backend Unit Tests runs-on: ubuntu-latest - # Permissions block is optional, useful for dependabot checks + needs: paths + if: ${{ needs.paths.outputs.backend == 'true' }} permissions: checks: write contents: read + defaults: + run: + working-directory: 'backend' steps: - - name: Checkout Code - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -44,21 +68,20 @@ jobs: - name: Build and Run Tests run: mvn test --batch-mode --fail-at-end - name: Publish Test Report - if: success() || failure() + if: always() uses: scacap/action-surefire-report@v1 webapp-build: - name: Webapp Vite build test + name: Webapp Build runs-on: ubuntu-latest - + needs: paths + if: ${{ needs.paths.outputs.webapp == 'true' }} strategy: matrix: - node-version: [ 18.x ] - + node-version: [18.x] defaults: run: working-directory: 'webapp' - steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -71,17 +94,16 @@ jobs: - run: npm run build --if-present website-build: - name: Website Vite build test + name: Website Build runs-on: ubuntu-latest - + needs: paths + if: ${{ needs.paths.outputs.website == 'true' }} strategy: matrix: - node-version: [ 18.x ] - + node-version: [18.x] defaults: run: working-directory: 'website' - steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -89,46 +111,55 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' - cache-dependency-path: webapp/package-lock.json + cache-dependency-path: website/package-lock.json - run: npm ci - run: npm run build --if-present test-tauri: - name: "Tauri build test" + name: Tauri Build Test + runs-on: ${{ matrix.platform }} + needs: [webapp-build, website-build] + if: | + ${{ needs.paths.outputs.webapp == 'true' }} strategy: fail-fast: false matrix: - platform: [windows-latest] + platform: [windows-latest, ubuntu-latest] # Add other platforms if needed defaults: run: working-directory: 'webapp' - runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v4 - - name: setup node + - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 - - name: install Rust stable + - name: Install Rust Stable uses: dtolnay/rust-toolchain@1.79 - uses: Swatinem/rust-cache@v2 with: workspaces: 'webapp/src-tauri' - - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-20.04' + - name: Install dependencies on Windows + if: matrix.platform == 'windows-latest' + run: | + choco install libgtk + # Add other Windows-specific dependencies if needed + + - name: Install dependencies on Ubuntu + if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf - - name: install webapp dependencies - run: yarn install # change this to npm or pnpm depending on which one you use + - name: Install Webapp Dependencies + run: npm install # or yarn install / pnpm install based on your project - # If tagName and releaseId are omitted tauri-action will only build the app and won't try to upload any asstes. - - uses: tauri-apps/tauri-action@v0 + - name: Build Tauri App + uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} \ No newline at end of file + TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} diff --git a/backend/pom.xml b/backend/pom.xml index d1d398ff..1a63094f 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -1,7 +1,5 @@ - - + + 4.0.0 fr.zelytra betterfleet @@ -13,9 +11,9 @@ UTF-8 quarkus-bom io.quarkus.platform - 3.15.1 + 3.17.5 true - 3.5.0 + 3.5.2 @@ -35,7 +33,7 @@ io.quarkus - quarkus-resteasy-reactive + quarkus-rest com.fasterxml.jackson.core @@ -47,16 +45,16 @@ io.quarkus - quarkus-junit5 - test + quarkus-rest-jackson io.quarkus - quarkus-junit5-mockito + quarkus-junit5 + test io.quarkus - quarkus-resteasy-reactive-jackson + quarkus-junit5-mockito io.quarkus @@ -109,7 +107,6 @@ com.google.code.gson gson - 2.11.0 com.auth0 @@ -166,8 +163,7 @@ - ${project.build.directory}/${project.build.finalName}-runner - + ${project.build.directory}/${project.build.finalName}-runner org.jboss.logmanager.LogManager ${maven.home} diff --git a/backend/src/main/java/fr/zelytra/github/GithubRest.java b/backend/src/main/java/fr/zelytra/github/GithubRest.java index e8ff8810..26f1aa36 100644 --- a/backend/src/main/java/fr/zelytra/github/GithubRest.java +++ b/backend/src/main/java/fr/zelytra/github/GithubRest.java @@ -1,6 +1,5 @@ package fr.zelytra.github; -import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; @@ -9,7 +8,6 @@ import jakarta.ws.rs.core.Response; @Path("/github") -@ApplicationScoped public class GithubRest { @Inject