diff --git a/.github/file-filters.yml b/.github/file-filters.yml new file mode 100644 index 000000000..e41dfb6d8 --- /dev/null +++ b/.github/file-filters.yml @@ -0,0 +1,31 @@ +# 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/**/*' \ No newline at end of file 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.yml b/.github/workflows/test.yml index 8b52bacdd..7a9243af9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,31 +29,6 @@ jobs: 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 ############################################# ############################################################################## @@ -211,60 +186,6 @@ jobs: - 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 ########################################################## ############################################################################## @@ -336,24 +257,6 @@ jobs: ########################################################################## - name: Frontend | Unit tests run: cd frontend && yarn && yarn run test - - ############################################################################## - # 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 ############################################################################## # JOB: UNIT TEST BACKEND #################################################### @@ -420,7 +323,7 @@ jobs: 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] + needs: [build_test_mariadb, build_test_database_up, build_test_frontend, build_test_nginx] steps: ########################################################################## # CHECKOUT CODE ########################################################## @@ -451,13 +354,6 @@ jobs: 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: