--- steps: # - name: "Extract plugin documentation" # description: "Extract documentation from source code to a markdown file" # plugin: # name: "docmd" # items: # # - [ 'c++', 'input_filename.cpp', 'output_filename_cpp.md'] # - ['yaml', 'new/bash.yml', 'docs/plugin_bash.md'] # - ['yaml', 'new/beamer.yml', 'docs/plugin_beamer.md'] # - ['yaml', 'new/clang-format_config.yml', 'docs/plugin_clang-format_config.md'] # - ['yaml', 'new/clang-format.yml', 'docs/plugin_clang-format.md'] # - ['yaml', 'new/clang-tidy.yml', 'docs/plugin_clang-tidy.md'] # - ['yaml', 'new/cppcheck.yml', 'docs/plugin_cppcheck.md'] # - ['yaml', 'new/fetch2.yml', 'docs/plugin_fetch2.md'] # - ['yaml', 'new/fetch.yml', 'docs/plugin_fetch.md'] # - ['yaml', 'new/pikchr.yml', 'docs/plugin_pikchr.md'] # - ['yaml', 'new/git_deploy.yml', 'docs/plugin_git_deploy.md'] # - ['yaml', 'new/git_publish.yml', 'docs/plugin_git_publish.md'] # - ['yaml', 'new/minio.yml', 'docs/plugin_minio.md'] # - ['yaml', 'new/mkdocs_material_config.yml', 'docs/plugin_mkdocs_material_config.md'] # - ['yaml', 'new/mkdocs_material.yml', 'docs/plugin_mkdocs_material.md'] # - ['yaml', 'new/npm.yml', 'docs/plugin_npm.md'] # - ['yaml', 'new/pandoc.yml', 'docs/plugin_pandoc.md'] # - ['yaml', 'new/plantuml.yml', 'docs/plugin_plantuml.md'] # - ['yaml', 'new/skip.yml', 'docs/plugin_skip.md'] - name: "C++ check with clang-tidy" only: clangtidy network: bridge plugin: name: "clang-tidy" checks: - "-*" - "modernize-*" # - "cppcoreguidelines-*" # - "hicpp-*" # - "performance-" # - "portability-" # - "readability-" fix: true options: - "-std=c++20" - "-DFMT_HEADER_ONLY" - "-DSPDLOG_FMT_EXTERNAL=1" include: - "include/" - "src/" source: - "src/*.cpp" - name: "C++ check with cppcheck" plugin: name: "cppcheck" include: - "include" source: - "src" - "test" platform: "unix64" std: "c++17" - name: "SAST com flawfinder" description: "C++ check with flawfinder" plugin: name: "flawfinder" source: - "src/*.cpp" - "include/*Parser.hpp" - "include/MicroCI*.hpp" - name: "Convert pdf to jpg" docker: intmain/microci_poppler:latest plugin: name: "bash" sh: | cd docs/assets pdftoppm repository-open-graph.pdf repository-open-graph -jpeg - name: "Build diagrams with plantuml" description: "Build diagrams from textual description" plugin: name: "plantuml" source: - "docs/diagrams/*.puml" type: png config: "docs/diagrams/skinparams.iuml" output: "/microci_workspace/docs/diagrams" - name: "Build diagrams - pikchr" description: "Build diagrams from textual description" plugin: name: "pikchr" source: - "docs/diagrams/*.pikchr" type: svg output_folder: "docs/diagrams/" - name: "Build HTML documentation" description: "Build project documentation" plugin: name: "mkdocs_material" action: "build" - name: "Documentation preview at port 8000" description: "Serve documentation preview at port 8000" only: "serve" plugin: name: "mkdocs_material" action: "serve" - name: "Configure github pages" description: "Configure Apex domain for github pages and README file" plugin: name: bash bash: | mkdir -p site/ cp github-pages/CNAME site/ cat docs/index.md | sed 's#(images#(docs/images#' > README.md # Cover page cp README.md site/ - name: "Build PDF documentation" description: "Build PDF documentation" plugin: name: skip # pandoc input: - README.md output: README.pdf - name: "Publish documentation to microci.dev" network: bridge ssh: format: "id_ed25519" plugin: name: "git_publish" git_url: "git@github.com:geraldolsribeiro/microci.dev.git" branch: master - name: "C++ code format with clang-format" description: "Apply coding standards" # docker: "intmain/microci_cpp_compiler:latest" plugin: name: "clang-format" source: - "src/*.cpp" - "test/*.cpp" - "include/*.hpp" - name: "Download project dependencies" run_as: "root" description: "Download project dependencies" plugin: name: "fetch" target: include items: - url: https://raw.githubusercontent.com/adishavit/argh/master/argh.h - url: https://raw.githubusercontent.com/pantor/inja/master/single_include/inja/inja.hpp - url: https://raw.githubusercontent.com/Rookfighter/inifile-cpp/master/include/inicpp.h - url: https://raw.githubusercontent.com/nlohmann/json/develop/single_include/nlohmann/json.hpp target: include/nlohmann # - name: "Baixar spirit-po" # description: "Download de dependências utilizadas na compilação" # plugin: # name: "fetch" # target: include/spirit_po # items: # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/catalog.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/catalog_metadata.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/default_plural_forms_compiler.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/default_plural_forms_expressions.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/exceptions.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/po_grammar.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/po_message.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/po_message_adapted.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/spirit_po.hpp # - url: https://raw.githubusercontent.com/garbageslam/spirit-po/master/include/spirit_po/version.hpp - name: "Build microCI static version" docker: "intmain/microci_cpp_compiler:latest" run_as: root network: host plugin: name: bash bash: | apt update apt upgrade -y apt install -y xxd libspdlog-dev libyaml-cpp-dev libcrypto++-dev gettext make -C docs make -C src chown $(id -u):$(id -g) -Rv bin/microCI - name: "Build docker image for microci_cpp_compiler" description: "Build docker image for microci_cpp_compiler" plugin: name: docker_build folder: dockerfiles/cpp_compiler/ dockerfile: Dockerfile target: intmain/microci_cpp_compiler version: 0.8 is_latest: true push: true # vim: spell spelllang=pt,en nowrap