Loading .gitlab-ci.yml +74 −7 Original line number Diff line number Diff line Loading @@ -257,7 +257,8 @@ prebuild-for-render: - rendering/librender/*.stl # render assemblies - uses xvfb as a virtual x-server render: # Split into three groups running in parallel render_1: extends: - .scad-job - .rules_common Loading @@ -266,7 +267,7 @@ render: needs: ["prebuild-for-render", "version"] script: - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-only - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-1-only artifacts: expire_in: 1 week Loading @@ -275,7 +276,45 @@ render: paths: - docs/renders/*.png gltf: render_2: extends: - .scad-job - .rules_common stage: build dependencies: ["prebuild-for-render", "version"] needs: ["prebuild-for-render", "version"] script: - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-2-only artifacts: expire_in: 1 week name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}-renders" # saving any rendering csg files. Only remaining files should be when scad2gltf fails paths: - docs/renders/*.png render_3: extends: - .scad-job - .rules_common stage: build dependencies: ["prebuild-for-render", "version"] needs: ["prebuild-for-render", "version"] script: - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-3-only artifacts: expire_in: 1 week name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}-renders" # saving any rendering csg files. Only remaining files should be when scad2gltf fails paths: - docs/renders/*.png # compose GLB 3D models of complete microscopes # split into two groups running in parallel gltf_1: extends: - .scad-job - .rules_common Loading @@ -289,6 +328,27 @@ gltf: - cd rendering - scad2gltf complete_microscope_rms.scad - scad2gltf complete_microscope_low_cost.scad - cp complete_microscope_*.glb ../docs/gltf/ artifacts: expire_in: 1 week name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}-renders" # saving any rendering csg files. Only remaining files should be when scad2gltf fails paths: - docs/gltf/* gltf_2: extends: - .scad-job - .rules_common stage: build dependencies: ["prebuild-for-render", "version"] needs: ["prebuild-for-render", "version"] script: - mkdir -p docs/gltf - pip install scad2gltf - cd rendering - scad2gltf complete_microscope_upright.scad - scad2gltf complete_microscope_manual.scad - cp complete_microscope_*.glb ../docs/gltf/ Loading @@ -306,11 +366,14 @@ build-docs: extends: .rules_common dependencies: - build - render - gltf - render_1 - render_2 - render_3 - gltf_1 - gltf_2 - archive-source - sca2d needs: ["build", "render", "gltf", "archive-source", "sca2d"] needs: ["build", "render_1", "render_2", "render_3", "gltf_1", "gltf_2", "archive-source", "sca2d"] image: "python:3.12" before_script: Loading Loading @@ -352,7 +415,11 @@ deploy: extends: .fewer_rules_common dependencies: - build - render - render_1 - render_2 - render_3 - gltf_1 - gltf_2 - build-docs image: ubuntu:latest Loading render.py +21 −7 Original line number Diff line number Diff line Loading @@ -830,16 +830,26 @@ def main(): action="store_true", ) parser.add_argument( "--png-only", help="Only renders the PNGs, STLs must already have been pre-built", "--png-1-only", help="Only renders the first set of PNGs, STLs must already have been pre-built", action="store_true", ) parser.add_argument( "--png-2-only", help="Only renders the second set of PNGs, STLs must already have been pre-built", action="store_true", ) parser.add_argument( "--png-3-only", help="Only renders the third set of PNGs, STLs must already have been pre-built", action="store_true", ) args = parser.parse_args() if args.png_only and args.stl_only: raise RuntimeError("Can't set both png-only and stl-only parameters.") if (args.png_1_only or args.png_2_only or args.png_3_only) and args.stl_only: raise RuntimeError("Can't set both png-*-only and stl-only parameters.") run_all = not args.png_only and not args.stl_only run_all = not args.png_1_only and not args.png_2_only and not args.png_3_only and not args.stl_only rendersystem = RenderSystem() if run_all or args.stl_only: Loading @@ -848,8 +858,8 @@ def main(): register_rendered_microscope_manual_stl(rendersystem, force_clean=args.force_clean) register_rendered_separate_z_actuator_stl(rendersystem) register_rendered_separate_z_actuator_manual_stl(rendersystem) if run_all or args.png_only: #Register all openscad renders (and associated post processing) if run_all or args.png_1_only: #Register openscad renders (and associated post processing) register_rms_optics_assembly(rendersystem) register_low_cost_optics_assembly(rendersystem) register_extra_low_cost_optics_assembly(rendersystem) Loading @@ -859,6 +869,8 @@ def main(): register_optics_assembled(rendersystem) register_band(rendersystem) register_actuator_visualisation(rendersystem) if run_all or args.png_2_only: #Register openscad renders (and associated post processing) register_brim_and_ties(rendersystem) register_brim_and_ties_separate_z_actuator(rendersystem) register_prepare_separate_z_actuator(rendersystem) Loading @@ -868,6 +880,8 @@ def main(): register_prepare_stand(rendersystem) register_actuator_assembly(rendersystem) register_band_tool_assembly(rendersystem) if run_all or args.png_3_only: #Register openscad renders (and associated post processing) register_picam(rendersystem) register_mount_optics(rendersystem) register_mount_upright_optics(rendersystem) Loading Loading
.gitlab-ci.yml +74 −7 Original line number Diff line number Diff line Loading @@ -257,7 +257,8 @@ prebuild-for-render: - rendering/librender/*.stl # render assemblies - uses xvfb as a virtual x-server render: # Split into three groups running in parallel render_1: extends: - .scad-job - .rules_common Loading @@ -266,7 +267,7 @@ render: needs: ["prebuild-for-render", "version"] script: - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-only - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-1-only artifacts: expire_in: 1 week Loading @@ -275,7 +276,45 @@ render: paths: - docs/renders/*.png gltf: render_2: extends: - .scad-job - .rules_common stage: build dependencies: ["prebuild-for-render", "version"] needs: ["prebuild-for-render", "version"] script: - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-2-only artifacts: expire_in: 1 week name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}-renders" # saving any rendering csg files. Only remaining files should be when scad2gltf fails paths: - docs/renders/*.png render_3: extends: - .scad-job - .rules_common stage: build dependencies: ["prebuild-for-render", "version"] needs: ["prebuild-for-render", "version"] script: - xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ./render.py --force-clean --png-3-only artifacts: expire_in: 1 week name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}-renders" # saving any rendering csg files. Only remaining files should be when scad2gltf fails paths: - docs/renders/*.png # compose GLB 3D models of complete microscopes # split into two groups running in parallel gltf_1: extends: - .scad-job - .rules_common Loading @@ -289,6 +328,27 @@ gltf: - cd rendering - scad2gltf complete_microscope_rms.scad - scad2gltf complete_microscope_low_cost.scad - cp complete_microscope_*.glb ../docs/gltf/ artifacts: expire_in: 1 week name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}-renders" # saving any rendering csg files. Only remaining files should be when scad2gltf fails paths: - docs/gltf/* gltf_2: extends: - .scad-job - .rules_common stage: build dependencies: ["prebuild-for-render", "version"] needs: ["prebuild-for-render", "version"] script: - mkdir -p docs/gltf - pip install scad2gltf - cd rendering - scad2gltf complete_microscope_upright.scad - scad2gltf complete_microscope_manual.scad - cp complete_microscope_*.glb ../docs/gltf/ Loading @@ -306,11 +366,14 @@ build-docs: extends: .rules_common dependencies: - build - render - gltf - render_1 - render_2 - render_3 - gltf_1 - gltf_2 - archive-source - sca2d needs: ["build", "render", "gltf", "archive-source", "sca2d"] needs: ["build", "render_1", "render_2", "render_3", "gltf_1", "gltf_2", "archive-source", "sca2d"] image: "python:3.12" before_script: Loading Loading @@ -352,7 +415,11 @@ deploy: extends: .fewer_rules_common dependencies: - build - render - render_1 - render_2 - render_3 - gltf_1 - gltf_2 - build-docs image: ubuntu:latest Loading
render.py +21 −7 Original line number Diff line number Diff line Loading @@ -830,16 +830,26 @@ def main(): action="store_true", ) parser.add_argument( "--png-only", help="Only renders the PNGs, STLs must already have been pre-built", "--png-1-only", help="Only renders the first set of PNGs, STLs must already have been pre-built", action="store_true", ) parser.add_argument( "--png-2-only", help="Only renders the second set of PNGs, STLs must already have been pre-built", action="store_true", ) parser.add_argument( "--png-3-only", help="Only renders the third set of PNGs, STLs must already have been pre-built", action="store_true", ) args = parser.parse_args() if args.png_only and args.stl_only: raise RuntimeError("Can't set both png-only and stl-only parameters.") if (args.png_1_only or args.png_2_only or args.png_3_only) and args.stl_only: raise RuntimeError("Can't set both png-*-only and stl-only parameters.") run_all = not args.png_only and not args.stl_only run_all = not args.png_1_only and not args.png_2_only and not args.png_3_only and not args.stl_only rendersystem = RenderSystem() if run_all or args.stl_only: Loading @@ -848,8 +858,8 @@ def main(): register_rendered_microscope_manual_stl(rendersystem, force_clean=args.force_clean) register_rendered_separate_z_actuator_stl(rendersystem) register_rendered_separate_z_actuator_manual_stl(rendersystem) if run_all or args.png_only: #Register all openscad renders (and associated post processing) if run_all or args.png_1_only: #Register openscad renders (and associated post processing) register_rms_optics_assembly(rendersystem) register_low_cost_optics_assembly(rendersystem) register_extra_low_cost_optics_assembly(rendersystem) Loading @@ -859,6 +869,8 @@ def main(): register_optics_assembled(rendersystem) register_band(rendersystem) register_actuator_visualisation(rendersystem) if run_all or args.png_2_only: #Register openscad renders (and associated post processing) register_brim_and_ties(rendersystem) register_brim_and_ties_separate_z_actuator(rendersystem) register_prepare_separate_z_actuator(rendersystem) Loading @@ -868,6 +880,8 @@ def main(): register_prepare_stand(rendersystem) register_actuator_assembly(rendersystem) register_band_tool_assembly(rendersystem) if run_all or args.png_3_only: #Register openscad renders (and associated post processing) register_picam(rendersystem) register_mount_optics(rendersystem) register_mount_upright_optics(rendersystem) Loading