Build and release
CI¶
A GitHub Actions CI workflow is automatically generated when you generate a new solution or package with lime-project.
A new version of a package or a solution is automatically created when a commit is pushed to main
or a branch is merged to main
. The CI workflows support pre-releases using a branch named dev
If you want to see the status of your package build, you can browse to the tab "Actions" in your package repo. Here you can also see the logs if you want to find out why a job failed.
Semantic Release¶
Your commit message matters, it automatically decides the next version number of your code project!
Every code project at Lime uses semantic release. Semantic-release uses the commit messages to determine the next version of your code. Following formalized conventions for commit messages, semantic-release automatically determines the next semantic version number, generates a changelog and publishes the release. Read more about it here
lime-buildtools¶
The tool lime-buildtools
is responsible for building a Lime project. It will parse your pyproject.toml
and figure out how your solution
or package
should be built.
[tool.lime.project]
project_type = "solution|package"
Frontend build¶
It's possible to bundle static content in your python project. You can do that by defining custom build steps, that are executed by lime-buildtools
during the build phase.
Consider the following entry in pyproject.toml
:
[[tool.lime.static_content]]
[tool.lime.static_content.build_step]
cwd = "frontend"
commands = ["npm ci", "npm run build"]
[tool.lime.static_content.copy_step]
source = "frontend/dist"
destination = "solution_my_solution/web_components/static"
The following happens when this is executed:
npm ci
is executed in the frontend folder.npm run build
is executed in the frontend folder.- The folder
frontend/dist
is copied tosolution_my_solution/web_components/static
.
Info
This entry is automatically added when a web-component is generated with lime-project
Local build¶
A new release of a project can be built with
lime-buildtools semantic-release-build