---
fix:prettier:
  stage: fix
  image:
    name: megabytelabs/prettier-write:slim
    entrypoint: ['']
  rules:
    - if: $DO_CI == 'false'
      when: never
    - if: $CI_COMMIT_TITLE =~ /^chore.*/
      when: never
    - if: $CI_PIPELINE_SOURCE != 'pipeline' && $CI_PIPELINE_SOURCE != 'web' && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
      changes:
        - '**/*.{css,html,js,json,less,md,mjml,php,scss,sh,ts,xml,yml}'
    - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
      changes:
        - '**/*.{css,html,js,json,less,md,mjml,php,scss,sh,ts,xml,yml}'
    - if: $CI_PROJECT_PATH == 'megabyte-labs/common/shared'
      changes:
        - '**/*.{css,html,js,json,less,md,mjml,php,scss,sh,ts,xml,yml}'
  variables:
    GIT_DEPTH: 1
    NODE_MODULES_PATH: /usr/local/lib/node_modules
    PRETTIER_CONFIG: '@mblabs/prettier-config'
  before_script:
    - git config pull.ff only
    - git remote set-url origin "https://root:$GROUP_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git"
    - git config user.email "$GITLAB_CI_EMAIL"
    - git config user.name "$GITLAB_CI_NAME"
    - git checkout "$CI_COMMIT_REF_NAME"
    - git pull origin "$CI_COMMIT_REF_NAME" --allow-unrelated-histories
  script:
    - set -eo pipefail
    - echo "***Prettier Configuration*** ---> $PRETTIER_CONFIG"
    - cat "$NODE_MODULES_PATH/$PRETTIER_CONFIG/index.js"
    - prettier --config "$NODE_MODULES_PATH/$PRETTIER_CONFIG/index.js" --write --list-different .
    - if [ -f package.json ]; then prettier-package-json --write package.json; fi
    - git add --all
    - git diff --cached *
    - |
      if [[ `git status --porcelain` ]]; then
        git commit -m "automation(prettier-fix) Fixed formatting issues with Prettier on GitLab CI."
        git push origin "$CI_COMMIT_REF_NAME"
      fi
