Commit 4fd1cdef authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Adding support for cleaning a doc version

parent 843a23dd
Loading
Loading
Loading
Loading
+21 −6
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ Publish spec:
    - tags
  before_script:
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/publish_spec%2Esh/raw?ref=master" >> publish_spec.sh
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/publish_spec%2Esh/raw?ref=toMkdocs" >> publish_spec.sh
    - chmod +x publish_spec.sh
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/Spec-template%2Edocx/raw?ref=master" >> onem2m_spec_template.docx
@@ -75,6 +75,7 @@ Publish spec:
    name: "${SPEC_NAME}_${CI_COMMIT_TAG}"
    paths:
      - "*_${CI_COMMIT_TAG}.docx"
      - "*_${CI_COMMIT_TAG}.pdf"

# pages:
#   stage: web
@@ -137,11 +138,15 @@ pages:
    PAGES_BRANCH: gl-pages
    HTTPS_REMOTE: https://gitlab-ci-token:${MIKE_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git
    TAG_NAME: ""
    TMPTAG: "none"

  rules:
    - if: ($CLEAN_WEB_PAGES == 'false' || $CLEAN_WEB_PAGES == 'true') && $CI_COMMIT_TAG
    - if: ($CLEAN_WEB_PAGES == 'false' || $CLEAN_WEB_PAGES == 'true') && $TMPTAG != "none" ## Replace this by CI_COMMIT_TAG when test finished
      variables:
        TAG_NAME: $CI_COMMIT_TAG
        TAG_NAME: $TMPTAG
    - 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
    - if: ($CLEAN_WEB_PAGES != "false" && $CLEAN_WEB_PAGES != "true") && $CI_PIPELINE_SOURCE == "web"
      variables:
        TAG_NAME: $CLEAN_WEB_PAGES
@@ -161,14 +166,23 @@ pages:
    - |
     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%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%2FPdf%2Epng/raw?ref=toMkdocs" >> Pdf.png
    - mv Pdf.png docs/download/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%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
    - |
@@ -197,7 +211,8 @@ pages:
 #   - 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
#    - ./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/
+2 −1
Original line number Diff line number Diff line
@@ -2,7 +2,8 @@ FROM pandoc/core:3-ubuntu

RUN apt-get update -y && \
    apt-get install -y npm &&\
    npm install --global mermaid-filter
    npm install --global mermaid-filter &&\
    apt-get install -y texlive-latex-base texlive-latex-recommended texlive-fonts-recommended

CMD ["/bin/sh"]

+3 −1
Original line number Diff line number Diff line
#!/bin/bash

DOCKER_IMAGE=pandoc:master
DOCKER_IMAGE=pandoc:toMkdocs
TOOLS_DOCKER_IMAGE=generatechangemarks:master

echo "\n------ Checking for docker image --------"
@@ -35,6 +35,8 @@ for i in *.md ; do
	    docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" pandocFilter -o "/tmp/" "/tmp/$i"
	    echo "\n------ Publishing spec --------"
	    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"'
	    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"
	fi
done

+113 −5
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ echo "SPEC_NAME:" $8
echo "CI_PROJECT_NAME:" $9
#$TAG_NAME ->10
echo "TAG_NAME:" ${10}
#$CLEAN_WEB_PAGES ->11
echo "CLEAN_WEB_PAGES:" ${11}

#BACKUP=false
PAGES_BRANCH=gl-pages
@@ -79,16 +81,122 @@ echo "------ Process published baselines --------"
echo "------ Generate input for mkdocs --------"
python3 $1 --title ${9^^} "./$8.md"
echo "------ Move to docs folder --------"
mv ${9^^}/ docs/
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
if [[ ${10} == v* ]]; then
    echo "Adding download tab for version ${10}..."
    mkdir -p "docs/download"
    mv "$8_${10}.docx" docs/download
    spec_name=$(echo ${8/&/and})
    file_name=$(ls docs/download/*.docx)
    filename_corrected=$(echo ${file_name/&/and})
    mv docs/download/"$8_${10}.docx" ${filename_corrected}
    mv "$8_${10}.pdf" docs/download
    spec_name=$(echo ${8/&/and})
    file_name=$(ls docs/download/*.pdf)
    filename_corrected=$(echo ${file_name/&/and})
    mv docs/download/"$8_${10}.pdf" ${filename_corrected}
    echo ${spec_name}
    #for x in docs/download/*"&"*; do   mv -- "$x" "${x//&/and}"; done
    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/VERSION/'${10}'/g' docs/download/index.md
    #mv docs/index.md docs/download
    echo "  - Download: 'download/index.md'" >> mkdocs.yml
fi
echo "------ Generating site --------"
mike list
mike delete latest --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH
mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u ${10} latest
mike set-default --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH latest
#if [[ ${11} =~ miguel[0-9]* ]]; then ##change to ^v* when testing finished
if [ ${11} == "false" ]; then ##change to ^v* when testing finished
    echo "Generating docs version ${10}..."
    majorVersion=$(echo ${10} | grep -o v[1-9]*\. | grep -o [1-9]*)
    echo "Major version is ${majorVersion}"
    if [ -n "${majorVersion}" ]; then
        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
        mike set-default --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH latest #That's only needed the first time gl-pages is created
    else
        latestRelease=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH | grep latest\, | grep -o latestR[1-9]*)
        echo "Latest release is ${latestRelease}"
        if [[ "${latest}" > "${latestRelease}" || "${latest}" == "${latestRelease}" ]]; then
            echo "Upgrade latest release..."
            mike deploy --deploy-prefix public -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u ${10} ${latest} latest
        else
            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}..."
    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})
        latest="latestR${majorVersion}"
        echo "Major version is ${majorVersion}"
        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"
    echo "This is isLatestRelease: $isLatestRelease"
    ## Deal with alias latest
    if [ -n "${isLatest}" ]; then
        if [ -n "${previousVersion}" ]; then
            mike alias --deploy-prefix public -r $HTTPS_REMOTE --allow-empty -p -b $PAGES_BRANCH -u ${previousVersion} latest
        else
            # Look previous release (previous major version)
            majorVersion=$(echo $((--majorVersion)))
            previousReleaseVersion=$(mike list --deploy-prefix public -r $HTTPS_REMOTE -b $PAGES_BRANCH | grep latestR${majorVersion} | grep -o v[1-9]*\.[0-9]*\.[0-9]*)
            echo "Previous major version is ${majorVersion}"
            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
            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}
        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

git checkout $PAGES_BRANCH -- public/

echo "Content of public ..."
ls public/

exit 0
+5.85 KiB
Loading image diff...
Loading