-
Notifications
You must be signed in to change notification settings - Fork 4
Workflow
Changes in kernelci-core
are first made in kernelci-core-staging
and tested on staging.kernelci.org. Then a PR is made to merge these changes with the production repository kernelci-core
which is used directly by Jenkins.
First, create a fork of kernelci-core
. Then clone it and add the staging
and prod
remotes:
git clone [email protected]:<user-name>/kernelci-core.git
cd kernelci-core
git remote add staging [email protected]:kernelci/kernelci-core-staging.git
git remote update staging
git checkout staging/master -b staging-master
git remote add prod [email protected]:kernelci/kernelci-core.git
git remote update prod
Then create a new staging tag (replacing YYYYMMDD with the actual date), start a PR branch from it and rebase all the changes since the previous tag onto prod:
git checkout staging-master
git pull --ff-only
git tag -a staging-YYYYMMDD -m staging-YYYYMMDD
git push staging staging-YYYYMMDD
git checkout -b pr/staging-YYYYMMDD
git remote update prod
git rebase -i staging-<old-tag> --onto=prod/master
At this point it's worth comparing the staging branch for the PR with the staging-master branch to check all the changes are in the PR:
git diff staging-master staging-YYYYMMDD
If it all looks OK then push it to your forked repo:
git push origin HEAD:staging-YYYYMMDD
Then visit your kernelci-core
fork and create a PR as usual from there. Add a description with a summary of the changes in the PR.
KernelCI has currently a lot of moving parts and all the information in this wiki is work in progress. This is a public wiki, feel free to contribute!