{"id":28561673,"url":"https://github.com/ultimaker/embedded-workflows","last_synced_at":"2026-01-31T17:36:12.126Z","repository":{"id":212501312,"uuid":"731629219","full_name":"Ultimaker/embedded-workflows","owner":"Ultimaker","description":"Store embedded software workflows","archived":false,"fork":false,"pushed_at":"2025-05-15T11:01:26.000Z","size":33,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-06T18:15:13.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","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/Ultimaker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2023-12-14T14:07:02.000Z","updated_at":"2025-05-15T08:43:11.000Z","dependencies_parsed_at":"2023-12-22T09:37:53.589Z","dependency_job_id":"4aede694-0c27-46ad-b582-55871701cdb3","html_url":"https://github.com/Ultimaker/embedded-workflows","commit_stats":null,"previous_names":["ultimaker/embedded-workflows"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2Fembedded-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2Fembedded-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2Fembedded-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2Fembedded-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ultimaker","download_url":"https://codeload.github.com/Ultimaker/embedded-workflows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2Fembedded-workflows/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259064100,"owners_count":22799740,"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":"2025-06-10T11:15:21.932Z","updated_at":"2026-01-31T17:36:12.096Z","avatar_url":"https://github.com/Ultimaker.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# embedded-workflows\nStore embedded software workflows.\nDo not forget this is **PUBLIC** repository.\n\nImplemented Reusable Workflows:\n\n- **Prepare Environment** (prepare_env.yml): By parsing the github context, it sets the variables `RELEASE_VERSION` and `RELEASE_REPO` for the next workflows.\nThe `RELEASE_VERSION` will be `999.999.999` for a regular commit to a non-master branch. For a merge to a master branch, it will get the nightly build format `\u003cyyyy.mm.dd\u003e-merge-\u003cbranch\u003e`. For a tag in a branch, it will take the tag version (if properly formatted).\nThe `RELEASE_REPO` will have the Cloudsmith target repository to upload the package: `night-builds` for a merge to a master branch, `packages-released` for a tag without the `-dev` in a master branch suffix and `packages-dev` for a tag with the `-dev` suffix in a non-master branch.\nIf the `BUILD_DOCKER_CACHE` input boolean is set to `true`, it will also login in the `Github Container Registry` and call `build_for_ultimaker.sh -a build_docker_cache` in order to cache the docker image. This technique is currently used by (and can be copied from) `Opinicus` to cache the docker image.\n\n- **Shellcheck** (shellcheck.yml): Call `./build_for_ultimaker.sh -a shellcheck` for the repository.\n- **Build Package** (build.yml): Uses the `RELEASE_VERSION` from *Prepare Environment* to make a package by calling `./build_for_ultimaker.sh -a build`. The resulting package is uploaded as an artifact.\n- **Unit Test** (unit_test.uml): Might be used to run the unit tests for the repository if this can be encapsulated using `./build_for_ultimaker.sh -a unittest`.\n- **Release Package** (release_pkg.yml): Downloads the artifact generated in the *Build Package* workflow and uploads to Cloudsmith in the repository defined by `RELEASE_REPO`. It will only run if `RELEASE_REPO` is not `none`.\n- **Release Docker Image** (release_docker_img.yml): Build and Release to Github Packages a docker image. You need to specify two inputs to this workflow: The docker image name (like `um-kernel` or `ultimoco`) and the tag prefix used to trigger the docker image build, e.g. `docker_img-`. In this case, if we tag the repository with `docker_img-v1`, the prefix will be stripped and the image will be released as version `v1`. **VERY IMPORTANT:** After upload, the image will be *INTERNAL* and NOT connected to any repository. You need to select the package in organizarion (Ultimaker-\u003ePackages-\u003e`package name`-\u003eConnect Repository) and make it *PUBLIC* (Ultimaker-\u003ePackages-\u003e`package name`-\u003ePackage Settings-\u003eChange Visibility) because our workflows do not authenticate before downloading images - we dont store any private information in the docker images. It is also optional to *connect* the package to a repository. According to the current Github documentation, connecting a package to a public repository will not count its downloads from the organization bandwitdh, so it is a good idea doing so. The current procedure is to connect the package to this repo (`embedded-workflows`) and make it Public. \n\nThis repository also stores the Dockerfiles to build the images used by CI Linting Tools. These images are pushed to the Gitlab Packages repository (https://github.com/orgs/Ultimaker/packages?tab=packages)\n\n- **Clang-Format:** Dockerfiles/clang-format/\n- **Clang-Tidy:** Dockerfiles/clang-tidy/\n- **CPPCheck:** Dockerfiles/cppcheck/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimaker%2Fembedded-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultimaker%2Fembedded-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimaker%2Fembedded-workflows/lists"}