diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 99b263acd8..efe9eeac28 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -148,262 +148,268 @@ jobs: fi fi - setup: - # long timeout required when cache has to be recreated - timeout-minutes: 30 - name: "Setup" - runs-on: ubuntu-22.04 - needs: [check-if-pr-is-approved, check-package-lock] - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all tags and branches - - uses: ./.github/actions/setup - - name: install - run: | - npm ci - nx run cli:bundle - nx run testing:bundle - - run: nx print-affected $NX_CALCULATION_FLAGS - - uses: ./.github/actions/upload-node-modules-and-artifacts + # setup: + # # long timeout required when cache has to be recreated + # timeout-minutes: 30 + # name: "Setup" + # runs-on: ubuntu-22.04 + # needs: [check-if-pr-is-approved, check-package-lock] + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all tags and branches + # - uses: ./.github/actions/setup + # - name: install + # run: | + # npm ci + # nx run cli:bundle + # nx run testing:bundle + # - run: nx print-affected $NX_CALCULATION_FLAGS + # - uses: ./.github/actions/upload-node-modules-and-artifacts - unit-tests: - timeout-minutes: 30 - name: "Unit tests: ${{ matrix.unit-tests.name }}" - runs-on: ubuntu-22.04 - needs: [setup] - strategy: - fail-fast: false - # max-parallel: 4 - matrix: - unit-tests: - - name: content-services - exclude: "insights,core,extensions,process-services,process-services-cloud" - - name: core - exclude: "insights,content-services,process-services,process-services-cloud" - - name: insights and process-services - exclude: "core,extensions,content-services,process-services-cloud" - - name: process-cloud - exclude: "insights,core,extensions,content-services,process-services" - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all tags and branches - - uses: ./.github/actions/setup - - uses: ./.github/actions/download-node-modules-and-artifacts - - name: Run unit tests - run: | - /usr/bin/xvfb-run --auto-servernum nx affected:test $NX_CALCULATION_FLAGS --exclude=${{ matrix.unit-tests.exclude }} + # unit-tests: + # timeout-minutes: 30 + # name: "Unit tests: ${{ matrix.unit-tests.name }}" + # runs-on: ubuntu-22.04 + # needs: [setup] + # strategy: + # fail-fast: false + # # max-parallel: 4 + # matrix: + # unit-tests: + # - name: content-services + # exclude: "insights,core,extensions,process-services,process-services-cloud" + # - name: core + # exclude: "insights,content-services,process-services,process-services-cloud" + # - name: insights and process-services + # exclude: "core,extensions,content-services,process-services-cloud" + # - name: process-cloud + # exclude: "insights,core,extensions,content-services,process-services" + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all tags and branches + # - uses: ./.github/actions/setup + # - uses: ./.github/actions/download-node-modules-and-artifacts + # - name: Run unit tests + # run: | + # /usr/bin/xvfb-run --auto-servernum nx affected:test $NX_CALCULATION_FLAGS --exclude=${{ matrix.unit-tests.exclude }} - lint: - # long timeout required when cache has to be recreated - timeout-minutes: 30 - name: "Lint" - runs-on: ubuntu-22.04 - needs: [setup] - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all tags and branches - - uses: ./.github/actions/setup - - uses: ./.github/actions/download-node-modules-and-artifacts - - run: nx affected --target=lint $NX_CALCULATION_FLAGS + # lint: + # # long timeout required when cache has to be recreated + # timeout-minutes: 30 + # name: "Lint" + # runs-on: ubuntu-22.04 + # needs: [setup] + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all tags and branches + # - uses: ./.github/actions/setup + # - uses: ./.github/actions/download-node-modules-and-artifacts + # - run: nx affected --target=lint $NX_CALCULATION_FLAGS - build-libs: - # long timeout required when cache has to be recreated - timeout-minutes: 30 - name: "Build libs" - runs-on: ubuntu-22.04 - needs: [setup] - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all tags and branches - - uses: ./.github/actions/setup - - uses: ./.github/actions/download-node-modules-and-artifacts - - run: nx affected:build $NX_CALCULATION_FLAGS --prod - - run: nx build demoshell --configuration production - - run: nx affected --target=build-storybook $NX_CALCULATION_FLAGS --configuration ci - - uses: ./.github/actions/upload-node-modules-and-artifacts + # build-libs: + # # long timeout required when cache has to be recreated + # timeout-minutes: 30 + # name: "Build libs" + # runs-on: ubuntu-22.04 + # needs: [setup] + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all tags and branches + # - uses: ./.github/actions/setup + # - uses: ./.github/actions/download-node-modules-and-artifacts + # - run: nx affected:build $NX_CALCULATION_FLAGS --prod + # - run: nx build demoshell --configuration production + # - run: nx affected --target=build-storybook $NX_CALCULATION_FLAGS --configuration ci + # - uses: ./.github/actions/upload-node-modules-and-artifacts - e2e-storybook: - timeout-minutes: 20 - name: "e2e: storybook" - needs: [build-libs, lint, unit-tests] - runs-on: ubuntu-22.04 - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all - - uses: ./.github/actions/setup - - uses: ./.github/actions/download-node-modules-and-artifacts - - name: Process Cloud Storybook Playwright - run: | - npx playwright install chromium - sudo sysctl -w fs.inotify.max_user_watches=524288 - npx nx affected --target=e2e-playwright $NX_CALCULATION_FLAGS || exit 1 - - uses: ./.github/actions/upload-node-modules-and-artifacts + # e2e-storybook: + # timeout-minutes: 20 + # name: "e2e: storybook" + # needs: [build-libs, lint, unit-tests] + # runs-on: ubuntu-22.04 + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all + # - uses: ./.github/actions/setup + # - uses: ./.github/actions/download-node-modules-and-artifacts + # - name: Process Cloud Storybook Playwright + # run: | + # npx playwright install chromium + # sudo sysctl -w fs.inotify.max_user_watches=524288 + # npx nx affected --target=e2e-playwright $NX_CALCULATION_FLAGS || exit 1 + # - uses: ./.github/actions/upload-node-modules-and-artifacts - e2e: - timeout-minutes: 90 - name: "e2e: ${{ matrix.e2e-test.description }}" - needs: [build-libs, lint, unit-tests] - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - # max-parallel: 4 - matrix: - e2e-test: - - description: "Core" - test-id: "core" - folder: "core" - provider: "ALL" - auth: "OAUTH" - check-cs-env: "true" - check-ps-env: "true" - - description: "Content: Components" - test-id: "content-services" - folder: "content-services/components" - provider: "ECM" - auth: "BASIC" - check-cs-env: "true" - - description: "Content: Directives" - test-id: "content-services" - folder: "content-services/directives" - provider: "ECM" - auth: "BASIC" - check-cs-env: "true" - - description: "Content: Document List" - test-id: "content-services" - folder: "content-services/document-list" - provider: "ECM" - auth: "BASIC" - check-cs-env: "true" - - description: "Content: Metadata" - test-id: "content-services" - folder: "content-services/metadata" - provider: "ECM" - auth: "BASIC" - check-cs-env: "true" - - description: "Content: Upload and Versioning" - test-id: "content-services" - folder: "content-services/upload" - provider: "ECM" - auth: "BASIC" - check-cs-env: "true" - - description: "Search" - test-id: "content-services" - folder: "search" - provider: "ECM" - auth: "BASIC" - check-cs-env: "true" - - description: "Process: Form" - test-id: "process-services" - folder: "process-services/form" - provider: "BPM" - auth: "OAUTH" - check-ps-env: "true" - check-external-cs-env: "true" - - description: "Process: Process" - test-id: "process-services" - folder: "process-services/process" - provider: "BPM" - auth: "OAUTH" - check-ps-env: "true" - check-external-cs-env: "true" - - description: "Process: Tasks" - test-id: "process-services" - folder: "process-services/tasks" - provider: "BPM" - auth: "OAUTH" - check-ps-env: "true" - check-external-cs-env: "true" - - description: "Process: Widget" - test-id: "process-services" - folder: "process-services/widgets" - provider: "BPM" - auth: "OAUTH" - check-ps-env: "true" - check-external-cs-env: "true" - - description: "Process Cloud: Form" - test-id: "process-services-cloud" - folder: "process-services-cloud/form-field" - provider: "ALL" - auth: "OAUTH" - apa-proxy: true - check-cs-env: "true" - check-ps-cloud-env: "true" - - description: "Process Cloud: People" - test-id: "process-services-cloud" - folder: "process-services-cloud/people" - provider: "ALL" - auth: "OAUTH" - apa-proxy: true - check-cs-env: "true" - check-ps-cloud-env: "true" - - description: "Process Cloud: Process" - test-id: "process-services-cloud" - folder: "process-services-cloud/process" - provider: "ALL" - auth: "OAUTH" - apa-proxy: true - check-cs-env: "true" - check-ps-cloud-env: "true" - - description: "Process Cloud: Start Task" - test-id: "process-services-cloud" - folder: "process-services-cloud/start-task" - provider: "ALL" - auth: "OAUTH" - apa-proxy: true - check-cs-env: "true" - check-ps-cloud-env: "true" - - description: "Process Cloud: Tasks List" - test-id: "process-services-cloud" - folder: "process-services-cloud/task-list" - provider: "ALL" - auth: "OAUTH" - apa-proxy: true - check-cs-env: "true" - check-ps-cloud-env: "true" + # e2e: + # timeout-minutes: 90 + # name: "e2e: ${{ matrix.e2e-test.description }}" + # needs: [build-libs, lint, unit-tests] + # runs-on: ubuntu-22.04 + # strategy: + # fail-fast: false + # # max-parallel: 4 + # matrix: + # e2e-test: + # - description: "Core" + # test-id: "core" + # folder: "core" + # provider: "ALL" + # auth: "OAUTH" + # check-cs-env: "true" + # check-ps-env: "true" + # - description: "Content: Components" + # test-id: "content-services" + # folder: "content-services/components" + # provider: "ECM" + # auth: "BASIC" + # check-cs-env: "true" + # - description: "Content: Directives" + # test-id: "content-services" + # folder: "content-services/directives" + # provider: "ECM" + # auth: "BASIC" + # check-cs-env: "true" + # - description: "Content: Document List" + # test-id: "content-services" + # folder: "content-services/document-list" + # provider: "ECM" + # auth: "BASIC" + # check-cs-env: "true" + # - description: "Content: Metadata" + # test-id: "content-services" + # folder: "content-services/metadata" + # provider: "ECM" + # auth: "BASIC" + # check-cs-env: "true" + # - description: "Content: Upload and Versioning" + # test-id: "content-services" + # folder: "content-services/upload" + # provider: "ECM" + # auth: "BASIC" + # check-cs-env: "true" + # - description: "Search" + # test-id: "content-services" + # folder: "search" + # provider: "ECM" + # auth: "BASIC" + # check-cs-env: "true" + # - description: "Process: Form" + # test-id: "process-services" + # folder: "process-services/form" + # provider: "BPM" + # auth: "OAUTH" + # check-ps-env: "true" + # check-external-cs-env: "true" + # - description: "Process: Process" + # test-id: "process-services" + # folder: "process-services/process" + # provider: "BPM" + # auth: "OAUTH" + # check-ps-env: "true" + # check-external-cs-env: "true" + # - description: "Process: Tasks" + # test-id: "process-services" + # folder: "process-services/tasks" + # provider: "BPM" + # auth: "OAUTH" + # check-ps-env: "true" + # check-external-cs-env: "true" + # - description: "Process: Widget" + # test-id: "process-services" + # folder: "process-services/widgets" + # provider: "BPM" + # auth: "OAUTH" + # check-ps-env: "true" + # check-external-cs-env: "true" + # - description: "Process Cloud: Form" + # test-id: "process-services-cloud" + # folder: "process-services-cloud/form-field" + # provider: "ALL" + # auth: "OAUTH" + # apa-proxy: true + # check-cs-env: "true" + # check-ps-cloud-env: "true" + # - description: "Process Cloud: People" + # test-id: "process-services-cloud" + # folder: "process-services-cloud/people" + # provider: "ALL" + # auth: "OAUTH" + # apa-proxy: true + # check-cs-env: "true" + # check-ps-cloud-env: "true" + # - description: "Process Cloud: Process" + # test-id: "process-services-cloud" + # folder: "process-services-cloud/process" + # provider: "ALL" + # auth: "OAUTH" + # apa-proxy: true + # check-cs-env: "true" + # check-ps-cloud-env: "true" + # - description: "Process Cloud: Start Task" + # test-id: "process-services-cloud" + # folder: "process-services-cloud/start-task" + # provider: "ALL" + # auth: "OAUTH" + # apa-proxy: true + # check-cs-env: "true" + # check-ps-cloud-env: "true" + # - description: "Process Cloud: Tasks List" + # test-id: "process-services-cloud" + # folder: "process-services-cloud/task-list" + # provider: "ALL" + # auth: "OAUTH" + # apa-proxy: true + # check-cs-env: "true" + # check-ps-cloud-env: "true" - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for all - - uses: ./.github/actions/setup - with: - enable-cache: "true" - enable-node-modules-cache: "true" - - uses: ./.github/actions/download-node-modules-and-artifacts - - name: setup chrome - uses: ./.github/actions/setup-chrome - - name: e2e - uses: ./.github/actions/e2e - with: - e2e-test-id: ${{ matrix.e2e-test.test-id }} - e2e-test-folder: ${{ matrix.e2e-test.folder }} - e2e-test-provider: ${{ matrix.e2e-test.provider }} - e2e-test-auth: ${{ matrix.e2e-test.auth }} - check-cs-env: ${{ matrix.e2e-test.check-cs-env }} - check-ps-env: ${{ matrix.e2e-test.check-ps-env }} - check-ps-cloud-env: ${{ matrix.e2e-test.check-ps-cloud-env }} - check-external-cs-env: ${{ matrix.e2e-test.check-external-cs-env }} - apa-proxy: ${{ matrix.e2e-test.apa-proxy }} + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all + # - uses: ./.github/actions/setup + # with: + # enable-cache: "true" + # enable-node-modules-cache: "true" + # - uses: ./.github/actions/download-node-modules-and-artifacts + # - name: setup chrome + # uses: ./.github/actions/setup-chrome + # - name: e2e + # uses: ./.github/actions/e2e + # with: + # e2e-test-id: ${{ matrix.e2e-test.test-id }} + # e2e-test-folder: ${{ matrix.e2e-test.folder }} + # e2e-test-provider: ${{ matrix.e2e-test.provider }} + # e2e-test-auth: ${{ matrix.e2e-test.auth }} + # check-cs-env: ${{ matrix.e2e-test.check-cs-env }} + # check-ps-env: ${{ matrix.e2e-test.check-ps-env }} + # check-ps-cloud-env: ${{ matrix.e2e-test.check-ps-cloud-env }} + # check-external-cs-env: ${{ matrix.e2e-test.check-external-cs-env }} + # apa-proxy: ${{ matrix.e2e-test.apa-proxy }} results: if: ${{ always() }} # if: success() || failure() runs-on: ubuntu-latest name: Final Results - needs: [check-if-pr-is-approved, check-package-lock, build-libs, e2e, e2e-storybook] + # needs: [check-if-pr-is-approved, check-package-lock, build-libs, e2e, e2e-storybook] + needs: [check-if-pr-is-approved, check-package-lock] steps: - - run: exit 1 + - name: fail on workflow failure + run: exit 1 if: ${{ contains(needs.*.result, 'failure') }} - - run: exit 1 + - name: fail on workflow canceled + run: exit 1 if: ${{ contains(needs.*.result, 'cancelled') }} + - name: ok on workflow success + run: exit 0 + if: ${{ contains(needs.*.result, 'success') }}