{"id":18947362,"url":"https://github.com/openfluid/openfluid-buildmachine","last_synced_at":"2026-01-08T02:04:28.339Z","repository":{"id":151667418,"uuid":"180201907","full_name":"OpenFLUID/openfluid-buildmachine","owner":"OpenFLUID","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-11T08:56:55.000Z","size":87,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T04:04:12.801Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenFLUID.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-04-08T17:43:38.000Z","updated_at":"2024-04-11T08:57:00.000Z","dependencies_parsed_at":"2023-06-19T07:00:42.988Z","dependency_job_id":null,"html_url":"https://github.com/OpenFLUID/openfluid-buildmachine","commit_stats":{"total_commits":8,"total_committers":2,"mean_commits":4.0,"dds":0.375,"last_synced_commit":"fda02ea38cd56f3ef61a6690662f4aa7bf6836fc"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenFLUID%2Fopenfluid-buildmachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenFLUID%2Fopenfluid-buildmachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenFLUID%2Fopenfluid-buildmachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenFLUID%2Fopenfluid-buildmachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenFLUID","download_url":"https://codeload.github.com/OpenFLUID/openfluid-buildmachine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249166154,"owners_count":21223392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T13:09:46.024Z","updated_at":"2026-01-08T02:04:23.307Z","avatar_url":"https://github.com/OpenFLUID.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"OpenFLUID BuildMachine\n======================\n\nTool for automatically build, test and package the OpenFLUID modelling platform. \nAlso handles building and testing of PyOpenFLUID and ROpenFLUID repositories.\n\nIt is written in Python 3.\n\n\n\nInstallation\n============\n\nfrom PyPI\n---------\n\n*TODO*\n\n\nfrom sources\n------------\n\nClassic installation (main usage)\n\n.. code-block:: shell\n\n    pip3 install .\n\n\nInstallation linked to the current sources (usually for development purposes)\n\n.. code-block:: shell\n\n     pip3 install -e .\n\n\n\nUsage\n=====\n\nOFBM\n----\n\nBuild machine automaton for OpenFLUID building, testing and installing\n\nofbm [-h] [--temp-dir TEMP_DIR] [--build-jobs BUILD_JOBS] [--shell]\n            [--openfluid-repos OPENFLUID_REPOS]\n            {package,test} ...\n            \nOptions for packaging:\nofbm package [-h] [--run-examples RUN_EXAMPLES]\n                    [--ropenfluid-repos ROPENFLUID_REPOS]\n                    [--pyopenfluid-repos PYOPENFLUID_REPOS]\n                    [--openfluidjs-repos OPENFLUIDJS_REPOS]\nRUN_EXAMPLES can be a list of referenced examples in Firespread,MHYDAS_Roujan,Primitive,Manhattan separated by commas, \n                    or * to run every example.\nEach ..._REPOS can be a github partial url or \"default\" to target the OpenFLUID reference repository for each language.\nFor github repositories, branch can be precised by adding the branch to checkout after the repo url with a \"#\" inbetween (for example: \"OpenFLUID/openfluid#develop\")\n\n\nMBM\n---\n\nWrapper for OFBM on several contexts, following a yaml configuration file\n\nmbm [-h] [--conf-file CONF_FILE] [--out-dir OUT_DIR] [--try-image-build] [--shell]\n\nCaution: OUT_DIR must be an absolute path (but not necessary existing)\nIf option \"try-image-build\" is added and a missing image is targetted, the system will create it. \nShell option is optional and redirects every mbm-level log to the shell instead of log file. \n(Not affecting the \"shell\" output behaviour of the ofbm)\n\nPrecisions about try-image-build: \n\n- this can only work if the Dockerfile is found\n- a check is done to estimate if this build can fit in the available space on given volume, preventing the build when the space is not sufficient. \n- stay vigilant about disk space\n\nMBM-Env\n-------\n\nStructured wrapper for MBM\n\nopenfluid-mbm [-h] {create,run} [path/to/env]\n\n\"create\" command generates a standalone folder with scripts and structure for runs\n\"run\" command triggers the multi-buildmachine inside this standalone folder, according its \"config.yaml\" settings, and create an \"exec...\" folder for the current run.\n\nDevelopment\n===========\n\n\nRun the following commands from the root of the sources tree.\n\n\nCheck\n-----\n\n.. code-block:: shell\n\n   python3 setup.py check\n\n\nPackaging\n---------\n\n.. code-block:: shell\n\n   python3 setup.py sdist bdist\n\n\n\nInternals\n=========\n\n\n1) OFBM\n\nThe target directory will have the following structure :\n\nTMP_DIR\n-------\n  [of_source]\n  _build/\n  Log/\n    0_prepare.txt\n    [1_fetch.txt]\n    2_configure.txt\n    3_build.txt\n    4_package.txt|4_test.txt\n    ...\n  report.json\n  report.html\n\n\nLog file structure\n------------------\n\nBy default, all logs (output and errors) are saved in files corresponding to the step in the Log directory. \nEach message is timestamped and a line \"End of command.\" is added after each command to track the end of each command.\n\n\nReport structure\n----------------\n\nReports summarize status for every major step. If any substep failed, the global step will also considered as failing.\nThe report.json is used for interoperability.\nIt allows the quick processing of the buildmachine run results by an automatic supervisor.\nThe report.html is more suited for human reading and gives a quick access to log files.\n\n\n2) Multi-BuildMachine\n\nCONFIGURATION FILE\n------------------\n\nYaml format, required key:\n.. code-block:: yaml\n     active-setups (list)\n\nOrganised with a list of :\n- contexts (docker images or local system)\n- setups (depending on build types, context and other parameters)\n\nwhich can be accessed via variables following the YAML syntax: \n  \u0026VAR to set the variable\n  *VAR to access the variable content\n\nEach setup have mandatory parameters:\n- build-type: value is test or package\n- temp-dir: location for build generation and logs output\n- contexts: list of local system and/or built docker images\n\nEach parameter used in the ofbm command can also be set (optional) in any setup:\n- build-jobs\n- openfluid-repos\n- pyopenfluid-repos, ...\n- run-examples: \"*\" (Caution, use example name separated by commas or \"*\" to run all referenced examples)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfluid%2Fopenfluid-buildmachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfluid%2Fopenfluid-buildmachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfluid%2Fopenfluid-buildmachine/lists"}