From 989a1a0a8ba3ac43befab5c7c9b5c3c7d386695c Mon Sep 17 00:00:00 2001 From: Patrix Date: Mon, 4 Mar 2024 01:02:39 +0100 Subject: [PATCH] Added documentation generation in .gitlab-ci.yml --- .gitlab-ci.yml | 83 ++++++++++++++++++++++++++------ docs/docs/assets/logo.png | Bin 0 -> 1667 bytes docs/docs/index.md | 3 ++ docs/docs/stylesheets/extra.css | 7 +++ docs/mkdocs.yml | 37 ++++++++++++++ docs/requirements.txt | 3 ++ src/sqmain.cpp | 12 +++++ 7 files changed, 129 insertions(+), 16 deletions(-) create mode 100644 docs/docs/assets/logo.png create mode 100644 docs/docs/index.md create mode 100644 docs/docs/stylesheets/extra.css create mode 100644 docs/mkdocs.yml create mode 100644 docs/requirements.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd4afc5..ea952c1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,21 +1,24 @@ variables: GIT_SUBMODULE_STRATEGY: recursive + PROJECT_NAME: ${CI_PROJECT_NAME} + VERSION: "0.1" + stages: - build - release - + .build: stage: build when: manual script: - cmake . --preset ${SYSTEM}-${ARCHITECTURE}-Release - cmake --build --preset ${SYSTEM}-${ARCHITECTURE}-Release - - cp out/build/${SYSTEM}-${ARCHITECTURE}-Release/${CI_PROJECT_NAME}.${ARCHITECTURE}${SHARED_LIB_SUFFIX} ./ + - cp out/build/${SYSTEM}-${ARCHITECTURE}-Release/${PROJECT_NAME}.${ARCHITECTURE}${SHARED_LIB_SUFFIX} ./ artifacts: - name: ${CI_PROJECT_NAME} + name: ${PROJECT_NAME} paths: - - ${CI_PROJECT_NAME}.${ARCHITECTURE}${SHARED_LIB_SUFFIX} + - ${PROJECT_NAME}.${ARCHITECTURE}${SHARED_LIB_SUFFIX} expire_in: never reports: dotenv: job.env @@ -61,33 +64,81 @@ build:linux: parallel: matrix: - ARCHITECTURE: [x64, arm, arm64] - + +build:docs: + stage: build + image: "python:3.9-alpine" + when: manual + before_script: + - apk add git + - git clone https://gitlab.com/GothicMultiplayerTeam/docsgenerator.git + script: + - pip install mkdocs==1.5.3 + - pip install mkdocs-material==9.5.12 + - pip install Jinja2==3.1.3 + - python docsgenerator/generate.py ${VERSION} src --builddir "docs/docs/script-reference" --markdown + artifacts: + paths: + - docs/docs/script-reference/ + +pages: + stage: build + image: "python:3.9-alpine" + needs: [build:docs] + script: + - cd docs + - pip install -r requirements.txt + - mkdocs build -d "../public" + after_script: + - 'echo "Online documentation available under: ${CI_PAGES_URL}"' + artifacts: + paths: + - public + +docs: + stage: build + image: "python:3.9-alpine" + needs: [build:docs] + script: + - cd docs + - pip install -r requirements.txt + - mkdocs build -d "../${PROJECT_NAME}_docs" --no-directory-urls + after_script: + - echo "Docs_job_id=${CI_JOB_ID}" >> job.env + artifacts: + name: "${PROJECT_NAME}_docs" + paths: + - ${PROJECT_NAME}_docs + expire_in: never + reports: + dotenv: job.env + release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest when: manual - needs: [build:linux, build:windows] - variables: - TAG: '0.1' + needs: [build:windows, build:linux, pages, docs] script: - - echo "Create Release $TAG" + - echo "Created ${VERSION} release" release: - tag_name: '$TAG' + tag_name: "${VERSION}" description: "./CHANGELOG.md" assets: links: - - name: "${CI_PROJECT_NAME}.x86.dll" + - name: "${PROJECT_NAME}.x86.dll" url: "${CI_PROJECT_URL}/-/jobs/${Windows_x86_job_id}/artifacts/download" link_type: "package" - - name: "${CI_PROJECT_NAME}.x64.dll" + - name: "${PROJECT_NAME}.x64.dll" url: "${CI_PROJECT_URL}/-/jobs/${Windows_x64_job_id}/artifacts/download" link_type: "package" - - name: "${CI_PROJECT_NAME}.x64.so" + - name: "${PROJECT_NAME}.x64.so" url: "${CI_PROJECT_URL}/-/jobs/${Linux_x64_job_id}/artifacts/download" link_type: "package" - - name: "${CI_PROJECT_NAME}.arm.so" + - name: "${PROJECT_NAME}.arm.so" url: "${CI_PROJECT_URL}/-/jobs/${Linux_arm_job_id}/artifacts/download" link_type: "package" - - name: "${CI_PROJECT_NAME}.arm64.so" + - name: "${PROJECT_NAME}.arm64.so" url: "${CI_PROJECT_URL}/-/jobs/${Linux_arm64_job_id}/artifacts/download" - link_type: "package" \ No newline at end of file + link_type: "package" + - name: "${PROJECT_NAME}_docs" + url: "${CI_PROJECT_UR}L/-/jobs/${Docs_job_id}/artifacts/download" \ No newline at end of file diff --git a/docs/docs/assets/logo.png b/docs/docs/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a7447c6ea13b4e2edfc6ec39c08a3a02793e51 GIT binary patch literal 1667 zcmV-}27LL6P)Zb9OqN=W<u6kYu@|UY z0jL~A0Qdsey1HU6K&J}VT>xJUSCO~1x&OJS0RGfaK;o|o_ml#Maj!l%XRHKn)f|v` zcC#jo#;72G83zE0@U?t))!cbXQvfO$zZ(Xh^c*oF0C~S-_F|*G{>;(d(Xsn-HFrX1 zrDHz~bx{eg=7h)8FuJ_n-bwg-U;l(3w|6$C=H`rhL3h$5oSN(a&j^ncK&yU}3%<)8 z>ruv@Ml(mm405ymTIndm%;-_kAkLNnFbNxC+!T8xJX%&;BKe-DbjUU_1DlBnalq(z zBK=WcX{FfDO?kyTM%gr{y%%rOFA;GJ;GfHe(=uBn3Nrvd)e3isf!jL?zVf+E3{nTJ zW~ftubBux*M1=lk2isdc|M{d8j7~!zDYEHq41T@osk`L9f>Vxtga#PR#QD)Iwpg zFf_AY(=eZ%2a5pInP*h7h{SdUq6``Kp&~|-#C<(emtb@ibjo9{Tx7H?Bh3Rai+OIf zt%f5gVVDYxHQI-b7;jAT)~Yi8S|`Gdep^N2vCQ3CmXYSM(3#95p322zMA+p@^pdm?4QXCp5_0%V56ptv@nT7*XcYXvS$a6z%OPD(lo<(oHlNTg{gYo4tl+= z4?o!n(H%CFYU`dEl#2kgL$98QV_H@rCxyZhhM9wE8ZUJK#Ap=`d0u#Zt;nDiX|!W4 zyDVN$YBn?mP@#ST;17}mY0fwIUuV0cocTt-r9Sgvg1n%{F+W*=2(6@pIO+PhfBI^G zf4@5BPRpoaM*D$%;$Q>j?Zm?6C1FEd`XS(3-t4>I{8W7Z+n>j?!?9=>qGCw^ zTxKd$0d~>^I*e_MR3#XWGAOXmE2%4mqb@O9B8meW%|)>YfRunD)EWs}{{;di)mUS( z_|C3?>GWZeZD@9I8K8!)q_@BlVTi$nkj7cYF9YD*L}?8-9-;TyuVL#8-|ztFAAiE( z-yTBg?#g;E4L~Uh>~c_c46yT`*F9;uWB^smsmr8TgN7?JVMrpm^1#$qr14n$-&1oe0Cw*rj>%dLYk9@#<|v*y_ZvS}k3?ngTdg)Lswro4@dhcsx_H&4k>A>p#yIz^HYsY~ zxw8}B|JEL!9i@;uF?S(t;KuK;xpxQ2r@xBrehc6K@z3$I2fv&uUU6iQv|zMC(u(COTxyGQjdOb^u8ZWGFKPub zDHp0+gDh6cARE2I`-7*ju8r~VoljtC=3Lp27sR}L!FzxOVs3&0B|_Xa4_1y#tCfPhBoUje<=V67NjgRtU&M{_g-J8hy+>p_kpUY zXxzN`Aypa1dI%lJ#S!zhZfoV@buQBS@0-{U!qLkxT$dTuz49z# zyZUd9tA>!y9n03IMyu=L3^Qr)e4^y-jQP4FwuPfsI8JQLr>g>xoX!04KJjA!55sR? z(UQ;S0L#6PL-A6p82^7E=TQfA!=9=x^s)7PC0G8xRjxdM{{#R4|Nm#OQF+@#Eu;Vd N002ovPDHLkV1kd>IvfB1 literal 0 HcmV?d00001 diff --git a/docs/docs/index.md b/docs/docs/index.md new file mode 100644 index 0000000..1ab2f5c --- /dev/null +++ b/docs/docs/index.md @@ -0,0 +1,3 @@ +# Home + +An example README that you can replace with your own content! \ No newline at end of file diff --git a/docs/docs/stylesheets/extra.css b/docs/docs/stylesheets/extra.css new file mode 100644 index 0000000..492b119 --- /dev/null +++ b/docs/docs/stylesheets/extra.css @@ -0,0 +1,7 @@ +:root { + --md-primary-fg-color: #8191ff; +} + +.md-header { + background-color: #232323; +} \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 0000000..298a997 --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,37 @@ +site_name: Squirrel Template Module - Docs +repo_url: https://gitlab.com/GothicMultiplayerTeam/modules/squirrel-template +repo_name: Squirrel Template Module +edit_uri: "" +site_dir: "public" + +extra_css: + - stylesheets/extra.css + +extra: + version: + provider: mike + +markdown_extensions: + - admonition + - attr_list + - pymdownx.tabbed + - pymdownx.highlight + - pymdownx.superfences + +theme: + name: material + logo: assets/logo.png + icon: + repo: fontawesome/brands/gitlab + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/eye-outline + name: Switch to dark mode + + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/eye + name: Switch to light mode diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..01b75d6 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +mkdocs==1.5.3 +mkdocs-material==9.5.12 +mike==2.0.0 \ No newline at end of file diff --git a/src/sqmain.cpp b/src/sqmain.cpp index bbae691..47d8d8b 100644 --- a/src/sqmain.cpp +++ b/src/sqmain.cpp @@ -1,5 +1,17 @@ #include "sqapi.h" +/* squirreldoc (func) +* +* This is an entry point for the module. +* +* @version 0.1 +* @side shared +* @name sqmodule_load +* @param (HSQUIRRELVM) vm the squirrel vm. +* @param (HSQAPI) api the api ptr containing all of the squirrel functions. +* @return (int) returns a function status. +* +*/ extern "C" SQRESULT SQRAT_API sqmodule_load(HSQUIRRELVM vm, HSQAPI api) { SqModule::Initialize(vm, api);