Add workflow to generate example roadmaps

This commit is contained in:
Felix Seifert
2023-06-18 20:31:16 +02:00
parent f117849dc4
commit df701c311c
2 changed files with 53 additions and 2 deletions
+42
View File
@@ -0,0 +1,42 @@
name: Generate example roadmaps
on:
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest]
python-version: ["3.10"]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Generate roadmaps
run: |
os=$(echo "${{ matrix.os }}" | cut -d- -f1)
os="$(tr '[:lower:]' '[:upper:]' <<< ${os:0:1})${os:1}"
mkdir "examples"
python -m src.tests.roadmap_generators.roadmap_generator --operating-system $os --target-directory examples
- name: Upload generated roadmaps
uses: actions/upload-artifact@v2
with:
name: example-roadmaps-${{ matrix.os }}
path: examples/
@@ -1,3 +1,4 @@
import argparse
import os.path
from typing import Type
@@ -42,11 +43,19 @@ def generate_and_save_roadmap(roadmap_class: Type[RoadmapABC], operating_system:
generating_object.generate_and_save_as(file_path)
def generate_and_save_all_roadmaps_in(target_directory: str = "", operating_system: str = "Ubuntu"):
def generate_and_save_all_roadmaps(target_directory: str = "", operating_system: str = "Ubuntu"):
set_file_directory(target_directory)
for generating_class in all_roadmaps_to_generate:
generate_and_save_roadmap(generating_class, operating_system, target_directory)
if __name__ == "__main__":
generate_and_save_all_roadmaps_in()
parser = argparse.ArgumentParser(description="Generate roadmaps")
parser.add_argument("--target-directory", "-td", help="Directory in which the generated roadmaps should be saved",
type=str, default="")
parser.add_argument("--operating-system", "-os", help="Operating system for which the roadmaps are generated",
type=str, default="")
args = parser.parse_args()
generate_and_save_all_roadmaps(target_directory=args.target_directory, operating_system=args.operating_system)