diff --git a/.github/file-filters.yml b/.github/file-filters.yml deleted file mode 100644 index d4bfce284..000000000 --- a/.github/file-filters.yml +++ /dev/null @@ -1,134 +0,0 @@ -# These file filter patterns are used by the action https://github.com/dorny/paths-filter - -test-code: &test-code - - '**/*' - -# presenter -presenter-test-lint-code: &presenter-test-lint-code - - 'presenter/**/*' - -presenter-test-unit-code: &presenter-test-unit-code - - '.github/workflows/presenter.test.unit.code.yml' - - '.github/file-filters.yml' - - 'presenter/**/*' - -presenter-test-build-code: &presenter-test-build-code - - '.github/workflows/presenter.test.build.code.yml' - - '.github/file-filters.yml' - - 'presenter/**/*' - -presenter-test-build-docker: &presenter-test-build-docker - - '.github/workflows/presenter.test.build.docker.yml' - - '.github/file-filters.yml' - - 'presenter/**/*' - -presenter-test-build-docs: &presenter-test-build-docs - - '.github/workflows/presenter.test.build.docs.yml' - - '.github/file-filters.yml' - - 'presenter/**/*.md' - - 'presenter/.vuepress/*' - - 'presenter/package.json' - -presenter-test-build-storybook: &presenter-test-build-storybook - - '.github/workflows/presenter.test.build.storybook.yml' - - '.github/file-filters.yml' - - 'presenter/**/*' - -# frontend -frontend-test-lint-code: &frontend-test-lint-code - - 'frontend/**/*' - -frontend-test-unit-code: &frontend-test-unit-code - - '.github/workflows/frontend.test.unit.code.yml' - - '.github/file-filters.yml' - - 'frontend/**/*' - -frontend-test-build-code: &frontend-test-build-code - - '.github/workflows/frontend.test.build.code.yml' - - '.github/file-filters.yml' - - 'frontend/**/*' - -frontend-test-build-docker: &frontend-test-build-docker - - '.github/workflows/frontend.test.build.docker.yml' - - '.github/file-filters.yml' - - 'frontend/**/*' - -frontend-test-build-docs: &frontend-test-build-docs - - '.github/workflows/frontend.test.build.docs.yml' - - '.github/file-filters.yml' - - 'frontend/**/*.md' - - 'frontend/.vuepress/*' - - 'frontend/package.json' - -frontend-test-build-storybook: &frontend-test-build-storybook - - '.github/workflows/frontend.test.build.storybook.yml' - - '.github/file-filters.yml' - - 'frontend/**/*' - -# admin -admin-test-lint-code: &admin-test-lint-code - - 'admin/**/*' - -admin-test-unit-code: &admin-test-unit-code - - '.github/workflows/admin.test.unit.code.yml' - - '.github/file-filters.yml' - - 'admin/**/*' - -admin-test-build-code: &admin-test-build-code - - '.github/workflows/admin.test.build.code.yml' - - '.github/file-filters.yml' - - 'admin/**/*' - -admin-test-build-docker: &admin-test-build-docker - - '.github/workflows/admin.test.build.docker.yml' - - '.github/file-filters.yml' - - 'admin/**/*' - -admin-test-build-docs: &admin-test-build-docs - - '.github/workflows/admin.test.build.docs.yml' - - '.github/file-filters.yml' - - 'admin/**/*.md' - - 'admin/.vuepress/*' - - 'admin/package.json' - -admin-test-build-storybook: &admin-test-build-storybook - - '.github/workflows/admin.test.build.storybook.yml' - - '.github/file-filters.yml' - - 'admin/**/*' - -# backend -backend-test-lint-code: &backend-test-lint-code - - 'backend/**/*' - -backend-test-unit-code: &backend-test-unit-code - - '.github/workflows/backend.test.unit.code.yml' - - '.github/file-filters.yml' - - 'backend/**/*' - -backend-test-build-code: &backend-test-build-code - - '.github/workflows/backend.test.build.code.yml' - - '.github/file-filters.yml' - - 'backend/**/*' - -backend-test-build-docker: &backend-test-build-docker - - '.github/workflows/backend.test.build.docker.yml' - - '.github/file-filters.yml' - - 'backend/**/*' - -backend-test-build-docs: &backend-test-build-docs - - 'backend/.github/workflows/backend.test.build.docs.yml' - - '.github/file-filters.yml' - - 'backend/**/*.md' - - 'backend/.vuepress/*' - - 'backend/package.json' - -# e2e - TODO refine separation of docs from code-related files -e2e-all: - - 'tests/**/*' - -e2e-docs: - - 'tests/**/*.md' - - '.github/workflows/e2e.test.build.docs.yml' - - '.github/file-filter.yml' - - '.vuepress/*' - - 'package.json' \ No newline at end of file diff --git a/.github/workflows/admin.test.build.code.yml b/.github/workflows/admin.test.build.code.yml deleted file mode 100644 index c2bc1a940..000000000 --- a/.github/workflows/admin.test.build.code.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "admin:test:build test code" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - admin-test-build-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.admin-test-build-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for admin file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Build - run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/admin.test.build.docker.yml b/.github/workflows/admin.test.build.docker.yml deleted file mode 100644 index d280dc2e1..000000000 --- a/.github/workflows/admin.test.build.docker.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: "admin:test:build test docker" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - admin-test-build-docker - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.admin-test-build-docker }} - steps: - - uses: actions/checkout@v4 - - - name: Check for admin file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build-production: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Production - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Build Docker Production - run: docker compose -f docker-compose.yml build - - build-development: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Development - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Build Docker Development - run: docker compose build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/admin.test.build.docs.yml b/.github/workflows/admin.test.build.docs.yml deleted file mode 100644 index 20e44f308..000000000 --- a/.github/workflows/admin.test.build.docs.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "admin:test:build test docs" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - admin-test-build-docs - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.admin-test-build-docs }} - steps: - - uses: actions/checkout@v4 - - - name: Check for admin file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docs - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Build Docs - run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/admin.test.build.storybook.yml b/.github/workflows/admin.test.build.storybook.yml deleted file mode 100644 index 58a7f7430..000000000 --- a/.github/workflows/admin.test.build.storybook.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "admin:test:build test storybook" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - admin-test-build-storybook - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.admin-test-build-storybook }} - steps: - - uses: actions/checkout@v4 - - - name: Check for admin file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - storybook: - if: needs.files-changed.outputs.changes == 'true' - name: Build Storybook - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Build Storybook - run: npm install && npm run storybook:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/admin.test.lint.code.yml b/.github/workflows/admin.test.lint.code.yml deleted file mode 100644 index 91b2ededb..000000000 --- a/.github/workflows/admin.test.lint.code.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "admin:test:lint code with defined linters" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - admin-test-lint-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.admin-test-lint-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for admin file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - lint: - if: needs.files-changed.outputs.changes == 'true' - name: Lint - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Lint - run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/admin.test.unit.code.yml b/.github/workflows/admin.test.unit.code.yml deleted file mode 100644 index cfb72179e..000000000 --- a/.github/workflows/admin.test.unit.code.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "admin:test:unit test code with defined suites" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - admin-test-unit-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.admin-test-unit-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for admin file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - unit: - if: needs.files-changed.outputs.changes == 'true' - name: Unit - Admin - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Admin | Unit - run: npm install && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/admin.yml b/.github/workflows/admin.yml new file mode 100644 index 000000000..982e945df --- /dev/null +++ b/.github/workflows/admin.yml @@ -0,0 +1,129 @@ +name: admin + +on: [push,pull_request_target] + +jobs: + files-changed: + name: Detect File Changes - admin/ + runs-on: ubuntu-latest + outputs: + admin: ${{ steps.filter.outputs.admin }} + admin-docs: ${{ steps.filter.outputs.admin-docs }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3.0.2 + id: filter + with: + filters: | + admin: + - '.github/workflows/**/*' + - 'admin/**/*' + admin-docs: + - '.github/workflows/**/*' + - 'admin/**/*.md' + - 'admin/.vuepress/*' + - 'admin/package.json' + + build: + if: needs.files-changed.outputs.admin == 'true' + name: Build - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Build + run: npm install && npm run build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-production: + if: needs.files-changed.outputs.admin == 'true' + name: Build Docker Production - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Build Docker Production + run: docker compose -f docker-compose.yml build + + docker-development: + if: needs.files-changed.outputs.admin == 'true' + name: Build Docker Development - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Build Docker Development + run: docker compose build + working-directory: ${{env.WORKING_DIRECTORY}} + + docs: + if: needs.files-changed.outputs.admin-docs == 'true' + name: Build Docs - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Build Docs + run: npm install && npm run docs:build + working-directory: ${{env.WORKING_DIRECTORY}} + + storybook: + if: needs.files-changed.outputs.admin == 'true' + name: Build Storybook - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Build Storybook + run: npm install && npm run storybook:build + working-directory: ${{env.WORKING_DIRECTORY}} + + lint: + if: needs.files-changed.outputs.admin == 'true' + name: Lint - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Lint + run: npm install && npm run test:lint + working-directory: ${{env.WORKING_DIRECTORY}} + + unit: + if: needs.files-changed.outputs.admin == 'true' + name: Unit - Admin + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./admin + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Admin | Unit + run: npm install && npm run test:unit + working-directory: ${{env.WORKING_DIRECTORY}} diff --git a/.github/workflows/backend.test.build.code.yml b/.github/workflows/backend.test.build.code.yml deleted file mode 100644 index 4f2762c35..000000000 --- a/.github/workflows/backend.test.build.code.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "backend:test:build test code" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - backend-test-build-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.backend-test-build-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for backend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build - Backend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Backend | Build - run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/backend.test.build.docker.yml b/.github/workflows/backend.test.build.docker.yml deleted file mode 100644 index 02dc56bca..000000000 --- a/.github/workflows/backend.test.build.docker.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: "backend:test:build test docker" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - backend-test-build-docker - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.backend-test-build-docker }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Check for backend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build-production: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Production - Backend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Backend | Build Docker Production - run: docker compose -f docker-compose.yml build - working-directory: ${{env.WORKING_DIRECTORY}} - - build-development: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Development - Backend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Backend | Build Docker Development - run: docker compose build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/backend.test.build.docs.yml b/.github/workflows/backend.test.build.docs.yml deleted file mode 100644 index a789a0f8a..000000000 --- a/.github/workflows/backend.test.build.docs.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "backend:test:build test docs" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - backend-test-build-docs - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.backend-test-build-docs }} - steps: - - uses: actions/checkout@v4 - - - name: Check for backend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docs - Backend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Backend | Build Docs - run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/backend.test.lint.code.yml b/.github/workflows/backend.test.lint.code.yml deleted file mode 100644 index b466b1d9e..000000000 --- a/.github/workflows/backend.test.lint.code.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "backend:test:lint code with defined linters" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - backend-test-lint-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.backend-test-lint-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for backend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - lint: - if: needs.files-changed.outputs.changes == 'true' - name: Lint - Backend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Backend | Lint - run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/backend.test.unit.code.yml b/.github/workflows/backend.test.unit.code.yml deleted file mode 100644 index 4ec8b3298..000000000 --- a/.github/workflows/backend.test.unit.code.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: "backend:test:unit test code with defined suites" - -env: - DATABASE_URL: mysql://root:@localhost:3306/dreammall.earth - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - backend-test-unit-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.backend-test-unit-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for backend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - unit: - if: needs.files-changed.outputs.changes == 'true' - name: Unit - Backend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Backend | docker-compose database - run: docker-compose -f docker-compose.yml up --detach --no-deps database - - - name: Backend | Unit - run: npm install && cp src/auth/public.pem . && npm run db:migrate && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml new file mode 100644 index 000000000..9c2d25b78 --- /dev/null +++ b/.github/workflows/backend.yml @@ -0,0 +1,139 @@ +name: backend + +on: [push,pull_request_target] + +jobs: + files-changed: + name: Detect File Changes - backend/ + runs-on: ubuntu-latest + outputs: + backend: ${{ steps.filter.outputs.backend }} + backend-docs: ${{ steps.filter.outputs.backend-docs }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3.0.2 + id: filter + with: + filters: | + backend: + - '.github/workflows/**/*' + - 'backend/**/*' + backend-docs: + - '.github/workflows/**/*' + - 'backend/**/*.md' + - 'backend/.vuepress/*' + - 'backend/package.json' + + build: + if: needs.files-changed.outputs.backend == 'true' + name: Build - Backend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./backend + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Backend | Build + run: npm install && npm run build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-production: + if: needs.files-changed.outputs.backend == 'true' + name: Build Docker Production - Backend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./backend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Backend | Build Docker Production + run: docker compose -f docker-compose.yml build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-development: + if: needs.files-changed.outputs.backend == 'true' + name: Build Docker Development - Backend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./backend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Backend | Build Docker Development + run: docker compose build + working-directory: ${{env.WORKING_DIRECTORY}} + + docs: + if: needs.files-changed.outputs.backend-docs == 'true' + name: Build Docs - Backend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./backend + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Backend | Build Docs + run: npm install && npm run docs:build + working-directory: ${{env.WORKING_DIRECTORY}} + + lint: + if: needs.files-changed.outputs.backend == 'true' + name: Lint - Backend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./backend + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Backend | Lint + run: npm install && npm run test:lint + working-directory: ${{env.WORKING_DIRECTORY}} + + unit: + if: needs.files-changed.outputs.backend == 'true' + name: Unit - Backend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./backend + DATABASE_URL: mysql://root:@localhost:3306/dreammall.earth + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Backend | docker-compose database + run: docker-compose -f docker-compose.yml up --detach --no-deps database + + - name: Backend | Unit + run: npm install && cp src/auth/public.pem . && npm run db:migrate && npm run test:unit + working-directory: ${{env.WORKING_DIRECTORY}} diff --git a/.github/workflows/e2e.test.build.docs.yml b/.github/workflows/e2e.test.build.docs.yml deleted file mode 100644 index 19d66b71f..000000000 --- a/.github/workflows/e2e.test.build.docs.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: e2e:test:build test docs - -on: [push,pull_request_target] - -jobs: - files-changed: - name: Detect File Changes - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.e2e-docs }} - steps: - - uses: actions/checkout@master - - - name: Check for e2e docs file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docs - E2E Testing - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./tests - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@master - - - name: E2E Testing | Build Docs - run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/e2e.test.lint.yml b/.github/workflows/e2e.test.lint.yml deleted file mode 100644 index 510bb5bdb..000000000 --- a/.github/workflows/e2e.test.lint.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: e2e:test:lint code with defined linters - -on: [push,pull_request_target] - -jobs: - files-changed: - name: Detect File Changes - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.e2e-all }} - steps: - - uses: actions/checkout@master - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - lint: - if: needs.files-changed.outputs.changes == 'true' - name: Lint - E2E files - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./tests - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@master - - - name: E2E files | Lint - run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 000000000..3549b0662 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,66 @@ +name: e2e + +on: [push,pull_request_target] + +jobs: + files-changed: + name: Detect File Changes - test/ + runs-on: ubuntu-latest + outputs: + e2e: ${{ steps.filter.outputs.e2e }} + e2e-docs: ${{ steps.filter.outputs.e2e-docs }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3.0.2 + id: filter + with: + filters: | + e2e: + - '.github/workflows/**/*' + - 'tests/**/*' + e2e-docs: + - 'tests/**/*.md' + - '.github/workflows/e2e.test.build.docs.yml' + - '.github/file-filter.yml' + - '.vuepress/*' + - 'package.json' + + docs: + if: needs.files-changed.outputs.e2e-docs == 'true' + name: Build Docs - E2E Testing + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./tests + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@master + + - name: E2E Testing | Build Docs + run: npm install && npm run docs:build + working-directory: ${{env.WORKING_DIRECTORY}} + + lint: + if: needs.files-changed.outputs.e2e == 'true' + name: Lint - E2E files + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./tests + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@master + + - name: E2E files | Lint + run: npm install && npm run test:lint + working-directory: ${{env.WORKING_DIRECTORY}} diff --git a/.github/workflows/frontend..yml b/.github/workflows/frontend..yml new file mode 100644 index 000000000..d65c27861 --- /dev/null +++ b/.github/workflows/frontend..yml @@ -0,0 +1,130 @@ +name: frontend + +on: [push,pull_request_target] + +jobs: + files-changed: + name: Detect File Changes - frontend/ + runs-on: ubuntu-latest + outputs: + frontend: ${{ steps.filter.outputs.frontend }} + frontend-docs: ${{ steps.filter.outputs.frontend-docs }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3.0.2 + id: filter + with: + filters: | + frontend: + - '.github/workflows/**/*' + - 'frontend/**/*' + frontend-docs: + - '.github/workflows/**/*' + - 'frontend/**/*.md' + - 'frontend/.vuepress/*' + - 'frontend/package.json' + + build: + if: needs.files-changed.outputs.frontend == 'true' + name: Build - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Build + run: npm install && npm run build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-production: + if: needs.files-changed.outputs.frontend == 'true' + name: Build Docker Production - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Build Docker Production + run: docker compose -f docker-compose.yml build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-development: + if: needs.files-changed.outputs.frontend == 'true' + name: Build Docker Development - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Build Docker Development + run: docker compose build + working-directory: ${{env.WORKING_DIRECTORY}} + + docs: + if: needs.files-changed.outputs.frontend-docs == 'true' + name: Build Docs - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Build Docs + run: npm install && npm run docs:build + working-directory: ${{env.WORKING_DIRECTORY}} + + storybook: + if: needs.files-changed.outputs.frontend == 'true' + name: Build Storybook - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Build Storybook + run: npm install && npm run storybook:build + working-directory: ${{env.WORKING_DIRECTORY}} + + lint: + if: needs.files-changed.outputs.frontend == 'true' + name: Lint - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Lint + run: npm install && npm run test:lint + working-directory: ${{env.WORKING_DIRECTORY}} + + unit: + if: needs.files-changed.outputs.frontend == 'true' + name: Unit - Frontend + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./frontend + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Frontend | Unit + run: npm install && npm run test:unit + working-directory: ${{env.WORKING_DIRECTORY}} diff --git a/.github/workflows/frontend.test.build.code.yml b/.github/workflows/frontend.test.build.code.yml deleted file mode 100644 index 6e47d1a36..000000000 --- a/.github/workflows/frontend.test.build.code.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "frontend:test:build test code" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - frontend-test-build-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.frontend-test-build-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Build - run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/frontend.test.build.docker.yml b/.github/workflows/frontend.test.build.docker.yml deleted file mode 100644 index a78fbaa59..000000000 --- a/.github/workflows/frontend.test.build.docker.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: "frontend:test:build test docker" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - frontend-test-build-docker - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.frontend-test-build-docker }} - steps: - - uses: actions/checkout@v4 - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build-production: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Production - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Build Docker Production - run: docker compose -f docker-compose.yml build - working-directory: ${{env.WORKING_DIRECTORY}} - - build-development: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Development - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Build Docker Development - run: docker compose build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/frontend.test.build.docs.yml b/.github/workflows/frontend.test.build.docs.yml deleted file mode 100644 index fe3994b99..000000000 --- a/.github/workflows/frontend.test.build.docs.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "frontend:test:build test docs" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - frontend-test-build-docs - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.frontend-test-build-docs }} - steps: - - uses: actions/checkout@v4 - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docs - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Build Docs - run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/frontend.test.build.storybook.yml b/.github/workflows/frontend.test.build.storybook.yml deleted file mode 100644 index cf8258b7d..000000000 --- a/.github/workflows/frontend.test.build.storybook.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "frontend:test:build test storybook" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - frontend-test-build-storybook - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.frontend-test-build-storybook }} - steps: - - uses: actions/checkout@v4 - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - storybook: - if: needs.files-changed.outputs.changes == 'true' - name: Build Storybook - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Build Storybook - run: npm install && npm run storybook:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/frontend.test.lint.code.yml b/.github/workflows/frontend.test.lint.code.yml deleted file mode 100644 index 376d09423..000000000 --- a/.github/workflows/frontend.test.lint.code.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "frontend:test:lint code with defined linters" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - frontend-test-lint-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.frontend-test-lint-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - lint: - if: needs.files-changed.outputs.changes == 'true' - name: Lint - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Lint - run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/frontend.test.unit.code.yml b/.github/workflows/frontend.test.unit.code.yml deleted file mode 100644 index 3083d04b5..000000000 --- a/.github/workflows/frontend.test.unit.code.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "frontend:test:unit test code with defined suites" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - frontend-test-unit-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.frontend-test-unit-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for frontend file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - unit: - if: needs.files-changed.outputs.changes == 'true' - name: Unit - Frontend - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Frontend | Unit - run: npm install && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.test.build.code.yml b/.github/workflows/presenter.test.build.code.yml deleted file mode 100644 index ebaee6963..000000000 --- a/.github/workflows/presenter.test.build.code.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: "presenter:test:build test code" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - presenter-test-build-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.presenter-test-build-code }} - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Check for presenter file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Build - run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.test.build.docker.yml b/.github/workflows/presenter.test.build.docker.yml deleted file mode 100644 index f6b83f7a6..000000000 --- a/.github/workflows/presenter.test.build.docker.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: "presenter:test:build test docker" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - presenter-test-build-docker - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.presenter-test-build-docker }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Check for presenter file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build-production: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Production - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Build Docker Production - run: docker compose -f docker-compose.yml build - working-directory: ${{env.WORKING_DIRECTORY}} - - build-development: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docker Development - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Build Docker Development - run: docker compose build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.test.build.docs.yml b/.github/workflows/presenter.test.build.docs.yml deleted file mode 100644 index eed95a8ee..000000000 --- a/.github/workflows/presenter.test.build.docs.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "presenter:test:build test docs" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - presenter-test-build-docs - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.presenter-test-build-docs }} - steps: - - uses: actions/checkout@v4 - - - name: Check for presenter file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - build: - if: needs.files-changed.outputs.changes == 'true' - name: Build Docs - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Build Docs - run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.test.build.storybook.yml b/.github/workflows/presenter.test.build.storybook.yml deleted file mode 100644 index 69fbe43b3..000000000 --- a/.github/workflows/presenter.test.build.storybook.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "presenter:test:build test storybook" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - presenter-test-build-storybook - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.presenter-test-build-storybook }} - steps: - - uses: actions/checkout@v4 - - - name: Check for presenter file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - storybook: - if: needs.files-changed.outputs.changes == 'true' - name: Build Storybook - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Build Storybook - run: npm install && npm run storybook:build - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.test.lint.code.yml b/.github/workflows/presenter.test.lint.code.yml deleted file mode 100644 index d62d5db08..000000000 --- a/.github/workflows/presenter.test.lint.code.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "presenter:test:lint code with defined linters" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - presenter-test-lint-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.presenter-test-lint-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for presenter file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - lint: - if: needs.files-changed.outputs.changes == 'true' - name: Lint - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Lint - run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.test.unit.code.yml b/.github/workflows/presenter.test.unit.code.yml deleted file mode 100644 index 63e96e1f0..000000000 --- a/.github/workflows/presenter.test.unit.code.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "presenter:test:unit test code with defined suites" - -on: [push,pull_request_target] - -jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - presenter-test-unit-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.presenter-test-unit-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for presenter file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - - unit: - if: needs.files-changed.outputs.changes == 'true' - name: Unit - Presenter - needs: files-changed - runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter - steps: - - name: Set Node version - uses: actions/setup-node@v4 - with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Presenter | Unit - run: npm install && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/.github/workflows/presenter.yml b/.github/workflows/presenter.yml new file mode 100644 index 000000000..8a8e13a00 --- /dev/null +++ b/.github/workflows/presenter.yml @@ -0,0 +1,150 @@ +name: presenter + +on: [push,pull_request_target] + +jobs: + files-changed: + name: Detect File Changes - presenter/ + runs-on: ubuntu-latest + outputs: + presenter: ${{ steps.filter.outputs.presenter }} + presenter-docs: ${{ steps.filter.outputs.presenter-docs }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3.0.2 + id: filter + with: + filters: | + presenter: + - '.github/workflows/**/*' + - 'presenter/**/*' + presenter-docs: + - '.github/workflows/**/*' + - 'presenter/**/*.md' + - 'presenter/.vuepress/*' + - 'presenter/package.json' + + build: + if: needs.files-changed.outputs.presenter == 'true' + name: Build - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Build + run: npm install && npm run build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-production: + if: needs.files-changed.outputs.presenter == 'true' + name: Build Docker Production - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Build Docker Production + run: docker compose -f docker-compose.yml build + working-directory: ${{env.WORKING_DIRECTORY}} + + docker-development: + if: needs.files-changed.outputs.presenter == 'true' + name: Build Docker Development - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Build Docker Development + run: docker compose build + working-directory: ${{env.WORKING_DIRECTORY}} + + docs: + if: needs.files-changed.outputs.presenter-docs == 'true' + name: Build Docs - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Build Docs + run: npm install && npm run docs:build + working-directory: ${{env.WORKING_DIRECTORY}} + + storybook: + if: needs.files-changed.outputs.presenter == 'true' + name: Build Storybook - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Build Storybook + run: npm install && npm run storybook:build + working-directory: ${{env.WORKING_DIRECTORY}} + + lint: + if: needs.files-changed.outputs.presenter == 'true' + name: Lint - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Lint + run: npm install && npm run test:lint + working-directory: ${{env.WORKING_DIRECTORY}} + + unit: + if: needs.files-changed.outputs.presenter == 'true' + name: Unit - Presenter + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./presenter + steps: + - name: Set Node version + uses: actions/setup-node@v4 + with: + node-version: '>=21' + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Presenter | Unit + run: npm install && npm run test:unit + working-directory: ${{env.WORKING_DIRECTORY}} diff --git a/.github/workflows/test.code.yml b/.github/workflows/test.code.yml index fc92f456d..16b058b42 100644 --- a/.github/workflows/test.code.yml +++ b/.github/workflows/test.code.yml @@ -3,26 +3,7 @@ name: "dreammall:test:code with defined tests & linters" on: [push,pull_request_target] jobs: - # only (but most important) job from this workflow required for pull requests - # check results serve as run conditions for all other jobs here - files-changed: - name: Detect File Changes - test-code - runs-on: ubuntu-latest - outputs: - changes: ${{ steps.changes.outputs.test-code }} - steps: - - uses: actions/checkout@v4 - - - name: Check for Code file changes - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell - test: - if: needs.files-changed.outputs.changes == 'true' name: Test - Code needs: files-changed runs-on: ubuntu-latest @@ -31,4 +12,4 @@ jobs: uses: actions/checkout@v4 - name: Code | Test - run: npm install && npm test \ No newline at end of file + run: npm install && npm test