HXOR-164 pr check job: condition handling

This commit is contained in:
Marco Carrozzo
2023-03-02 15:23:23 +01:00
parent 8c5cf3253a
commit 031a129f6c

View File

@@ -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') }}