From bd6e804a56f3d78ddfd8fa3a85620ca09b4775c5 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Sat, 21 Jun 2025 15:42:53 +0200 Subject: [PATCH] add workflow for core --- .github/file-filters.yml | 3 ++ .github/workflows/test_backend.yml | 8 ++++-- .github/workflows/test_core.yml | 44 +++++++++++++++++++++++++++++ .github/workflows/test_database.yml | 5 ++-- .github/workflows/test_shared.yml | 4 +-- 5 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/test_core.yml diff --git a/.github/file-filters.yml b/.github/file-filters.yml index 15791d4b1..e54a3a6af 100644 --- a/.github/file-filters.yml +++ b/.github/file-filters.yml @@ -39,6 +39,9 @@ config: &config shared: &shared - 'shared/**/*' +core: &core + - 'core/**/*' + database: &database - 'database/**/*' diff --git a/.github/workflows/test_backend.yml b/.github/workflows/test_backend.yml index d983f331a..efb59ba37 100644 --- a/.github/workflows/test_backend.yml +++ b/.github/workflows/test_backend.yml @@ -9,6 +9,8 @@ jobs: outputs: backend: ${{ steps.changes.outputs.backend }} config: ${{ steps.changes.outputs.config }} + core: ${{ steps.changes.outputs.core }} + shared: ${{ steps.changes.outputs.shared }} database: ${{ steps.changes.outputs.database }} docker-compose: ${{ steps.changes.outputs.docker-compose }} mariadb: ${{ steps.changes.outputs.mariadb }} @@ -24,7 +26,7 @@ jobs: list-files: shell build_test: - if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.config == 'true' || needs.files-changed.outputs.database == 'true' + if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.config == 'true' || needs.files-changed.outputs.core == 'true' || needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.shared == 'true' || needs.files-changed.outputs.docker-compose == 'true' name: Docker Build Test - Backend needs: files-changed runs-on: ubuntu-latest @@ -36,7 +38,7 @@ jobs: run: docker build -f ./backend/Dockerfile --target production -t "gradido/backend:production" . unit_test: - if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.docker-compose == 'true' || needs.files-changed.outputs.mariadb == 'true' || needs.files-changed.outputs.config == 'true' + if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.docker-compose == 'true' || needs.files-changed.outputs.mariadb == 'true' || needs.files-changed.outputs.config == 'true' || needs.files-changed.outputs.core == 'true' || needs.files-changed.outputs.shared == 'true' name: Unit tests - Backend needs: files-changed runs-on: ubuntu-latest @@ -64,7 +66,7 @@ jobs: run: turbo backend#test typecheck: - if: needs.files-changed.outputs.backend == 'true' + if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.core == 'true' || needs.files-changed.outputs.shared == 'true' || needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.config == 'true' name: Typecheck - Backend needs: files-changed runs-on: ubuntu-latest diff --git a/.github/workflows/test_core.yml b/.github/workflows/test_core.yml new file mode 100644 index 000000000..01e86c453 --- /dev/null +++ b/.github/workflows/test_core.yml @@ -0,0 +1,44 @@ +name: Gradido Core Test CI + +on: push + +jobs: + files-changed: + name: Detect File Changes - Core + runs-on: ubuntu-latest + outputs: + core: ${{ steps.changes.outputs.core }} + database: ${{ steps.changes.outputs.database }} + shared: ${{ steps.changes.outputs.shared }} + steps: + - uses: actions/checkout@v3.3.0 + + - name: Check for core file changes + uses: dorny/paths-filter@v2.11.1 + id: changes + with: + token: ${{ github.token }} + filters: .github/file-filters.yml + list-files: shell + + build: + name: Unit Tests, typecheck - Core + if: needs.files-changed.outputs.core == 'true' || needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.shared == 'true' + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: install bun + uses: oven-sh/setup-bun@v2 + + - name: install dependencies + run: bun install --filter core --frozen-lockfile + + - name: typecheck + run: cd core && yarn typecheck + + - name: unit tests + run: cd core && yarn test + diff --git a/.github/workflows/test_database.yml b/.github/workflows/test_database.yml index 97b0e5fe8..d9a2d3acc 100644 --- a/.github/workflows/test_database.yml +++ b/.github/workflows/test_database.yml @@ -8,6 +8,7 @@ jobs: runs-on: ubuntu-latest outputs: database: ${{ steps.changes.outputs.database }} + shared: ${{ steps.changes.outputs.shared }} docker-compose: ${{ steps.changes.outputs.docker-compose }} mariadb: ${{ steps.changes.outputs.mariadb }} steps: @@ -22,7 +23,7 @@ jobs: list-files: shell build: - if: needs.files-changed.outputs.database == 'true' + if: needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.docker-compose == 'true' || needs.files-changed.outputs.shared == 'true' name: Docker Build Test - Database up needs: files-changed runs-on: ubuntu-latest @@ -34,7 +35,7 @@ jobs: run: docker build --target build -t "gradido/database:build" -f database/Dockerfile . database_migration_test: - if: needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.docker-compose == 'true' || needs.files-changed.outputs.mariadb == 'true' + if: needs.files-changed.outputs.database == 'true' || needs.files-changed.outputs.docker-compose == 'true' || needs.files-changed.outputs.mariadb == 'true' || needs.files-changed.outputs.shared == 'true' name: Database Migration Test - Up, Test + Reset needs: files-changed runs-on: ubuntu-latest diff --git a/.github/workflows/test_shared.yml b/.github/workflows/test_shared.yml index 8a1484655..6e377dbbf 100644 --- a/.github/workflows/test_shared.yml +++ b/.github/workflows/test_shared.yml @@ -8,8 +8,6 @@ jobs: runs-on: ubuntu-latest outputs: shared: ${{ steps.changes.outputs.shared }} - docker-compose: ${{ steps.changes.outputs.docker-compose }} - database: ${{ steps.changes.outputs.database }} steps: - uses: actions/checkout@v3.3.0 @@ -23,7 +21,7 @@ jobs: build: name: Unit Tests, typecheck - Shared - if: needs.files-changed.outputs.shared == 'true' || needs.files-changed.outputs.docker-compose == 'true' || needs.files-changed.outputs.database == 'true' + if: needs.files-changed.outputs.shared == 'true' needs: files-changed runs-on: ubuntu-latest steps: