Commit 7ee42365 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Adding publication on epub + clean up

parent 4fd1cdef
Loading
Loading
Loading
Loading
+25 −93
Original line number Diff line number Diff line
@@ -45,16 +45,18 @@ Word CR:
      - docs/
    expose_as: 'Word CR'

Protect branch:
  stage: generation
  when: on_success
  needs: ["Word CR"]
  only:
    - merge_requests
  script:
    - |
     curl --request POST --header "PRIVATE-TOKEN: ${ACCESS_TOKEN}" "${CI_API_V4_URL}/projects/${CI_MERGE_REQUEST_PROJECT_ID}/protected_branches?name=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"

# Do not protect branch until creation and update of merge request can be differenciated for triggering pipeline, otherwise branch is protected_branches
# with a single update of a merge request (which is not desired). This should be run only for a creation of merge request
# Protect branch:
#   stage: generation
#   when: on_success
#   needs: ["Word CR"]
#   only:
#     - merge_requests
#   script:
#     - |
#      curl --request POST --header "PRIVATE-TOKEN: ${ACCESS_TOKEN}" "${CI_API_V4_URL}/projects/${CI_MERGE_REQUEST_PROJECT_ID}/protected_branches?name=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
#

Publish spec:
  stage: publication
@@ -77,86 +79,41 @@ Publish spec:
      - "*_${CI_COMMIT_TAG}.docx"
      - "*_${CI_COMMIT_TAG}.pdf"

# pages:
#   stage: web
#   when: on_success
#   rules:
#     - if: ($CLEAN_WEB_PAGES == 'false' || $CLEAN_WEB_PAGES == 'true') && $CI_COMMIT_TAG
#       variables:
#         TAG_NAME: $CI_COMMIT_TAG
#     - if: ($CLEAN_WEB_PAGES != "false" && $CLEAN_WEB_PAGES != "true") && $CI_PIPELINE_SOURCE == "web"
#       variables:
#         TAG_NAME: $CLEAN_WEB_PAGES
#     - if: $CI_PIPELINE_SOURCE == "trigger"
#       variables:
#         TAG_NAME: "upgrade"
#   before_script:
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/publish_on_pages%2Esh/raw?ref=toMkdocs" >> publish_on_pages.sh
#     - chmod +x publish_on_pages.sh
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/updateIndex%2Epy/raw?ref=toMkdocs" >> updateIndex.py
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/index%2Ehtml/raw?ref=master" >> index.html
#     - |
#      export SPEC_NAME=$(ls | grep T*.md | cut -d'.' -f1)
#     - |
#      sed -i 's/PROJECT/'${CI_PROJECT_NAME^^}'/g' index.html
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2Ffavicon%2Eico/raw?ref=toMkdocs" >> favicon.html
#     - mkdir -p docs/images && mv favicon.html docs/images/
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2Fonem2m%2Epng/raw?ref=toMkdocs" >> onem2m.png
#     - mv onem2m.png docs/images/
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2Fonem2m_sq%2Epng/raw?ref=toMkdocs" >> onem2m_sq.png
#     - mv onem2m_sq.png docs/images/
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fstylesheets%2Fextra%2Ecss/raw?ref=toMkdocs" >> extra.css
#     - mkdir -p docs/stylesheets && mv extra.css docs/stylesheets/
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fmkdocs%2Eyml/raw?ref=toMkdocs" >> mkdocs.yml
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Findex%2Emd/raw?ref=toMkdocs" >> index.md
#     - mv index.md docs/
#     - |
#      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FtoMkdocs%2Epy/raw?ref=toMkdocs" >> toMkdocs.py
#   script:
#     - echo 'Publishing on pages'
#     - ./publish_on_pages.sh updateIndex.py $CI_PAGES_URL ${CI_PROJECT_NAME} $TAG_NAME index.html $CLEAN_WEB_PAGES $SPEC_NAME toMkdocs.py;
#   artifacts:
#     paths:
#       - public
#
pages:
  stage: web
  image: python:3.9.18-slim-bullseye
  tags:
    - docker
  #needs: ["Publish spec"] Uncomment when finishing testing
  variables:
    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
    PAGES_BRANCH: gl-pages
    HTTPS_REMOTE: https://gitlab-ci-token:${MIKE_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git
    TAG_NAME: ""
    TMPTAG: "none"
    TMPTAG: "none" # Remove/comment when finishing testing

  rules:
    # Simulated creation of tag pipeline
    - if: ($CLEAN_WEB_PAGES == 'false' || $CLEAN_WEB_PAGES == 'true') && $TMPTAG != "none" ## Replace this by CI_COMMIT_TAG when test finished
      variables:
        TAG_NAME: $TMPTAG
    # Normal creation of tag pipeline
    - if: ($CLEAN_WEB_PAGES == 'false' || $CLEAN_WEB_PAGES == 'true') && $CI_COMMIT_TAG ## Replace this by CI_COMMIT_TAG when test finished
      variables:
        TMPTAG: $CI_COMMIT_TAG
    # Pipeline triggered from web to remove some docs versions -> CLEAN_WEB_PAGES set to an existing tag name
    - if: ($CLEAN_WEB_PAGES != "false" && $CLEAN_WEB_PAGES != "true") && $CI_PIPELINE_SOURCE == "web"
      variables:
        TAG_NAME: $CLEAN_WEB_PAGES
    # Upgrade of index.html (not used anymore)
    - if: $CI_PIPELINE_SOURCE == "trigger"
      variables:
        TAG_NAME: "upgrade"

  before_script:
#    - pip install -q mkdocs-material mike rich mkdocs-rss-plugin
    # Installation of required software
    - apt-get update -qq && apt-get -qq install -y git curl > /dev/null
    # Retrieval of required files from tools/scripts
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2Ffavicon%2Eico/raw?ref=toMkdocs" >> favicon.html
    - mkdir -p docs/images && mv favicon.html docs/images/
@@ -169,6 +126,9 @@ pages:
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2FWord%2Epng/raw?ref=toMkdocs" >> Word.png
    - mkdir -p docs/download/images && mv Word.png docs/download/images/
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2FEpub%2Epng/raw?ref=toMkdocs" >> Epub.png
    - mv Epub.png docs/download/images/
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2FPdf%2Epng/raw?ref=toMkdocs" >> Pdf.png
    - mv Pdf.png docs/download/images/
@@ -180,9 +140,6 @@ pages:
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FindexDownload%2Emd/raw?ref=toMkdocs" >> indexDownload.md
    - mkdir -p docs/download && mv indexDownload.md docs/download/index.md
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Findex%2Emd/raw?ref=toMkdocs" >> index.md
    #- mv index.md docs/index.md
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FtoMkdocs%2Epy/raw?ref=toMkdocs" >> toMkdocs.py
    - |
@@ -191,35 +148,10 @@ pages:
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/spec_on_pages%2Esh/raw?ref=toMkdocs" >> spec_on_pages.sh
    - chmod +x spec_on_pages.sh
    - echo "'$TAG_NAME'"
#    - echo $GITLAB_USER_NAME
#    - echo $GITLAB_USER_EMAIL
#    - git config --global --replace-all user.name "$GITLAB_USER_NAME"
#    - git config --global --replace-all user.email $GITLAB_USER_EMAIL
#    - git fetch origin $PAGES_BRANCH && git checkout $PAGES_BRANCH || git checkout -b $PAGES_BRANCH origin/$PAGES_BRANCH || echo "Pages branch not deployed yet."
#    - git checkout $CI_COMMIT_SHA

  script:
 #    - python3 toMkdocs.py --title ${CI_PROJECT_NAME^^} "./$SPEC_NAME.md"
 #    - mv ${CI_PROJECT_NAME^^}/ docs/
 #   - cat _nav.yml >> mkdocs.yml
#     - |
#       if [ -n "$TAG_NAME" ]; then
#         mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u $TAG_NAME latest
#         mike set-default --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH latest
#       elif [ "$CI_COMMIT_REF_NAME" == "develop" ]; then
#         mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u $CI_COMMIT_BRANCH
#       fi
 #   - mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u $TAG_NAME latest
 #   - mike set-default --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH latest
 #   - git checkout $PAGES_BRANCH -- public/
#    - ./spec_on_pages.sh toMkdocs.py $MIKE_ACCESS_TOKEN $CI_SERVER_HOST $CI_PROJECT_PATH "$GITLAB_USER_NAME" $GITLAB_USER_EMAIL $CI_COMMIT_SHA $SPEC_NAME $CI_PROJECT_NAME $TAG_NAME $CLEAN_WEB_PAGES
    - ./spec_on_pages.sh toMkdocs.py $MIKE_ACCESS_TOKEN $CI_SERVER_HOST $CI_PROJECT_PATH "$GITLAB_USER_NAME" $GITLAB_USER_EMAIL $CI_COMMIT_SHA $SPEC_NAME $CI_PROJECT_NAME $TMPTAG $CLEAN_WEB_PAGES
  artifacts:
    paths:
      - public/
 No newline at end of file
