Commit 6cf708b8 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Removing oneM2M pipeline folder

parent 58256c0c
Loading
Loading
Loading
Loading

pipeline/.gitlab-ci.yml

deleted100644 → 0
+0 −221
Original line number Diff line number Diff line
# CI/CD:
#
# GENERATION triggered by:
#  - merge request
#

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Creation of Merge Request (generation of CR)
    - if: $CI_PIPELINE_SOURCE == "trigger" # Upgrade of the index.html page
    - if: $CI_COMMIT_TAG # Creation of tag (publish spec)
    - if: $CI_PIPELINE_SOURCE == "web" # Removal of a specific entry
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never # Pipeline to be run manually as defined in the contribution procedure as it is not known when the CR is ready

variables:

stages:
  - checking
  - generation
  - publication
  - web

Checking conflicts:
  stage: checking
  image: forge.etsi.org:5050/cti/tools/generatecr:master
  rules:
    - if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_MILESTONE
      when: always
      variables:
        MERGE_REQUEST_MILESTONE: $CI_MERGE_REQUEST_MILESTONE
    - if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_MILESTONE == null
      when: always
      variables:
        MERGE_REQUEST_MILESTONE: "all"
  allow_failure: true
  tags:
    - docker
  before_script:
    # Installation of required software
    - apt-get update -qq && apt-get -qq install -y git curl jq > /dev/null
    - git clone "https://$CI_SERVER_HOST/$CI_PROJECT_PATH.git" ${CI_PROJECT_NAME}
  script:
    - echo 'Checking conflicts'
    - /generateCR/checking_conflicts.sh ${CI_API_V4_URL} ${CI_MERGE_REQUEST_PROJECT_ID} ${MERGE_REQUEST_MILESTONE} ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} ${CI_MERGE_REQUEST_IID} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} ${CI_PROJECT_NAME} "$GITLAB_USER_NAME" $GITLAB_USER_EMAIL $MIKE_ACCESS_TOKEN
  artifacts:
    when: on_failure
    paths:
      - conflicting_merge_requests.txt
    expose_as: 'Checking conflicts log'

Word CR:
  stage: generation
  rules:
    - if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
      when: on_success
  dependencies: []
  when: on_success
  before_script:
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2Fgenerate_changemarks%2Esh/raw?ref=master" >> generate_changemarks.sh
    - chmod +x generate_changemarks.sh
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2Fonem2m_delimiter_start%2Edocx/raw?ref=master" >> onem2m_delimiter_start.docx
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2Fonem2m_delimiter_end%2Edocx/raw?ref=master" >> onem2m_delimiter_end.docx
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2Fonem2m_coversheet_template%2Edocx/raw?ref=master" >> onem2m_coversheet_template.docx
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2FSpec-template%2Edocx/raw?ref=master" >> onem2m_spec_template.docx
  script:
    - echo 'CR contribution'
    - mkdir docs
    - ./generate_changemarks.sh ${CI_PROJECT_URL} ${CI_MERGE_REQUEST_PROJECT_ID} ${CI_MERGE_REQUEST_IID} onem2m_delimiter_start.docx onem2m_delimiter_end.docx onem2m_coversheet_template.docx onem2m_spec_template.docx $MIKE_ACCESS_TOKEN
  artifacts:
    paths:
      - docs/
    expose_as: 'Word CR'
    
Baseline contribution:
  stage: generation
  rules:
    - if: $CI_MERGE_REQUEST_TITLE =~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
      when: on_success
  dependencies: []
  when: on_success
  before_script:
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2Fpublish_spec%2Esh/raw?ref=master" >> publish_spec.sh
    - chmod +x publish_spec.sh
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2FSpec-template%2Edocx/raw?ref=master" >> onem2m_spec_template.docx
    - |
     export SPEC_NAME=$(ls | grep T*.md | cut -d'.' -f1)
     export BASELINE_VERSION=$(echo ${CI_MERGE_REQUEST_TITLE} | grep -o v.*_baseline | cut -d'_' -f1-3 )
  script:
    - echo 'Generating baseline'
    - ./publish_spec.sh ${CI_PROJECT_URL} ${BASELINE_VERSION} onem2m_spec_template.docx $SPEC_NAME "onlyDocx"
  artifacts:
    name: "Baseline"
    paths:
      - baseline/
    expose_as: 'Baseline'
      
# 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
  only:
    - tags
  before_script:
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2Fpublish_spec%2Esh/raw?ref=master" >> publish_spec.sh
    - chmod +x publish_spec.sh
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/pipeline%2FSpec-template%2Edocx/raw?ref=master" >> onem2m_spec_template.docx
    - |
     export SPEC_NAME=$(ls | grep -E "(TS|TR|WI).*\.md" | cut -d'.' -f1)
  script:
    - echo 'Publishing spec'
    - ./publish_spec.sh ${CI_PROJECT_URL} ${CI_COMMIT_TAG} onem2m_spec_template.docx $SPEC_NAME
  artifacts:
    name: "${SPEC_NAME}_${CI_COMMIT_TAG}"
    paths:
      - "baseline/*_${CI_COMMIT_TAG}.docx"
      - "baseline/*_${CI_COMMIT_TAG}.pdf"
      - "baseline/*_${CI_COMMIT_TAG}.epub"
      - combined.md

pages:
  stage: web
  image: forge.etsi.org:5050/cti/tools/generatespecwebsite:master
  tags:
    - docker
  needs: ["Publish spec"]
  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" # 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
      variables:
        TAG_NAME: $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: none
    # Trigger regeneration of spec pages
    - if: $CI_PIPELINE_SOURCE == "trigger" && $CI_COMMIT_TAG != null
      variables:
        TAG_NAME: $CI_COMMIT_TAG

  before_script:
    # 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/generateSpecWebSite%2Fimages%2Ffavicon%2Eico/raw?ref=master" >> favicon.html
    - mkdir -p docs/images && mv favicon.html docs/images/
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/generateSpecWebSite%2Fimages%2Fonem2m%2Epng/raw?ref=master" >> onem2m.png
    - mv onem2m.png docs/images/
    - |
     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/generateSpecWebSite%2Fimages%2Fonem2m_sq%2Epng/raw?ref=master" >> 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=master" >> Word.png
    - mkdir -p docs/download/images && mv generateSpecWebSite/images/Word.png docs/download/images/
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2FEpub%2Epng/raw?ref=master" >> Epub.png
    - mv generateSpecWebSite/images/Epub.png docs/download/images/
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fimages%2FPdf%2Epng/raw?ref=master" >> Pdf.png
    - mv generateSpecWebSite/images/Pdf.png docs/download/images/
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fstylesheets%2Fextra%2Ecss/raw?ref=master" >> extra.css
    - mkdir -p docs/stylesheets && mv generateSpecWebSite/stylesheets/extra.css docs/stylesheets/
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2Fmkdocs%2Eyml/raw?ref=master" >> mkdocs.yml
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FindexDownload%2Emd/raw?ref=master" >> indexDownload.md
    - mkdir -p docs/download && mv generateSpecWebSite/indexDownload.md docs/download/index.md
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FtoMkdocs%2Epy/raw?ref=master" >> toMkdocs.py
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FmarkdownTools%2Epy/raw?ref=master" >> markdownTools.py
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FgridTableTools%2Epy/raw?ref=master" >> gridTableTools.py
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/toMkdocs%2FregexMatches%2Epy/raw?ref=master" >> regexMatches.py
    - |
     export SPEC_NAME=$(ls | grep -E "(TS|TR|WI).*\.md" | cut -d'.' -f1)
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/spec_on_pages%2Esh/raw?ref=master" >> spec_on_pages.sh
    #- chmod +x spec_on_pages.sh
    - echo "'$TAG_NAME'"
  
  script:
    - /generateSpecWebSite/spec_on_pages.sh generateSpecWebSite/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
  artifacts:
    paths:
      - public/
 No newline at end of file

pipeline/Spec-template.docx

deleted100644 → 0
−577 KiB

File deleted.

pipeline/generate_changemarks.sh

deleted100755 → 0
+0 −67
Original line number Diff line number Diff line
#
#	generate_changemarks.sh
#
#	Script to generate CR Word documents from merge requests. Outputs:
#       - 1 - Word CR document containing the git diff 
#       - 2 - Word CR document containing tracked changes (informative) - Deprecated 
#	(c) 2024 by Miguel Angel Reina Ortega
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#
#!/bin/bash

FORGELIB_DOCKER_IMAGE=forge.3gpp.org:5050/tools/3gpp-scripts/forgelib:v2.22.0
GENERATE_CHANGEMARKS_DOCKER_IMAGE=forge.etsi.org:5050/cti/tools/generatecr:restructure
DOCKER_IMAGE=pandoc/core:3.1.1.0

echo "\n------ Checking for docker image --------"
docker pull "$DOCKER_IMAGE"

