Skip to content
Guillaume Tucker edited this page Oct 10, 2018 · 10 revisions

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.

To create a staging -> prod PR

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.