Verified Commit d9a54f38 authored by Adrian DC's avatar Adrian DC
Browse files

ci(gitlab-ci): isolate 'readme' job to 'readme.yml' template

Signed-off-by: default avatarAdrian DC <radian.dc@gmail.com>
parent 26d7492b
Loading
Loading
Loading
Loading
+53 −0
Changes for .gitlab-ci.d/readme.yml: 53 added lines, 0 removed lines.
Original line number Diff line number Diff line
spec:
  inputs:
    stage:
      default: test
      description: 'Defines the readme stage (Default: test)'
    image:
      default: local:silent
      description: 'Specify the readme image (Default: local:silent)'
---

readme:
  stage: $[[ inputs.stage ]]
  image: $[[ inputs.image ]]
  script:
    - |
      export COLUMNS=120
      mkdir -p ./.tmp/
      PROJECT_PACKAGE=$(grep '^PROJECT_PACKAGE =' ./setup.py | cut -d"'" -f2)
      {
        echo ''
        echo '```yaml'
        alignments='[ ]\{2,\}'
        argument='[[:alnum:]][[:alnum:]_-]\{0,\}'
        letter='[[:alnum:]_]\{1\}'
        parameter='[-]\{1,2\}[[:alnum:]][[:alnum:]_-]\{0,\}'
        separator='--'
        word='[[:alnum:]_-]\{1,\}'
        help="[(]\{0,1\}${word}"
        "${PROJECT_PACKAGE}" --help \
          | sed '1d; $d' \
          | sed "s/^\(  ${parameter} \[${word}\]\(\|, ${parameter} \[${word}\]\)${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}\( ${word}\)\{1,\}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}\( ${word}\)\{1,\}, ${parameter}\( ${word}\)\{1,\}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}, ${parameter}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${separator}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${argument}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${alignments}\)\(${help}\)/\1# \2/g"
        echo '```'
        echo ''
      } >./.tmp/README.help.tmp
    - |
      lead='^<!-- readme-help-start -->$'
      tail='^<!-- readme-help-stop -->$'
      sed -i "/${lead}/,/${tail}/{ /${lead}/{ p; r ./.tmp/README.help.tmp
        }; /${tail}/p; d }"  ./README.md | head -n 100
    - rm -f ./.tmp/README.help.tmp
    - |
      git -c color.diff=always --no-pager diff ./README.md | grep --color=never '.' && echo ' '
      echo  ' > README: Updated successfully'
      git diff --quiet ./README.md
  rules:
    - if: $CI_LOCAL
+3 −44
Changes for .gitlab-ci.yml: 3 added lines, 44 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@ include:
  - component: gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commits@5.0.0
    inputs:
      stage: prepare
  - local: .gitlab-ci.d/readme.yml
    inputs:
      stage: build
  - local: .gitlab-ci.d/sonarcloud.yml
    inputs:
      stage: quality
@@ -506,50 +509,6 @@ install:
  rules:
    - if: $CI_LOCAL

readme:
  stage: build
  image: local:silent
  script:
    - |
      export COLUMNS=120
      mkdir -p ./.tmp/
      PROJECT_PACKAGE=$(grep '^PROJECT_PACKAGE =' ./setup.py | cut -d"'" -f2)
      {
        echo ''
        echo '```yaml'
        alignments='[ ]\{2,\}'
        argument='[[:alnum:]][[:alnum:]_-]\{0,\}'
        letter='[[:alnum:]_]\{1\}'
        parameter='[-]\{1,2\}[[:alnum:]][[:alnum:]_-]\{0,\}'
        separator='--'
        word='[[:alnum:]_-]\{1,\}'
        help="[(]\{0,1\}${word}"
        "${PROJECT_PACKAGE}" --help \
          | sed '1d; $d' \
          | sed "s/^\(  ${parameter} \[${word}\]\(\|, ${parameter} \[${word}\]\)${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}\( ${word}\)\{1,\}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}\( ${word}\)\{1,\}, ${parameter}\( ${word}\)\{1,\}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${parameter}, ${parameter}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${separator}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${argument}${alignments}\)/\1# /g" \
          | sed "s/^\(  ${alignments}\)\(${help}\)/\1# \2/g"
        echo '```'
        echo ''
      } >./.tmp/README.help.tmp
    - |
      lead='^<!-- readme-help-start -->$'
      tail='^<!-- readme-help-stop -->$'
      sed -i "/${lead}/,/${tail}/{ /${lead}/{ p; r ./.tmp/README.help.tmp
        }; /${tail}/p; d }"  ./README.md | head -n 100
    - rm -f ./.tmp/README.help.tmp
    - |
      git -c color.diff=always --no-pager diff ./README.md | grep --color=never '.' && echo ' '
      echo  ' > README: Updated successfully'
      git diff --quiet ./README.md
  rules:
    - if: $CI_LOCAL

# =============================================================================
# Stage: test (templates)