echo "------ Removing previous outputs --------"
rm **/*.docx
rm out/*.md

echo "------ Parsing repo URL --------"

HOST_URL=$(echo $1 | cut -d'/' -f 1-3)
PROJECT_NAME=$(echo $1 | grep -o '[^/]*$' | cut -d'.' -f 1)
echo "HOST URL:" $HOST_URL
echo "PROJECT NAME:" $PROJECT_NAME
echo "PROJECT ID:" $2
echo "MERGE IID:" $3

echo "\n------ Generating changed clauses --------"
#docker container run --rm -v $(pwd):/tmp/ "$DOCKER_IMAGE" forgelib-changedocs -vv --combine --diffs --preprocessor onem2m --outPath=/tmp/docs --startdelimiter "/tmp/$4" --enddelimiter "/tmp/$5" --coversheet "/tmp/$6" "$HOST_URL" "$2" "$PROJECT_NAME" "$3"
docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_CHANGEMARKS_DOCKER_IMAGE" changemarks -o "/tmp/out" "$HOST_URL" "$2" "$3"

#echo "\n------ Generating changemarks docx --------"
#for i in out/*.md ;  do
    #DOCUMENT_NAME=$(echo $i | cut -d'/' -f 2)
    #echo "\n------ Preparing spec --------" 
	#docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_CHANGEMARKS_DOCKER_IMAGE" pandocFilter -o "/tmp/out" "/tmp/$i"
	#echo "Pandoc filter processed file $DOCUMENT_NAME"
    #echo "\n------ Publishing spec --------" 
	#docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown -t docx --reference-doc "/data/${7}" -o "/data/out/${DOCUMENT_NAME}.docx"
    #echo "Pandoc converted file $DOCUMENT_NAME"
    
	# Trying converting to HTML and then to DOCX
	#docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown -t html -o "/data/out/${DOCUMENT_NAME}.html"
    #docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/out/${DOCUMENT_NAME}.html" -f html -t docx --reference-doc "Spec-template.docx" -o "/data/out/${DOCUMENT_NAME}.docx"
    
#done

#echo "\n------ Combining docx --------"
#docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-changedocs -vv -sf "out/" --preprocessor onem2m --token ${8} --outPath=docs/ --startdelimiter "$4" --enddelimiter "$5" --coversheet "$6" "$HOST_URL" "$2" "$3"

#echo "\n------ Converting to tracked changes docx --------"
#for i in docs/*.docx ; do
#    DOCUMENT_NAME=$(echo $i | cut -d'/' -f 2)
#	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%.*}_revisionMarks\(informative\).docx; done;
#

echo "\n------ Generating change marks --------"
docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-changedocs -vv --combine --diffs --linenumbers --extension "png" --extension "jpg" --extension "svg" --extension "md" --preprocessor onem2m --token ${8} --outPath=docs/ --startdelimiter "$4" --enddelimiter "$5" --coversheet "$6" "$HOST_URL" "$2" "$3"

exit 0

pipeline/mkdocs.yml

deleted100644 → 0
+0 −101
Original line number Diff line number Diff line
site_name: oneM2M ##PROJECT

copyright: "Copyright © 2024 oneM2M Partnership Project"

# Required for RSS feed
site_description: oneM2M Specifications navigator
site_url: https://specifications.onem2m.org

docs_dir: docs

extra_css:
  - stylesheets/extra.css

repo_url: ##REPO_URL
repo_name: ##REPO_NAME Git Repository

theme:
  name: material
  logo: 'images/onem2m.png'
  favicon: 'images/favicon.ico'
  icon:
    repo: fontawesome/brands/gitlab
  palette:
    scheme: oneM2M
  features:
    - content.code.annotate
    - content.code.copy
    #- navigation.footer
    - content.footnote.tooltips
    #- navigation.indexes
    #- navigation.instant.progress
    #- navigation.prune
    #- navigation.sections
    #- navigation.tabs
    #- navigation.tabs.sticky
    - search.suggest
    - search.highlight
    - search.share
    #- toc.integrate

plugins:
  # RSS feed plugin
  # See https://guts.github.io/mkdocs-rss-plugin/
  # Install with: pip install mkdocs-rss-plugin
  - rss
  #- tags:
  #    tags_file: home/tags.md
  - search

markdown_extensions:
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - pymdownx.details
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.arithmatex:
      generic: true
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
     alternate_style: true
  - tables

extra_javascript:
  - javascripts/mathjax.js
  - https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js

##############################################################################

extra:
  homepage: https://specifications.onem2m.org
  social:
    - icon: fontawesome/solid/rss
      link: https://specifications.onem2m.org/feed_rss_created.xml 
      name: Recipes RSS Feed
    - icon: fontawesome/brands/gitlab
      link: https://git.oneM2M.org
      name: oneM2M GitLab
    - icon: fontawesome/brands/github 
      link: https://github.com/onem2m
      name: oneM2M @ GitHub
    - icon: fontawesome/brands/mastodon
      link: https://c.im/@oneM2M
      name: oneM2M @ Mastodon
    - icon: fontawesome/brands/linkedin
      link: https://www.linkedin.com/company/onem2m/
      name: oneM2M @ LinkedIn
  version:
    provider: mike

nav:
−42.1 KiB

File deleted.

Loading