#   rules:
#     - if: '$CI_PIPELINE_SOURCE == "web"'
#       when: always
#     - if: '$CI_COMMIT_TAG'
#     - if: '$CI_COMMIT_REF_NAME == "develop"'
#       when: always
#     - when: never
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ for i in docs/*.docx ; do
	docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_CHANGEMARKS_DOCKER_IMAGE" addTrackedChanges -o "/tmp/docs/$DOCUMENT_NAME" "/tmp/$i" "$HOST_URL" "$2" "$3"
done
for filename in docs/*.docx; do
    mv $filename ${filename%.*}_Word.docx; done;
    mv $filename ${filename%.*}_revisionMarks\(informative\).docx; done;
    #mv "$filename" "prefix_${filename}"; done;

echo "\n------ Generating change marks --------"
+6 −1
Original line number Diff line number Diff line
@@ -34,9 +34,14 @@ for i in *.md ; do
	    echo "\n------ Preparaing spec --------"
	    docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" pandocFilter -o "/tmp/" "/tmp/$i"
	    echo "\n------ Publishing spec --------"
	    # Word output
	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${3}" -o "${4}_${2}.docx"
	    echo 'docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"'
	    #echo 'docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"'
	    # PDF Output
	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"
	    # EPUB Output
	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown+escaped_line_breaks -t epub3 -o "${4}_${2}.epub" --metadata title="${PROJECT_NAME}_${2}" --metadata creator="oneM2M Partnership Project" --metadata rights="Copyright 2024 oneM2M Partners
hip Project"
	fi
done

+9 −67
Original line number Diff line number Diff line
@@ -30,62 +30,20 @@ HTTPS_REMOTE=https://gitlab-ci-token:${2}@${3}/${4}.git

echo "\n------ Install necessary packages --------"
pip install -q mkdocs-material mike rich mkdocs-rss-plugin
#apt-get update -qq && apt-get -qq install -y git curl > /dev/null

echo "------ Get the previous GitLab Pages content --------"
echo "------ Config git and get the previous GitLab Pages content --------"
git config --global --replace-all user.name "$5"
git config --global --replace-all user.email $6
git fetch origin $PAGES_BRANCH && git checkout $PAGES_BRANCH || git checkout -b $PAGES_BRANCH origin/$PAGES_BRANCH || echo "Pages branch not deployed yet."
git checkout $7

echo "------ Process published baselines --------"
# Move all folders except the "baselines" folder if baselines folder exists
# if [ -d "public/baselines" ]; then
#     echo "Baselines already moved to baselines/";
# else
#     mkdir -p "public/baselines"
#     for folder in public/*; do
#         if [ -d "$folder" ] && [ "$(basename "$folder")" != "baselines" ]; then
#             mv "$folder" "public/baselines/"
#             echo "Moved $(basename "$folder") to public/baselines"
#         fi
#     done
#     # Move index.html with new location
#     mv "public/index.html" "public/baselines/"
#
# fi

# echo "------ Add/update content --------"
# if [ $4 == 'upgrade' ]; then
#     echo 'Upgrading index.html...'
#     docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 -u "$7_$4" "$4/$7_$4.docx" "$5"
# elif [ $6 == 'true' ]; then
#     echo 'Removing all baselines ...'
# 	rm -r public/baselines/*;
# 	mkdir -p "public/baselines/$4"
#     ls public/
# 	cp -r -f "$7_$4.docx" public/baselines/$4
#     docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 "$7_$4" "$4/$7_$4.docx" "$5"
# elif [ $6 == 'false' ]; then
# 	mkdir -p "public/baselines/$4"
#     ls public/
# 	cp -r -f "$7_$4.docx" public/baselines/$4
#     docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 "$7_$4" "$4/$7_$4.docx" "$5"
# else
#     echo 'Removing entry for ' $6
#     rm -r -f public/baselines/$6
#     docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 -re "$7_$4" "$4/$7_$4.docx" "$5"
# fi

####### GENERATE NAV SPEC #######
echo "------ Generate input for mkdocs --------"
python3 $1 --title ${9^^} "./$8.md"
echo "------ Move to docs folder --------"
mv ${9^^}/* docs/
#echo "  - '${9^^}/1.md'" >> mkdocs.yml
sed -i 's/'${9^^}'\///g' _nav.yml
cat _nav.yml >> mkdocs.yml
#cp docs/${9^^}/1.md docs/index.md
cp docs/1.md docs/index.md

## Create download tab if official baseline version
@@ -107,13 +65,13 @@ if [[ ${10} == v* ]]; then
    sed -i 's/PROJECT/'${9^^}'/g' docs/download/index.md
    sed -i 's/SPECWORD/'"${spec_name}_${10}.docx"'/g' docs/download/index.md
    sed -i 's/SPECPDF/'"${spec_name}_${10}.pdf"'/g' docs/download/index.md
    sed -i 's/SPECEPUB/'"${spec_name}_${10}.epub"'/g' docs/download/index.md
    sed -i 's/VERSION/'${10}'/g' docs/download/index.md
    #mv docs/index.md docs/download
    echo "  - Download: 'download/index.md'" >> mkdocs.yml
fi
echo "------ Generating site --------"
#if [[ ${11} =~ miguel[0-9]* ]]; then ##change to ^v* when testing finished
if [ ${11} == "false" ]; then ##change to ^v* when testing finished
    echo "------ Generating site --------"
    echo "Generating docs version ${10}..."
    majorVersion=$(echo ${10} | grep -o v[1-9]*\. | grep -o [1-9]*)
    echo "Major version is ${majorVersion}"
@@ -121,13 +79,7 @@ if [ ${11} == "false" ]; then ##change to ^v* when testing finished
        latest="latestR${majorVersion}"
        echo "Handling release ${latest}"
    fi
    #if [[ ${10} == v2* ]]; then
    #    latest="latestR2"
    #elif [[ ${10} == v3* ]]; then
    #    latest="latestR3"
    #elif [[ ${10} == v4* ]]; then
    #    latest="latestR4"
    #fi

    isPagesSet=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH)
    if [ -z "${isPagesSet}" ]; then
        mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u ${10} ${latest} latest
@@ -142,10 +94,8 @@ if [ ${11} == "false" ]; then ##change to ^v* when testing finished
            mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u ${10} ${latest}
        fi
    fi
    #echo "Target directory site ..."
    #ls /builds/specifications/$9/site
else
    echo "Removing docs version ${11}..."
    echo "------ Removing docs version ${11}..."
    majorVersion=$(echo ${11} | grep -o v[1-9]*\. | grep -o [1-9]*)
    if [ -n "${majorVersion}" ]; then
        previousVersion=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH | grep v${majorVersion} | grep -A1 ${11} | grep -v ${11})
@@ -154,17 +104,6 @@ else
        echo "Previous version is ${previousVersion}"
    fi

    #if [[ ${11} == v2* ]]; then
    #    previousVersion=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH | grep v2 | grep -A1 ${11})
    #    latest="latestR2"
    #elif [[ ${11} == v3* ]]; then
    #    previousVersion=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH | grep v3 | grep -A1 ${11})
    #    latest="latestR3"
    #elif [[ ${11} == v4* ]]; then
    #    previousVersion=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH | grep v4 | grep -A1 ${11})
    #    latest="latestR3"
    #fi

    isLatest=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH ${11} | grep -o latest\, )
    isLatestRelease=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH ${11} | grep -o ${latest} )
    echo "This is isLatest: $isLatest"
@@ -181,14 +120,17 @@ else
            echo "Previous release version is ${previousReleaseVersion}"
            if [ -n "${previousReleaseVersion}" ]; then
                mike alias --deploy-prefix public -r $HTTPS_REMOTE --allow-empty -p -b $PAGES_BRANCH -u ${previousReleaseVersion} latest
            else
                echo "Warning: No latest version assigned!!!"
            fi
        fi
    elif [ -n "${isLatestRelease}" ]; then
        if [ -n "${previousVersion}" ]; then
            mike alias --deploy-prefix public -r $HTTPS_REMOTE --allow-empty -p -b $PAGES_BRANCH -u ${previousVersion} ${latest}
        else
            echo "Warning: no ${latest} available!!"
        fi #Deal with moving down a release
    fi
    #mike set-default --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH latest

    mike delete --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH ${11}
fi
+7.22 KiB
Loading image diff...
Loading