{"id":22914116,"url":"https://github.com/suse/bci-dockerfile-generator","last_synced_at":"2025-05-12T13:42:59.339Z","repository":{"id":36963088,"uuid":"501692354","full_name":"SUSE/BCI-dockerfile-generator","owner":"SUSE","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-12T08:53:10.000Z","size":13149,"stargazers_count":12,"open_issues_count":29,"forks_count":22,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-12T08:57:24.062Z","etag":null,"topics":["automation","bci","containers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SUSE.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-09T14:43:21.000Z","updated_at":"2025-05-09T17:37:27.000Z","dependencies_parsed_at":"2023-12-20T15:50:07.021Z","dependency_job_id":"8f6a4de7-8c18-4046-a77b-50fd83e87845","html_url":"https://github.com/SUSE/BCI-dockerfile-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SUSE%2FBCI-dockerfile-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SUSE%2FBCI-dockerfile-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SUSE%2FBCI-dockerfile-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SUSE%2FBCI-dockerfile-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SUSE","download_url":"https://codeload.github.com/SUSE/BCI-dockerfile-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253749445,"owners_count":21958122,"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":["automation","bci","containers"],"created_at":"2024-12-14T05:13:24.208Z","updated_at":"2025-05-12T13:42:59.328Z","avatar_url":"https://github.com/SUSE.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"BCI build recipe generator\n==========================\n\nThis repository contains the scripts to generate the build recipes (Dockerfiles\nor `kiwi \u003chttps://github.com/OSInside/kiwi\u003e`_ build descriptions) to build the\nBCI development project in the `Open Build Service\n\u003chttps://build.opensuse.org/project/subprojects/devel:BCI\u003e`_.\n\nFind the latest fully rendered documentation `here\n\u003chttps://opensource.suse.com/BCI-dockerfile-generator/\u003e`_.\n\n\nPrerequisites\n-------------\n\nYou will need the following tools:\n\n- Python 3.10 or later\n- `poetry \u003chttps://python-poetry.org/\u003e`_\n- `osc \u003chttps://github.com/openSUSE/osc/\u003e`_ installed and configured to reach\n  `OBS \u003chttps://build.opensuse.org/\u003e`_ by default.\n- ``python-dnf`` installed via your system's package manager (if you want to\n  touch the .Net images)\n\nTo get started, clone this repository and run :command:`poetry install` in its\nroot directory.\n\n\nOverview\n--------\n\nThis repository contains two major components:\n\n1. templating logic to autogenerate the :file:`Dockerfile` and kiwi build\n   descriptions for SLE BCI (see :py:mod:`bci_build`) including an updater for\n   our .Net images (see :py:mod:`dotnet`).\n\n2. Github automation to render the templates into separate branches and\n   synchronize them to the Open Build Service (see :py:mod:`staging`).\n\n\nContributing\n------------\n\nTo contribute a new container or modify an existing one, please check the\nchapter :ref:`adding-and-modifying-container-images`.\n\nBefore submitting your changes, please format your source code with `ruff\n\u003chttps://docs.astral.sh/ruff/\u003e`_:\n\n.. code-block:: bash\n\n   poetry run ruff format\n   # reorder imports:\n   poetry run ruff check --fix\n\nAdditionally, run the unit tests and check whether the documentation builds\n(additional points if you update it):\n\n.. code-block:: bash\n\n   # tests\n   poetry run pytest -vv\n   # docs\n   poetry run sphinx-build -M html source build -W\n\nFurther Contributing Guidelines are defined in the `CONTRIBUTING.md` file\nin the root directory of the project.\n\n\nDocumentation - READMEs\n^^^^^^^^^^^^^^^^^^^^^^^\n\nWe are using Jinja2 templates to create Markdown formatted :file:`README.md`\nfiles of each container.\n\nTo create a new :file:`README.md`, create a new file in the location\n:file:`src/bci_build/package/$name/README.md.j2` where ``$name`` is the\ncontainer image name\n(:py:attr:`~bci_build.package.BaseContainerImage.name`). Add a markdown\nformatted README that explains the specifics of using this container\nimages. Focus on anything container specific, like volumes, the behavior of the\nentrypoint and differences to the package in SLES/SLFO/Tumbleweed. If there is\nupstream/downstream documentation, refer to it if applicable.\n\nThere are additionally the following helper templates, to enhance the READMEs:\n\n- ``licensing_and_eula.j2``: Adds a standard licencing \u0026 EULA footer. **MUST**\n  be included at the bottom of every README.\n\n- ``badges.j2``: Adds a Redistributable \u0026 optional supportlevel badge. **MUST**\n  be included at the top of every README.\n\n- ``access_protected_images.j2``: Explains how to access an image behind the\n  paywall. It only needs to be added at the bottom of paywalled images.\n\n\nYou can include the helpers via the following directive:\n\n.. code-block::\n\n   {% include 'licensing_and_eula.j2' %}\n\n\nThe :file:`README.md.j2` template is rendered with the respective\n:py:class:`~bci_build.package.BaseContainerImage` being passed as the parameter\n``image`` to the templating engine. This allows you to use all properties of the\n:py:class:`~bci_build.package.BaseContainerImage` in the README, e.g. the image\ntitle (:py:attr:`~bci_build.package.BaseContainerImage.title`) or the reference\n(:py:attr:`~bci_build.package.BaseContainerImage.pretty_reference`).\n\n\nEntrypoints\n-----------\n\nThe projects currently provides two entry points. The first is the package build\ndescription \"dumper\" called ``package``. It writes the build description of a\nsingle container image into a specified directory:\n\n.. code-block:: bash\n\n   poetry run package postgres-12-sp4 ~/tmp/postgres/\n\nThe first argument is the name of the container image, this is the concatenation\nof the image name (:py:attr:`~bci_build.package.BaseContainerImage.name`) and\nthe operating system version\n(:py:attr:`~bci_build.package.BaseContainerImage.os_version`).\n\n\nThe second entry point is the github automation bot, which is not intended for\nend user usage. You can find some details in the chapter :ref:`staging-bot`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuse%2Fbci-dockerfile-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuse%2Fbci-dockerfile-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuse%2Fbci-dockerfile-generator/lists"}