diff --git a/.github/file-filters.yml b/.github/file-filters.yml
new file mode 100644
index 000000000..80b7482d9
--- /dev/null
+++ b/.github/file-filters.yml
@@ -0,0 +1,46 @@
+# These file filter patterns are used by the action https://github.com/dorny/paths-filter
+
+# more differentiated filters for admin interface, which might be used later
+# admin_locales: &admin_locales
+# - 'admin/src/locales/**'
+# - 'admin/scripts/sort*'
+
+# admin_stylelinting: &admin_stylelinting
+# - 'admin/{components,layouts,pages}/**/*.{scss,vue}'
+# - 'admin/.stylelintrc.js'
+
+# admin_linting: &admin_linting
+# - 'admin/.eslint*'
+# - 'admin/babel.config.js'
+# - 'admin/package.json'
+# - 'admin/**/*.{js,vue}'
+# - *admin_locales
+
+# admin_unit_testing: &admin_unit_testing
+# - 'admin/package.json'
+# - 'admin/{jest,vue}.config.js'
+# - 'admin/{public,run,test}/**/*'
+# - 'admin/src/!(locales)/**/*'
+
+# admin_docker_building: &admin_docker_building
+# - 'admin/.dockerignore'
+# - 'admin/Dockerfile'
+# - *admin_unit_testing
+
+admin: &admin
+ - 'admin/**/*'
+
+dht_node: &dht_node
+ - 'dht-node/**/*'
+
+docker: &docker
+ - 'docker-compose.*'
+
+federation: &federation
+ - 'federation/**/*'
+
+frontend: &frontend
+ - 'frontend/**/*'
+
+nginx: &nginx
+ - 'nginx/**/*'
\ No newline at end of file
diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml
new file mode 100644
index 000000000..d1dd2851a
--- /dev/null
+++ b/.github/workflows/e2e-test.yml
@@ -0,0 +1,58 @@
+name: Gradido End-to-End Test CI
+
+on: push
+
+jobs:
+ end-to-end-tests:
+ name: End-to-End Tests
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Boot up test system | docker-compose mariadb
+ run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb
+
+ - name: Boot up test system | docker-compose database
+ run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
+
+ - name: Boot up test system | docker-compose backend
+ run: |
+ cd backend
+ cp .env.test_e2e .env
+ cd ..
+ docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend
+
+ - name: Sleep for 10 seconds
+ run: sleep 10s
+
+ - name: Boot up test system | seed backend
+ run: |
+ sudo chown runner:docker -R *
+ cd database
+ yarn && yarn dev_reset
+ cd ../backend
+ yarn && yarn seed
+ cd ..
+
+ - name: Boot up test system | docker-compose frontends
+ run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps frontend admin nginx
+
+ - name: Boot up test system | docker-compose mailserver
+ run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mailserver
+
+ - name: Sleep for 15 seconds
+ run: sleep 15s
+
+ - name: End-to-end tests | run tests
+ id: e2e-tests
+ run: |
+ cd e2e-tests/
+ yarn
+ yarn run cypress run
+ - name: End-to-end tests | if tests failed, upload screenshots
+ if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: cypress-screenshots
+ path: /home/runner/work/gradido/gradido/e2e-tests/cypress/screenshots/
diff --git a/.github/workflows/test-admin-interface.yml b/.github/workflows/test-admin-interface.yml
new file mode 100644
index 000000000..a163af4e9
--- /dev/null
+++ b/.github/workflows/test-admin-interface.yml
@@ -0,0 +1,84 @@
+name: Gradido Admin Interface Test CI
+
+on: push
+
+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 Interface
+ runs-on: ubuntu-latest
+ outputs:
+ admin: ${{ steps.changes.outputs.admin }}
+ steps:
+ - uses: actions/checkout@v3.3.0
+
+ - name: Check for admin interface file changes
+ uses: dorny/paths-filter@v2.11.1
+ id: changes
+ with:
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
+ list-files: shell
+
+
+ build_test:
+ if: needs.files-changed.outputs.admin == 'true'
+ name: Docker Build Test - Admin Interface
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Admin Interface | Build 'test' image
+ run: docker build --target test -t "gradido/admin:test" admin/ --build-arg NODE_ENV="test"
+
+ unit_test:
+ if: needs.files-changed.outputs.admin == 'true'
+ name: Unit Tests - Admin Interface
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Admin Interface | Unit tests
+ run: cd admin && yarn && yarn run test
+
+ lint:
+ if: needs.files-changed.outputs.admin == 'true'
+ name: Lint - Admin Interface
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Admin Interface | Lint
+ run: cd admin && yarn && yarn run lint
+
+ stylelint:
+ if: needs.files-changed.outputs.admin == 'true'
+ name: Stylelint - Admin Interface
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Admin Interface | Stylelint
+ run: cd admin && yarn && yarn run stylelint
+
+ locales:
+ if: needs.files-changed.outputs.admin == 'true'
+ name: Locales - Admin Interface
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Admin Interface | Locales
+ run: cd admin && yarn && yarn run locales
diff --git a/.github/workflows/test-nginx.yml b/.github/workflows/test-nginx.yml
new file mode 100644
index 000000000..146e7a117
--- /dev/null
+++ b/.github/workflows/test-nginx.yml
@@ -0,0 +1,32 @@
+name: Gradido Nginx Test CI
+
+on: push
+
+jobs:
+ files-changed:
+ name: Detect File Changes - Nginx
+ runs-on: ubuntu-latest
+ outputs:
+ nginx: ${{ steps.changes.outputs.nginx }}
+ steps:
+ - uses: actions/checkout@v3.3.0
+
+ - name: Check for nginx file changes
+ uses: dorny/paths-filter@v2.11.1
+ id: changes
+ with:
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
+ list-files: shell
+
+ build_test_nginx:
+ name: Docker Build Test - Nginx
+ if: needs.files-changed.outputs.nginx == 'true'
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: nginx | Build 'test' image
+ run: docker build -t "gradido/nginx:test" nginx/
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index a02aa4b5b..0fcedb4ce 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -3,57 +3,6 @@ name: gradido test CI
on: push
jobs:
- ##############################################################################
- # JOB: DOCKER BUILD TEST FRONTEND ############################################
- ##############################################################################
- build_test_frontend:
- name: Docker Build Test - Frontend
- runs-on: ubuntu-latest
- #needs: [nothing]
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # FRONTEND ###############################################################
- ##########################################################################
- - name: Frontend | Build `test` image
- run: |
- docker build --target test -t "gradido/frontend:test" frontend/
- docker save "gradido/frontend:test" > /tmp/frontend.tar
- - name: Upload Artifact
- uses: actions/upload-artifact@v3
- with:
- name: docker-frontend-test
- path: /tmp/frontend.tar
-
- ##############################################################################
- # JOB: DOCKER BUILD TEST ADMIN INTERFACE #####################################
- ##############################################################################
- build_test_admin:
- name: Docker Build Test - Admin Interface
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # ADMIN INTERFACE ########################################################
- ##########################################################################
- - name: Admin | Build `test` image
- run: |
- docker build --target test -t "gradido/admin:test" admin/ --build-arg NODE_ENV="test"
- docker save "gradido/admin:test" > /tmp/admin.tar
- - name: Upload Artifact
- uses: actions/upload-artifact@v3
- with:
- name: docker-admin-test
- path: /tmp/admin.tar
-
##############################################################################
# JOB: DOCKER BUILD TEST BACKEND #############################################
##############################################################################
@@ -132,139 +81,6 @@ jobs:
name: docker-mariadb-test
path: /tmp/mariadb.tar
- ##############################################################################
- # JOB: DOCKER BUILD TEST NGINX ###############################################
- ##############################################################################
- build_test_nginx:
- name: Docker Build Test - Nginx
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # BUILD NGINX DOCKER IMAGE ###############################################
- ##########################################################################
- - name: nginx | Build `test` image
- run: |
- docker build -t "gradido/nginx:test" nginx/
- docker save "gradido/nginx:test" > /tmp/nginx.tar
- - name: Upload Artifact
- uses: actions/upload-artifact@v3
- with:
- name: docker-nginx-test
- path: /tmp/nginx.tar
-
- ##############################################################################
- # JOB: LOCALES FRONTEND ######################################################
- ##############################################################################
- locales_frontend:
- name: Locales - Frontend
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # LOCALES FRONTEND #######################################################
- ##########################################################################
- - name: Frontend | Locales
- run: cd frontend && yarn && yarn run locales
-
- ##############################################################################
- # JOB: LINT FRONTEND #########################################################
- ##############################################################################
- lint_frontend:
- name: Lint - Frontend
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # LINT FRONTEND ##########################################################
- ##########################################################################
- - name: Frontend | Lint
- run: cd frontend && yarn && yarn run lint
-
- ##############################################################################
- # JOB: STYLELINT FRONTEND ####################################################
- ##############################################################################
- stylelint_frontend:
- name: Stylelint - Frontend
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # STYLELINT FRONTEND #####################################################
- ##########################################################################
- - name: Frontend | Stylelint
- run: cd frontend && yarn && yarn run stylelint
-
- ##############################################################################
- # JOB: LINT ADMIN INTERFACE ##################################################
- ##############################################################################
- lint_admin:
- name: Lint - Admin Interface
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # LINT ADMIN INTERFACE ###################################################
- ##########################################################################
- - name: Admin Interface | Lint
- run: cd admin && yarn && yarn run lint
-
- ##############################################################################
- # JOB: STYLELINT ADMIN INTERFACE #############################################
- ##############################################################################
- stylelint_admin:
- name: Stylelint - Admin Interface
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # STYLELINT ADMIN INTERFACE ##############################################
- ##########################################################################
- - name: Admin Interface | Stylelint
- run: cd admin && yarn && yarn run stylelint
-
- ##############################################################################
- # JOB: LOCALES ADMIN #########################################################
- ##############################################################################
- locales_admin:
- name: Locales - Admin Interface
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # LOCALES FRONTEND #######################################################
- ##########################################################################
- - name: Admin | Locales
- run: cd admin && yarn && yarn run locales
-
##############################################################################
# JOB: LINT BACKEND ##########################################################
##############################################################################
@@ -281,7 +97,7 @@ jobs:
# LINT BACKEND ###########################################################
##########################################################################
- name: backend | Lint
- run: cd backend && yarn && yarn run lint
+ run: cd database && yarn && cd ../backend && yarn && yarn run lint
##############################################################################
# JOB: LOCALES BACKEND #######################################################
@@ -319,68 +135,6 @@ jobs:
- name: Database | Lint
run: cd database && yarn && yarn run lint
- ##############################################################################
- # JOB: UNIT TEST FRONTEND ###################################################
- ##############################################################################
- unit_test_frontend:
- name: Unit tests - Frontend
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # UNIT TESTS FRONTEND ####################################################
- ##########################################################################
- - name: Frontend | Unit tests
- run: |
- cd frontend && yarn && yarn run test
- cp -r ./coverage ../
- ##########################################################################
- # COVERAGE CHECK FRONTEND ################################################
- ##########################################################################
- - name: frontend | Coverage check
- uses: webcraftmedia/coverage-check-action@master
- with:
- report_name: Coverage Frontend
- type: lcov
- result_path: ./frontend/coverage/lcov.info
- min_coverage: 95
- token: ${{ github.token }}
-
- ##############################################################################
- # JOB: UNIT TEST ADMIN INTERFACE #############################################
- ##############################################################################
- unit_test_admin:
- name: Unit tests - Admin Interface
- runs-on: ubuntu-latest
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # UNIT TESTS ADMIN INTERFACE #############################################
- ##########################################################################
- - name: Admin Interface | Unit tests
- run: |
- cd admin && yarn && yarn run test
- cp -r ./coverage ../
- ##########################################################################
- # COVERAGE CHECK ADMIN INTERFACE #########################################
- ##########################################################################
- - name: Admin Interface | Coverage check
- uses: webcraftmedia/coverage-check-action@master
- with:
- report_name: Coverage Admin Interface
- type: lcov
- result_path: ./admin/coverage/lcov.info
- min_coverage: 97
- token: ${{ github.token }}
-
##############################################################################
# JOB: UNIT TEST BACKEND ####################################################
##############################################################################
@@ -415,20 +169,7 @@ jobs:
- name: backend | docker-compose database
run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
- name: backend Unit tests | test
- run: |
- cd database && yarn && yarn build && cd ../backend && yarn && yarn test
- cp -r ./coverage ../
- ##########################################################################
- # COVERAGE CHECK BACKEND #################################################
- ##########################################################################
- - name: backend | Coverage check
- uses: webcraftmedia/coverage-check-action@master
- with:
- report_name: Coverage Backend
- type: lcov
- result_path: ./backend/coverage/lcov.info
- min_coverage: 81
- token: ${{ github.token }}
+ run: cd database && yarn && yarn build && cd ../backend && yarn && yarn test
##########################################################################
# DATABASE MIGRATION TEST UP + RESET #####################################
@@ -452,108 +193,3 @@ jobs:
run: docker-compose -f docker-compose.yml run -T database yarn up
- name: database | reset
run: docker-compose -f docker-compose.yml run -T database yarn reset
-
- ##############################################################################
- # JOB: END-TO-END TESTS #####################################################
- ##############################################################################
- end-to-end-tests:
- name: End-to-End Tests
- runs-on: ubuntu-latest
- needs: [build_test_mariadb, build_test_database_up, build_test_admin, build_test_frontend, build_test_nginx]
- steps:
- ##########################################################################
- # CHECKOUT CODE ##########################################################
- ##########################################################################
- - name: Checkout code
- uses: actions/checkout@v3
- ##########################################################################
- # DOWNLOAD DOCKER IMAGES #################################################
- ##########################################################################
- - name: Download Docker Image (Mariadb)
- uses: actions/download-artifact@v3
- with:
- name: docker-mariadb-test
- path: /tmp
- - name: Load Docker Image (Mariadb)
- run: docker load < /tmp/mariadb.tar
- - name: Download Docker Image (Database Up)
- uses: actions/download-artifact@v3
- with:
- name: docker-database-test_up
- path: /tmp
- - name: Load Docker Image (Database Up)
- run: docker load < /tmp/database_up.tar
- - name: Download Docker Image (Frontend)
- uses: actions/download-artifact@v3
- with:
- name: docker-frontend-test
- path: /tmp
- - name: Load Docker Image (Frontend)
- run: docker load < /tmp/frontend.tar
- - name: Download Docker Image (Admin Interface)
- uses: actions/download-artifact@v3
- with:
- name: docker-admin-test
- path: /tmp
- - name: Load Docker Image (Admin Interface)
- run: docker load < /tmp/admin.tar
- - name: Download Docker Image (Nginx)
- uses: actions/download-artifact@v3
- with:
- name: docker-nginx-test
- path: /tmp
- - name: Load Docker Image (Nginx)
- run: docker load < /tmp/nginx.tar
-
- ##########################################################################
- # BOOT UP THE TEST SYSTEM ################################################
- ##########################################################################
- - name: Boot up test system | docker-compose mariadb
- run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb
-
- - name: Boot up test system | docker-compose database
- run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
-
- - name: Boot up test system | docker-compose backend
- run: |
- cd backend
- cp .env.test_e2e .env
- cd ..
- docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend
-
- - name: Sleep for 10 seconds
- run: sleep 10s
-
- - name: Boot up test system | seed backend
- run: |
- sudo chown runner:docker -R *
- cd database
- yarn && yarn dev_reset
- cd ../backend
- yarn && yarn seed
- cd ..
-
- - name: Boot up test system | docker-compose frontends
- run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps frontend admin nginx
-
- - name: Boot up test system | docker-compose mailserver
- run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mailserver
-
- - name: Sleep for 15 seconds
- run: sleep 15s
-
- ##########################################################################
- # END-TO-END TESTS #######################################################
- ##########################################################################
- - name: End-to-end tests | run tests
- id: e2e-tests
- run: |
- cd e2e-tests/
- yarn
- yarn run cypress run --spec cypress/e2e/User.Authentication.feature,cypress/e2e/User.Authentication.ResetPassword.feature,cypress/e2e/User.Registration.feature
- - name: End-to-end tests | if tests failed, upload screenshots
- if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }}
- uses: actions/upload-artifact@v3
- with:
- name: cypress-screenshots
- path: /home/runner/work/gradido/gradido/e2e-tests/cypress/screenshots/
diff --git a/.github/workflows/test_dht-node.yml b/.github/workflows/test_dht-node.yml
index 4ac475351..a57f09399 100644
--- a/.github/workflows/test_dht-node.yml
+++ b/.github/workflows/test_dht-node.yml
@@ -3,17 +3,38 @@ name: Gradido DHT Node Test CI
on: push
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 - DHT Node
+ runs-on: ubuntu-latest
+ outputs:
+ dht_node: ${{ steps.changes.outputs.dht_node }}
+ docker: ${{ steps.changes.outputs.docker }}
+ steps:
+ - uses: actions/checkout@v3.3.0
+
+ - name: Check for frontend file changes
+ uses: dorny/paths-filter@v2.11.1
+ id: changes
+ with:
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
+ list-files: shell
+
##############################################################################
# JOB: DOCKER BUILD TEST #####################################################
##############################################################################
build:
name: Docker Build Test - DHT Node
+ if: needs.files-changed.outputs.dht_node == 'true' || needs.files-changed.outputs.docker == 'true'
+ needs: files-changed
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- - name: Build `test` image
+ - name: Build 'test' image
run: |
docker build --target test -t "gradido/dht-node:test" -f dht-node/Dockerfile .
docker save "gradido/dht-node:test" > /tmp/dht-node.tar
@@ -29,30 +50,24 @@ jobs:
##############################################################################
lint:
name: Lint - DHT Node
+ if: needs.files-changed.outputs.dht_node == 'true'
+ needs: files-changed
runs-on: ubuntu-latest
- needs: [build]
steps:
- name: Checkout code
uses: actions/checkout@v3
-
- - name: Download Docker Image
- uses: actions/download-artifact@v3
- with:
- name: docker-dht-node-test
- path: /tmp
- - name: Load Docker Image
- run: docker load < /tmp/dht-node.tar
- name: Lint
- run: docker run --rm gradido/dht-node:test yarn run lint
+ run: cd dht-node && yarn && yarn run lint
##############################################################################
# JOB: UNIT TEST #############################################################
##############################################################################
unit_test:
name: Unit Tests - DHT Node
+ if: needs.files-changed.outputs.dht_node == 'true' || needs.files-changed.outputs.docker == 'true'
+ needs: [files-changed, build]
runs-on: ubuntu-latest
- needs: [build]
steps:
- name: Checkout code
uses: actions/checkout@v3
@@ -83,16 +98,4 @@ jobs:
#- name: Unit tests
# run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test
- name: Unit tests
- run: |
- docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net -v ~/coverage:/app/coverage --rm gradido/dht-node:test yarn run test
- cp -r ~/coverage ./coverage
-
- - name: Coverage check
- uses: webcraftmedia/coverage-check-action@master
- with:
- report_name: Coverage DHT Node
- type: lcov
- #result_path: ./dht-node/coverage/lcov.info
- result_path: ./coverage/lcov.info
- min_coverage: 79
- token: ${{ github.token }}
+ run: docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/dht-node:test yarn run test
diff --git a/.github/workflows/test_federation.yml b/.github/workflows/test_federation.yml
index ab943eedd..fc29a1bf8 100644
--- a/.github/workflows/test_federation.yml
+++ b/.github/workflows/test_federation.yml
@@ -3,11 +3,32 @@ name: Gradido Federation Test CI
on: push
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 - Federation
+ runs-on: ubuntu-latest
+ outputs:
+ docker: ${{ steps.changes.outputs.docker }}
+ federation: ${{ steps.changes.outputs.federation }}
+ steps:
+ - uses: actions/checkout@v3.3.0
+
+ - name: Check for frontend file changes
+ uses: dorny/paths-filter@v2.11.1
+ id: changes
+ with:
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
+ list-files: shell
+
##############################################################################
# JOB: DOCKER BUILD TEST #####################################################
##############################################################################
build:
name: Docker Build Test - Federation
+ if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.federation == 'true'
+ needs: files-changed
runs-on: ubuntu-latest
steps:
- name: Checkout code
@@ -29,30 +50,24 @@ jobs:
##############################################################################
lint:
name: Lint - Federation
+ if: needs.files-changed.outputs.federation == 'true'
+ needs: files-changed
runs-on: ubuntu-latest
- needs: [build]
steps:
- name: Checkout code
uses: actions/checkout@v3
-
- - name: Download Docker Image
- uses: actions/download-artifact@v3
- with:
- name: docker-federation-test
- path: /tmp
- - name: Load Docker Image
- run: docker load < /tmp/federation.tar
- name: Lint
- run: docker run --rm gradido/federation:test yarn run lint
+ run: cd federation && yarn && yarn run lint
##############################################################################
# JOB: UNIT TEST #############################################################
##############################################################################
unit_test:
name: Unit Tests - Federation
+ if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.federation == 'true'
+ needs: [files-changed, build]
runs-on: ubuntu-latest
- needs: [build]
steps:
- name: Checkout code
uses: actions/checkout@v3
@@ -84,15 +99,4 @@ jobs:
# run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test
- name: Unit tests
run: |
- docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net -v ~/coverage:/app/coverage --rm gradido/federation:test yarn run test
- cp -r ~/coverage ./coverage
-
- - name: Coverage check
- uses: webcraftmedia/coverage-check-action@master
- with:
- report_name: Coverage Federation
- type: lcov
- #result_path: ./federation/coverage/lcov.info
- result_path: ./coverage/lcov.info
- min_coverage: 72
- token: ${{ github.token }}
+ docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/federation:test yarn run test
diff --git a/.github/workflows/test_frontend.yml b/.github/workflows/test_frontend.yml
new file mode 100644
index 000000000..6dd527079
--- /dev/null
+++ b/.github/workflows/test_frontend.yml
@@ -0,0 +1,84 @@
+name: Gradido Frontend Test CI
+
+on: push
+
+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
+ runs-on: ubuntu-latest
+ outputs:
+ frontend: ${{ steps.changes.outputs.frontend }}
+ steps:
+ - uses: actions/checkout@v3.3.0
+
+ - name: Check for frontend file changes
+ uses: dorny/paths-filter@v2.11.1
+ id: changes
+ with:
+ token: ${{ github.token }}
+ filters: .github/file-filters.yml
+ list-files: shell
+
+
+ build_test:
+ if: needs.files-changed.outputs.frontend == 'true'
+ name: Docker Build Test - Frontend
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Frontend | Build 'test' image
+ run: docker build --target test -t "gradido/frontend:test" frontend/ --build-arg NODE_ENV="test"
+
+ unit_test:
+ if: needs.files-changed.outputs.frontend == 'true'
+ name: Unit Tests - Frontend
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Frontend | Unit tests
+ run: cd frontend && yarn && yarn run test
+
+ lint:
+ if: needs.files-changed.outputs.frontend == 'true'
+ name: Lint - Frontend
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Frontend | Lint
+ run: cd frontend && yarn && yarn run lint
+
+ stylelint:
+ if: needs.files-changed.outputs.frontend == 'true'
+ name: Stylelint - Frontend
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Frontend | Stylelint
+ run: cd frontend && yarn && yarn run stylelint
+
+ locales:
+ if: needs.files-changed.outputs.frontend == 'true'
+ name: Locales - Frontend
+ needs: files-changed
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Frontend | Locales
+ run: cd frontend && yarn && yarn run locales
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4bfc66e39..8dc91f2fa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,8 +4,76 @@ All notable changes to this project will be documented in this file. Dates are d
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
+#### [1.19.1](https://github.com/gradido/gradido/compare/1.19.0...1.19.1)
+
+- fix(frontend): admin question clickable [`#2810`](https://github.com/gradido/gradido/pull/2810)
+- refactor(frontend): change b-img to b-icon send [`#2809`](https://github.com/gradido/gradido/pull/2809)
+- fix(admin): update openCreation in case of tab open. [`#2806`](https://github.com/gradido/gradido/pull/2806)
+- fix(admin): english language for contributions in admin [`#2804`](https://github.com/gradido/gradido/pull/2804)
+- refactor(admin): event buttons for myself turned off in open contributions [`#2760`](https://github.com/gradido/gradido/pull/2760)
+- fix(admin): contribution page [`#2794`](https://github.com/gradido/gradido/pull/2794)
+- fix(frontend): info.svg [`#2798`](https://github.com/gradido/gradido/pull/2798)
+- fix(backend): add relation messages to database query [`#2795`](https://github.com/gradido/gradido/pull/2795)
+- fix(admin): header and menu [`#2793`](https://github.com/gradido/gradido/pull/2793)
+- fix(frontend): send gdd - change first submit button text to 'Check Now' [`#2774`](https://github.com/gradido/gradido/pull/2774)
+- refactor(frontend): creations generated by link NL [`#2771`](https://github.com/gradido/gradido/pull/2771)
+- refactor(frontend): creations generated by link (FR) + (NL) [`#2770`](https://github.com/gradido/gradido/pull/2770)
+- refactor(frontend): update German locales [`#2765`](https://github.com/gradido/gradido/pull/2765)
+- refactor(backend): use find contributions helper for list contributions [`#2762`](https://github.com/gradido/gradido/pull/2762)
+
+#### [1.19.0](https://github.com/gradido/gradido/compare/1.18.2...1.19.0)
+
+> 7 March 2023
+
+- chore(release): version 1.19.0 [`#2786`](https://github.com/gradido/gradido/pull/2786)
+- fix(frontend): change contribution design [`#2731`](https://github.com/gradido/gradido/pull/2731)
+- refactor(frontend): commnity navbar- & unauthenticated b-gradido styles [`#2732`](https://github.com/gradido/gradido/pull/2732)
+- fix(database): change downwards migration to delete entries with last_announced_at IS NULL [`#2767`](https://github.com/gradido/gradido/pull/2767)
+- feat(admin): deleted contributions visible [`#2759`](https://github.com/gradido/gradido/pull/2759)
+- feat(other): e2e test user story user registration [`#2753`](https://github.com/gradido/gradido/pull/2753)
+- refactor(frontend): style and design changes to a contribution [`#2648`](https://github.com/gradido/gradido/pull/2648)
+- test(backend): add tests that ``sendContributionDeleted`` and ``sendContributionDenied`` are called [`#2740`](https://github.com/gradido/gradido/pull/2740)
+- fix(backend): set email tls true in test [`#2763`](https://github.com/gradido/gradido/pull/2763)
+- refactor(frontend): add visible event an answer question [`#2750`](https://github.com/gradido/gradido/pull/2750)
+- refactor(frontend): style sidebar, add icons [`#2737`](https://github.com/gradido/gradido/pull/2737)
+- fix(backend): possible flaky test [`#2761`](https://github.com/gradido/gradido/pull/2761)
+- fix(backend): emails – adjust namings of menus to new design [`#2756`](https://github.com/gradido/gradido/pull/2756)
+- ci(other): rename dht node and federation workflow jobs for better branch protection maintenance [`#2743`](https://github.com/gradido/gradido/pull/2743)
+- refactor(backend): combine logic for `listTransactionLinks` & `listTransactionLinksAdmin` [`#2706`](https://github.com/gradido/gradido/pull/2706)
+- refactor(backend): remove admin create contributions [`#2724`](https://github.com/gradido/gradido/pull/2724)
+- refactor(frontend): remove .vue as imports [`#2725`](https://github.com/gradido/gradido/pull/2725)
+- feat(federation): add dht-node to deployment scripts [`#2729`](https://github.com/gradido/gradido/pull/2729)
+- fix(frontend): change fetchPolicy, add scripts.update [`#2718`](https://github.com/gradido/gradido/pull/2718)
+- refactor(backend): list unconfirmed contribution to admin list all contribution [`#2666`](https://github.com/gradido/gradido/pull/2666)
+- refactor(frontend): community routes [`#2721`](https://github.com/gradido/gradido/pull/2721)
+- test(backend): authentication tests for TransactionLinkResolver [`#2705`](https://github.com/gradido/gradido/pull/2705)
+- refactor(backend): use LogError on errors [`#2679`](https://github.com/gradido/gradido/pull/2679)
+- refactor(backend): use LogError on encryptorUtils [`#2678`](https://github.com/gradido/gradido/pull/2678)
+- refactor(backend): use LogError on creations [`#2677`](https://github.com/gradido/gradido/pull/2677)
+- refactor(other): decrease docker build dependencies in test workflow [`#2719`](https://github.com/gradido/gradido/pull/2719)
+- refactor(backend): unit test for the method denyContribution [`#2639`](https://github.com/gradido/gradido/pull/2639)
+- refactor(frontend): logo inserted with better quality. [`#2646`](https://github.com/gradido/gradido/pull/2646)
+- feat(federation): harmonize and sync modules and data of federation [`#2665`](https://github.com/gradido/gradido/pull/2665)
+- feat(federation): add docker and github-workflow files [`#2680`](https://github.com/gradido/gradido/pull/2680)
+- feat(other): e2e test user authentication reset password [`#2644`](https://github.com/gradido/gradido/pull/2644)
+- refactor(admin): add tabs for all statusus on contributions [`#2623`](https://github.com/gradido/gradido/pull/2623)
+- feat(federation): implement a graphql client to request getpublickey [`#2511`](https://github.com/gradido/gradido/pull/2511)
+- refactor(frontend): style refactor mobil auth area [`#2643`](https://github.com/gradido/gradido/pull/2643)
+- refactor(backend): use LogError on TransactionResolver [`#2676`](https://github.com/gradido/gradido/pull/2676)
+- refactor(backend): event protocol rework [`#2691`](https://github.com/gradido/gradido/pull/2691)
+- refactor(backend): use LogError on TransactionLinkResolver [`#2673`](https://github.com/gradido/gradido/pull/2673)
+- fix(frontend): simple disabled function on submit send [`#2647`](https://github.com/gradido/gradido/pull/2647)
+- refactor(frontend): missing message on old transactions [`#2660`](https://github.com/gradido/gradido/pull/2660)
+- refactor(admin): remove overview and multi creation menu entry [`#2661`](https://github.com/gradido/gradido/pull/2661)
+- feat(other): add locales check to backend and integrate it to test workflow [`#2693`](https://github.com/gradido/gradido/pull/2693)
+- refactor(other): add linting rules like in backend modul [`#2695`](https://github.com/gradido/gradido/pull/2695)
+- refactor(backend): use LogError on contributionResolver [`#2669`](https://github.com/gradido/gradido/pull/2669)
+
#### [1.18.2](https://github.com/gradido/gradido/compare/1.18.1...1.18.2)
+> 10 February 2023
+
+- chore(release): version 1.18.2 [`#2700`](https://github.com/gradido/gradido/pull/2700)
- fix(admin): deny contribution button to left [`#2699`](https://github.com/gradido/gradido/pull/2699)
#### [1.18.1](https://github.com/gradido/gradido/compare/1.18.0...1.18.1)
diff --git a/README.md b/README.md
index 3d086018e..87b4f44e5 100644
--- a/README.md
+++ b/README.md
@@ -76,7 +76,11 @@ git clone git@github.com:gradido/gradido.git
git submodule update --recursive --init
```
-### 2. Run docker-compose
+### 2. Install modules
+
+You can go in each under folder (admin, frontend, database, backend, ...) and call ``yarn`` in each folder or you can call ``yarn installAll``.
+
+### 3. Run docker-compose
Run docker-compose to bring up the development environment
diff --git a/admin/jest.config.js b/admin/jest.config.js
index 9233dd2e7..b6ec1dc80 100644
--- a/admin/jest.config.js
+++ b/admin/jest.config.js
@@ -1,11 +1,17 @@
module.exports = {
verbose: true,
+ collectCoverage: true,
collectCoverageFrom: [
'src/**/*.{js,vue}',
'!**/node_modules/**',
'!src/assets/**',
'!**/?(*.)+(spec|test).js?(x)',
],
+ coverageThreshold: {
+ global: {
+ lines: 97,
+ },
+ },
moduleFileExtensions: [
'js',
// 'jsx',
diff --git a/admin/package.json b/admin/package.json
index 941a9bf69..3406c326a 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -3,7 +3,7 @@
"description": "Administraion Interface for Gradido",
"main": "index.js",
"author": "Moriz Wahl",
- "version": "1.18.2",
+ "version": "1.19.1",
"license": "Apache-2.0",
"private": false,
"scripts": {
@@ -14,7 +14,7 @@
"analyse-bundle": "yarn build && webpack-bundle-analyzer dist/webpack.stats.json",
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
- "test": "cross-env TZ=UTC jest --coverage",
+ "test": "cross-env TZ=UTC jest",
"locales": "scripts/sort.sh"
},
"dependencies": {
diff --git a/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js b/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js
index 0092751cc..f0b6ea821 100644
--- a/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js
+++ b/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js
@@ -10,6 +10,7 @@ describe('ContributionMessagesList', () => {
const propsData = {
contributionId: 42,
+ contributionState: 'PENDING',
}
const mocks = {
diff --git a/admin/src/components/ContributionMessages/ContributionMessagesList.vue b/admin/src/components/ContributionMessages/ContributionMessagesList.vue
index 636627385..fab6b5e4a 100644
--- a/admin/src/components/ContributionMessages/ContributionMessagesList.vue
+++ b/admin/src/components/ContributionMessages/ContributionMessagesList.vue
@@ -1,17 +1,18 @@
- {{ messages.lenght }}
-
+
+
+