Junit Report with manual steps doesn't show widget until all manual steps are done

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

typebug testingcoverage testingpipeline reports groupci platform

I read the severity rules and I wouldn't know what severity to assign to it

Looking at the Junit Reporter documentation and I think this should work, there isn't any restrictions that I can see. I Believe the screenshots exemplify what is happening that shouldn't

Explanation of screenshots

  1. In test the test works, finishes, and uploads the report.
  2. In review and/or review cleanup the stages are marked as manual, since you wouldn't want to cleanup until after manual inspection
  3. The test report doesn't show up up until I manually execute the last cleanup job (It is marked as cleanup and it should execute automatically when the merge requests merges)
  4. I wish it would show up the test report widget when the tests finish
  5. This also happens for other report widgets, like code quality

Screenshot_2024-08-27_at_2.54.21_PM

Screenshot_2024-08-27_at_2.54.12_PM

Screenshot_2024-08-27_at_2.54.37_PM

This is on a gitlab community edition

I leave here a cropped up version of our .gitlab-ci.yml that shows the issue for context

stages:
  - build
  - test
  - deploy
  - cleanup

variables:
  SUGGESTED_ENVIRONMENT: review/$CI_COMMIT_REF_SLUG

.npm_default:
  before_script: npm ci
  image: node:20
  

build:
  extends: [.npm_default]
  artifacts:
    name: built distribution
    paths:
      - ./dist
      - ./scripts
  environment:
    name: $SUGGESTED_ENVIRONMENT
    action: prepare

.swa:
  variables:
    GIT_STRATEGY: none
    DEPLOYMENT_PROVIDER: GitHub
    API_TOKEN: $AZURE_SWA_DEPLOYMENT_TOKEN
    APP_PATH: "$CI_PROJECT_DIR/dist"
    BRANCH: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
    PRODUCTION_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
  image: mcr.microsoft.com/appsvc/staticappsclient:stable

.deploy:
  stage: deploy
  extends: .swa
  environment:
    name: $ENVIRONMENT
    url: $OUTPUT_URL
  script:
    - ./scripts/upload.sh
  dependencies:
    - "build"
  artifacts:
    paths:
      - deploy.env
      - ./scripts
    untracked: false
    when: on_success
    expire_in: "7 days"
    reports:
      dotenv: deploy.env

e2e test:
  # Based on this config https://playwright.dev/docs/ci#gitlab-ci
  stage: test
  image: mcr.microsoft.com/playwright:v1.46.1-jammy
  script:
    - CI=true npm run test:e2e:ci
    # TODO: If it is slow, make it shard and split across a `parallel.matrix`
    # - CI=true npm run test:e2e --  "--project=$PROJECT" "--shard=$SHARD"
  artifacts:
    when: always
    paths:
      - report/playwright/junit.xml
    reports:
      junit: report/playwright/junit.xml

.review:
  extends: .deploy
  needs:
    - build
  environment:
    name: $SUGGESTED_ENVIRONMENT
    auto_stop_in: 48 hours
    on_stop: review-cleanup
  variables:
    DEPLOYMENT_ENVIRONMENT: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME

review:
  extends: .review
  environment:
    name: $SUGGESTED_ENVIRONMENT
    deployment_tier: testing
  rules:
    - if: $SUGGESTED_ENVIRONMENT =~ /^review.*/
      when: manual
    - when: never

review-cleanup:
  extends: .swa
  retry: 2
  rules:
    - if: $SUGGESTED_ENVIRONMENT
      when: manual
    - when: never
  environment:
    name: $SUGGESTED_ENVIRONMENT
    action: stop
  stage: cleanup
  # Both jobs don't exist always, and that's ok, you'll get an either/or situation therefore
  dependencies:
    - review
    - review-staging
  script:
    - ./scripts/close.sh
Edited by Rutvik Shah