diff --git a/.github/workflows/admin.deploy.chromatic.yml b/.github/workflows/admin.deploy.chromatic.yml index e44fbc8b62..6b76768c84 100644 --- a/.github/workflows/admin.deploy.chromatic.yml +++ b/.github/workflows/admin.deploy.chromatic.yml @@ -9,13 +9,11 @@ jobs: runs-on: ubuntu-latest env: CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN_ADMIN }} - WORKING_DIRECTORY: ./admin steps: - - name: Checkout code - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - fetch-depth: 0 - + node-version-file: './.tool-versions' - name: Admin | Build run: npm install && npm run chromatic -- --exit-zero-on-changes - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file + working-directory: ./admin diff --git a/.github/workflows/admin.yml b/.github/workflows/admin.yml index 8ecb2bc22b..d6ed10436b 100644 --- a/.github/workflows/admin.yml +++ b/.github/workflows/admin.yml @@ -29,15 +29,14 @@ jobs: name: Build - Admin needs: files-changed runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Admin | Build - run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} + run: npm install && npm run --filter dreammall-admin build + working-directory: ./admin docker-production: if: needs.files-changed.outputs.admin == 'true' @@ -45,9 +44,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Admin | Build Docker Production run: docker compose -f docker-compose.yml build admin @@ -57,9 +54,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Admin | Build Docker Development run: docker compose build admin admin-documentation admin-storybook @@ -68,57 +63,50 @@ jobs: name: Build Docs - Admin needs: files-changed runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./admin steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Admin | Build Docs run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./admin 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 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Admin | Build Storybook run: npm install && npm run storybook:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./admin 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 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Admin | Lint run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./admin 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 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Admin | Unit run: npm install && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./admin diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index d385c32161..14e96dce0b 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -29,20 +29,14 @@ jobs: name: Build - Backend needs: files-changed runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./backend steps: - - name: Set Node version - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Backend | Build run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./backend docker-production: if: needs.files-changed.outputs.backend == 'true' @@ -50,9 +44,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Backend | Build Docker Production run: docker compose -f docker-compose.yml build backend @@ -62,9 +54,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Backend | Build Docker Development run: docker compose build backend backend-documentation @@ -73,40 +63,28 @@ jobs: 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Backend | Build Docs run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./backend 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Backend | Lint run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./backend unit: if: needs.files-changed.outputs.backend == 'true' @@ -114,20 +92,14 @@ jobs: 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - 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}} + working-directory: ./backend diff --git a/.github/workflows/deploy.docs.yml b/.github/workflows/deploy.docs.yml index c1ecb2219f..300e58e0bb 100644 --- a/.github/workflows/deploy.docs.yml +++ b/.github/workflows/deploy.docs.yml @@ -12,14 +12,10 @@ jobs: build-and-deploy: runs-on: ubuntu-latest steps: - - name: Set Node version - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout - uses: actions/checkout@master - + node-version-file: './.tool-versions' + - uses: actions/checkout@master - name: vuepress-deploy uses: IT4Change/vuepress-build-and-deploy@master env: @@ -28,4 +24,4 @@ jobs: #TARGET_BRANCH: master BUILD_SCRIPT: npm install && npm run docs:build BUILD_DIR: build/docs/ - VUEPRESS_BASE: "dreammall.earth" \ No newline at end of file + VUEPRESS_BASE: "dreammall.earth" diff --git a/.github/workflows/e2e.run.tests.yml b/.github/workflows/e2e.run.tests.yml index 476b06bce4..1a3e6ba450 100644 --- a/.github/workflows/e2e.run.tests.yml +++ b/.github/workflows/e2e.run.tests.yml @@ -7,13 +7,11 @@ jobs: name: Run all E2E tests runs-on: ubuntu-latest steps: - - name: Set Node version - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: - node-version: 21 + node-version-file: './.tool-versions' - - name: Checkout - uses: actions/checkout@master + - uses: actions/checkout@master - name: E2E | Boot up test system run: | @@ -69,4 +67,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: dreammall-e2e-test-report-pr-${{ steps.pr-number.outputs.pr }} - path: /home/runner/work/dreammall.earth/dreammall.earth/tests/cypress/reports/dreammall-e2e_html_report \ No newline at end of file + path: /home/runner/work/dreammall.earth/dreammall.earth/tests/cypress/reports/dreammall-e2e_html_report diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3549b0662a..8c1118f337 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -30,37 +30,29 @@ jobs: 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' + node-version-file: './.tool-versions' - - name: Checkout code - uses: actions/checkout@master + - uses: actions/checkout@master - name: E2E Testing | Build Docs run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./tests 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' + node-version-file: './.tool-versions' - - name: Checkout code - uses: actions/checkout@master + - uses: actions/checkout@master - name: E2E files | Lint run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./tests diff --git a/.github/workflows/frontend..yml b/.github/workflows/frontend..yml index a128ce6a19..a5d3cae480 100644 --- a/.github/workflows/frontend..yml +++ b/.github/workflows/frontend..yml @@ -29,15 +29,14 @@ jobs: name: Build - Frontend needs: files-changed runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Frontend | Build run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./frontend docker-production: if: needs.files-changed.outputs.frontend == 'true' @@ -45,9 +44,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Frontend | Build Docker Production run: docker compose -f docker-compose.yml build frontend @@ -57,9 +54,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Frontend | Build Docker Development run: docker compose build frontend frontend-documentation frontend-storybook @@ -68,57 +63,53 @@ jobs: name: Build Docs - Frontend needs: files-changed runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./frontend steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Frontend | Build Docs run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./frontend 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 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Frontend | Build Storybook run: npm install && npm run storybook:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./frontend 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 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Frontend | Lint run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./frontend 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 - + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: './.tool-versions' - name: Frontend | Unit run: npm install && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./frontend diff --git a/.github/workflows/frontend.deploy.chromatic.yml b/.github/workflows/frontend.deploy.chromatic.yml index 569f522ec0..af83e87a14 100644 --- a/.github/workflows/frontend.deploy.chromatic.yml +++ b/.github/workflows/frontend.deploy.chromatic.yml @@ -9,13 +9,8 @@ jobs: runs-on: ubuntu-latest env: CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN_FRONTEND }} - WORKING_DIRECTORY: ./frontend steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - + - uses: actions/checkout@v4 - name: Frontend | Build run: npm install && npm run chromatic -- --exit-zero-on-changes - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file + working-directory: ./frontend diff --git a/.github/workflows/presenter.deploy.chromatic.yml b/.github/workflows/presenter.deploy.chromatic.yml index 81be5fe968..f8e94f1248 100644 --- a/.github/workflows/presenter.deploy.chromatic.yml +++ b/.github/workflows/presenter.deploy.chromatic.yml @@ -9,18 +9,11 @@ jobs: runs-on: ubuntu-latest env: CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN_PRESENTER }} - WORKING_DIRECTORY: ./presenter steps: - - name: Set Node version - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Presenter | Build run: npm install && npm run chromatic -- --exit-zero-on-changes - working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file + working-directory: ./presenter diff --git a/.github/workflows/presenter.yml b/.github/workflows/presenter.yml index c38299eeed..379a9a7d1a 100644 --- a/.github/workflows/presenter.yml +++ b/.github/workflows/presenter.yml @@ -29,15 +29,11 @@ jobs: name: Build - Presenter needs: files-changed runs-on: ubuntu-latest - env: - WORKING_DIRECTORY: ./presenter steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Presenter | Build run: npm install && npm run build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./presenter docker-production: if: needs.files-changed.outputs.presenter == 'true' @@ -45,9 +41,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Presenter | Build Docker Production run: docker compose -f docker-compose.yml build presenter @@ -57,9 +51,7 @@ jobs: needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Presenter | Build Docker Development run: docker compose build presenter presenter-documentation presenter-storybook @@ -68,77 +60,53 @@ jobs: 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Presenter | Build Docs run: npm install && npm run docs:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./presenter 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Presenter | Build Storybook run: npm install && npm run storybook:build - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./presenter 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Presenter | Lint run: npm install && npm run test:lint - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./presenter 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 + - uses: actions/setup-node@v4 with: - node-version: '>=21' - - - name: Checkout code - uses: actions/checkout@v4 - + node-version-file: './.tool-versions' + - uses: actions/checkout@v4 - name: Presenter | Unit run: npm install && npm run test:unit - working-directory: ${{env.WORKING_DIRECTORY}} + working-directory: ./presenter diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ff0463c360..8cdbe8858f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,8 +19,7 @@ jobs: ########################################################################## # CHECKOUT CODE ########################################################## ########################################################################## - - name: Checkout code - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 # Fetch full History for changelog ########################################################################## @@ -60,8 +59,7 @@ jobs: ########################################################################## # Push release tag to GitHub ############################################# ########################################################################## - - name: npm install - run: npm install + - run: npm install - name: generate changelog run: npx --yes auto-changelog --commit-limit 0 --latest-version ${{ env.VERSION }} --unreleased-only - name: package-version-to-git-release @@ -75,4 +73,4 @@ jobs: release_name: ${{ env.VERSION }} body_path: ./CHANGELOG.md draft: false - prerelease: false \ No newline at end of file + prerelease: false diff --git a/.github/workflows/test.code.yml b/.github/workflows/test.code.yml index 56a4358b93..2dac5235bc 100644 --- a/.github/workflows/test.code.yml +++ b/.github/workflows/test.code.yml @@ -16,15 +16,13 @@ jobs: filters: | markdown: - '/**/*.md' - + test: - if: needs.files-changed.outputs.markdown == 'true' + if: needs.files-changed.outputs.markdown == 'true' name: Test - Code needs: files-changed runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - + - uses: actions/checkout@v4 - name: Code | Test run: npm install && npm test diff --git a/.github/workflows/test.lint.pr.yml b/.github/workflows/test.lint.pr.yml index 214ee80881..1e59cb79f7 100644 --- a/.github/workflows/test.lint.pr.yml +++ b/.github/workflows/test.lint.pr.yml @@ -78,4 +78,4 @@ jobs: # special "[WIP]" prefix to indicate this state. This will avoid the # validation of the PR title and the pull request checks remain pending. # Note that a second check will be reported if this is enabled. - wip: true \ No newline at end of file + wip: true diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000000..b5ed8dc795 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nodejs 21.4.0 diff --git a/README.md b/README.md index 26315802e6..eb716a3931 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,6 @@ cd $rootFolder/backend cp .env.dist .env # Symbolik for authentik key ln -s src/auth/public.pem public.pem -nvm use 21 npm install # Initialize Database npm run db:reset @@ -96,7 +95,6 @@ npm run dev # In new Terminal cd $rootFolder/presenter cp .env.dist .env -nvm use 21 npm install export PORT=3001 # Run dev mode @@ -111,7 +109,6 @@ npm run dev # In new Terminal cd $rootFolder/frontend cp .env.dist .env -nvm use 21 npm install # export PORT=3000(default) # Run dev mode (for development) @@ -126,7 +123,6 @@ npm run dev # In new Terminal cd $rootFolder/admin cp .env.dist .env -nvm use 21 npm install export PORT=3002 # Run dev mode