Loading .gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ documentation: entrypoint: [""] stage: build script: - pip3 install -r requirements.txt - python3 builder/builder.py - mkdocs build -d ./public artifacts: Loading builder/builder.py +25 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ from pathlib import Path from os import listdir from yaml import full_load from jinja2 import Environment, FileSystemLoader import requests from bs4 import BeautifulSoup # Job variables jobs_dir = "jobs" Loading @@ -30,6 +32,9 @@ job_metadata_file = "job.yml" mk_changelog_wrapper = "\n## Changelog\n\n* **[latest]**(current -> `<LATEST_RELEASE>`) : `<TAG_URL>`\n" mk_license_wrapper = "??? License\n" mk_placeholder_wrapper = "# 🚧 *Work in progress*\n\nThere is no job for this stage for now" mk_code_owner_wrapper = "\n\n-- 🔨 Maintainer: <img src='<GITLAB_IMAGE>' alt='avatar' style='width: 20px; height: 20px; border-radius: 50%'> [<CODE_OWNER_NAME>](<CODE_OWNER_URL>) @<CODE_OWNER>\n" gitlab_url = "https://gitlab.com:443/" # Index variables builder_dir = "builder" Loading Loading @@ -76,6 +81,23 @@ def add_license(job_path, job_name, mkdocs_job_content): mkdocs_job_content += " " + line return mkdocs_job_content def add_code_owner(job_path, job, mkdocs_job_content, code_owner): url = gitlab_url + code_owner response = requests.request("GET", url) if response.status_code == 200: soup = BeautifulSoup(response.content, "html.parser") image_url = soup.find("img")["data-src"] full_name = soup.find("div", {"class": "cover-title"}).text mkdocs_job_content += mk_code_owner_wrapper mkdocs_job_content = mkdocs_job_content.replace("<GITLAB_IMAGE>", image_url) mkdocs_job_content = mkdocs_job_content.replace("<CODE_OWNER_NAME>", full_name) mkdocs_job_content = mkdocs_job_content.replace("<CODE_OWNER>", code_owner) mkdocs_job_content = mkdocs_job_content.replace("<CODE_OWNER_URL>", url) return mkdocs_job_content def create_job_doc(job): job_path = jobs_dir + "/" + job mkdocs_job_content = "" Loading @@ -89,6 +111,9 @@ def create_job_doc(job): mkdocs_job_content = add_description(job_path, job, mkdocs_job_content) mkdocs_job_content = add_changelog(job_path, job, mkdocs_job_content) mkdocs_job_content = add_license(job_path, job, mkdocs_job_content) code_owner = conf.get("code-owner") if code_owner: mkdocs_job_content = add_code_owner(job_path, job, mkdocs_job_content, conf["code-owner"]) # Write final file with open(mkdocs_file_path, 'w+') as file: Loading jobs/apidoc/job.yml +2 −1 Original line number Diff line number Diff line Loading @@ -2,3 +2,4 @@ name: apidoc description: A ready-to-use apidoc job to build a web documentation of your API default_stage: build icon: 📒 code-owner: thomasboni No newline at end of file jobs/coala/job.yml +2 −1 Original line number Diff line number Diff line Loading @@ -2,3 +2,4 @@ name: coala description: A ready-to-use coala job to fix your source code default_stage: static_tests icon: 🐨 code-owner: thomasboni No newline at end of file jobs/docker/job.yml +2 −1 Original line number Diff line number Diff line Loading @@ -2,3 +2,4 @@ name: docker description: A ready-to-use docker job to push the image of your project repository to the gitlab registry default_stage: build icon: 🐳 code-owner: thomasboni No newline at end of file Loading
.gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ documentation: entrypoint: [""] stage: build script: - pip3 install -r requirements.txt - python3 builder/builder.py - mkdocs build -d ./public artifacts: Loading
builder/builder.py +25 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ from pathlib import Path from os import listdir from yaml import full_load from jinja2 import Environment, FileSystemLoader import requests from bs4 import BeautifulSoup # Job variables jobs_dir = "jobs" Loading @@ -30,6 +32,9 @@ job_metadata_file = "job.yml" mk_changelog_wrapper = "\n## Changelog\n\n* **[latest]**(current -> `<LATEST_RELEASE>`) : `<TAG_URL>`\n" mk_license_wrapper = "??? License\n" mk_placeholder_wrapper = "# 🚧 *Work in progress*\n\nThere is no job for this stage for now" mk_code_owner_wrapper = "\n\n-- 🔨 Maintainer: <img src='<GITLAB_IMAGE>' alt='avatar' style='width: 20px; height: 20px; border-radius: 50%'> [<CODE_OWNER_NAME>](<CODE_OWNER_URL>) @<CODE_OWNER>\n" gitlab_url = "https://gitlab.com:443/" # Index variables builder_dir = "builder" Loading Loading @@ -76,6 +81,23 @@ def add_license(job_path, job_name, mkdocs_job_content): mkdocs_job_content += " " + line return mkdocs_job_content def add_code_owner(job_path, job, mkdocs_job_content, code_owner): url = gitlab_url + code_owner response = requests.request("GET", url) if response.status_code == 200: soup = BeautifulSoup(response.content, "html.parser") image_url = soup.find("img")["data-src"] full_name = soup.find("div", {"class": "cover-title"}).text mkdocs_job_content += mk_code_owner_wrapper mkdocs_job_content = mkdocs_job_content.replace("<GITLAB_IMAGE>", image_url) mkdocs_job_content = mkdocs_job_content.replace("<CODE_OWNER_NAME>", full_name) mkdocs_job_content = mkdocs_job_content.replace("<CODE_OWNER>", code_owner) mkdocs_job_content = mkdocs_job_content.replace("<CODE_OWNER_URL>", url) return mkdocs_job_content def create_job_doc(job): job_path = jobs_dir + "/" + job mkdocs_job_content = "" Loading @@ -89,6 +111,9 @@ def create_job_doc(job): mkdocs_job_content = add_description(job_path, job, mkdocs_job_content) mkdocs_job_content = add_changelog(job_path, job, mkdocs_job_content) mkdocs_job_content = add_license(job_path, job, mkdocs_job_content) code_owner = conf.get("code-owner") if code_owner: mkdocs_job_content = add_code_owner(job_path, job, mkdocs_job_content, conf["code-owner"]) # Write final file with open(mkdocs_file_path, 'w+') as file: Loading
jobs/apidoc/job.yml +2 −1 Original line number Diff line number Diff line Loading @@ -2,3 +2,4 @@ name: apidoc description: A ready-to-use apidoc job to build a web documentation of your API default_stage: build icon: 📒 code-owner: thomasboni No newline at end of file
jobs/coala/job.yml +2 −1 Original line number Diff line number Diff line Loading @@ -2,3 +2,4 @@ name: coala description: A ready-to-use coala job to fix your source code default_stage: static_tests icon: 🐨 code-owner: thomasboni No newline at end of file
jobs/docker/job.yml +2 −1 Original line number Diff line number Diff line Loading @@ -2,3 +2,4 @@ name: docker description: A ready-to-use docker job to push the image of your project repository to the gitlab registry default_stage: build icon: 🐳 code-owner: thomasboni No newline at end of file