Deployment
Publishing new versions to the NPM Package (@dnb/eufemia) is handled by a Deploy Server.
Continuous Integration (CI)
The Portal (dnb-design-system-portal), all the icons and the NPM Package (@dnb/eufemia) are build, deployed and released by a Continuous Integration (CI) server.
Release GitFlow
The steps, from code changes to production builds, are:
- Make a Pull Request to the
origin/mainbranch. - Check the results of the CI tests and builds.
- After the Pull Request got approved by one of the authored maintainers,
- You can merge your Pull Request.
- A maintainer will create a Pull Request into one of the release branches (
next,alpha,betaorrelease). - After a release Pull Request got merged, the CI Server will deploy the Portal and release a new version to NPM.
How to make releases
Make sure you only make Pull Request from origin/main into origin/release.
The release branch (origin/release) is more like a secondary branch. It contains the state of the latest version as well as all the git tags – each containing a new version number.
NB: All example steps are for beta versions, but will apply for next or alpha versions as well.
How to release the first next, alpha or beta?
First, we need to ensure our beta branch contains the latest git tags:
git fetchgit switch origin/betagit reset --hard origin/release
Now, you may either merge/cherry-pick locally or via a Pull Request:
In order to deal with rebasing and merging of several branches, it may be preferable to do it locally. You need git push to remote access (GitHub).
We continue locally:
git merge {your-feature-branch}git push --force-with-lease
Our beta version will now get released.
How to release another next, alpha or beta version?
git switch {your-feature-branch}git checkout -b {your-feature-branch}-betagit rebase origin/betagit switch betagit merge {your-feature-branch}-betagit push --force-with-lease
Our beta version will now get released.
How run a dry release locally
If you are unsure about what version will be released, you can run a so called dry-run locally.
Run the steps and prepare the git branches as above, but before you push to origin, you can run:
yarn publish:dry
How to create a local package
Run yarn workspace @dnb/eufemia build:pack and you should get this file: /build/dnb-eufemia-v0.0.0-development.