Updated for 21.1

Ralf Becker 2021-05-25 13:57:10 +02:00
parent 18989338bc
commit 2aaf9bd4b8

@ -1,12 +1,12 @@
## Instructions how to build a new 20.1 or 19.1 maintenance release ## Instructions how to build a new maintenance release
> Our [packaging script](https://github.com/EGroupware/egroupware/blob/master/doc/rpm-build/checkout-build-archives.php) currently requires **composer in version 1.8.6**, otherwise you get an error about bower-asset/cropper! (```composer self-update 1.8.6``` get's you back, in case you updated to 1.9 or later) > Our [packaging script](https://github.com/EGroupware/egroupware/blob/master/doc/rpm-build/checkout-build-archives.php) currently requires **composer in version 1.8.6**, otherwise you get an error about bower-asset/cropper! (```composer self-update 1.8.6``` get's you back, in case you updated to 1.9 or later)
You need a clean 19.1 checkout without any uncommited or unpushed changes! You need a clean 21.1 checkout without any uncommited or unpushed changes!
``` ```
git clone git@github.com:EGroupware/egroupware.git epl-19.1-checkout git clone git@github.com:EGroupware/egroupware.git epl-21.1-checkout
cd epl-19.1-checkout cd epl-21.1-checkout
# install EPL apps # install EPL apps
git clone git@github.com:EGroupwareGmbH/epl.git stylite git clone git@github.com:EGroupwareGmbH/epl.git stylite
for app in esyncpro policy webauthn; do git clone git@github.com:EGroupwareGmbH/$app.git; done for app in esyncpro policy webauthn; do git clone git@github.com:EGroupwareGmbH/$app.git; done
@ -21,7 +21,7 @@ Then you start the build, which will run install-cli.php again
doc/rpm-build/checkout-build-archives.php -v doc/rpm-build/checkout-build-archives.php -v
``` ```
* it will determine the changelog based on commit messages and allows to modify it * it will determine the changelog based on commit messages and allows to modify it
* it will create a tag ```19.1.<YYYYmmdd>``` (can be changed with ```--packaging <YYYYmmdd>```) * it will create a tag ```21.1.<YYYYmmdd>``` (can be changed with ```--packaging <YYYYmmdd>```)
* at one point it needs the root password to update clamav database to virusscan the build-root * at one point it needs the root password to update clamav database to virusscan the build-root
* pgp will ask the passphrase for build@egroupware.org key to sign the hashes of the archives * pgp will ask the passphrase for build@egroupware.org key to sign the hashes of the archives
* at last it will ask the Github token of the user doing the upload (can be changed with ```--github_user <username>```) * at last it will ask the Github token of the user doing the upload (can be changed with ```--github_user <username>```)
@ -29,38 +29,38 @@ doc/rpm-build/checkout-build-archives.php -v
After testing the image, it need to be tagged as 19.1 and latest After testing the image, it need to be tagged as 19.1 and latest
``` ```
docker pull egroupware/egroupware:19.1.<YYYYmmdd> docker pull egroupware/egroupware:21.1.<YYYYmmdd>
docker tag egroupware/egroupware:19.1.<YYYYmmdd> egroupware/egroupware:19.1 docker tag egroupware/egroupware:21.1.<YYYYmmdd> egroupware/egroupware:21.1
docker push egroupware/egroupware:19.1 docker push egroupware/egroupware:21.1
docker tag egroupware/egroupware:19.1.<YYYYmmdd> egroupware/egroupware:latest docker tag egroupware/egroupware:21.1.<YYYYmmdd> egroupware/egroupware:latest
docker push egroupware/egroupware:latest docker push egroupware/egroupware:latest
``` ```
Push the changelog to 19.1 branch and merge the commit to master to satisfy the update checker: Push the changelog to 21.1 branch and merge the commit to master to satisfy the update checker:
``` ```
cd epl-19.1-checkout cd epl-21.1-checkout
git push git push
git log # to identify the change-log commit to merge to master git log # to identify the change-log commit to merge to master
git checkout master git checkout master
git pull git pull
git cherry-pick <hash-from-changelog-commit> git cherry-pick <hash-from-changelog-commit>
git push git push
git checkout 19.1 git checkout 21.1
``` ```
Last but not least remove the pre-release tag from ```19.1.<YYYYmmdd>``` release on Github and update first line of https://www.egroupware.org/currentversion Last but not least remove the pre-release tag from ```19.1.<YYYYmmdd>``` release on Github and update first line of https://www.egroupware.org/currentversion
``` ```
ssh wordpress sed "'1 s/^.*$/19.1.<YYYYmmdd>/'" -i /var/www/egroupware.org/currentversion ssh www.egroupware.org sed "'1 s/^.*$/21.1.<YYYYmmdd>/'" -i /var/www/egroupware.org/currentversion
``` ```
## Building the EPL image ## Building the EPL image
``` ```
cd other/19.1/checkout # use a *different* up-to-date 19.1 checkout cd other/21.1/checkout # use a *different* up-to-date 21.1 checkout
docker pull egroupware/egroupware:19.1.<YYYYmmdd> docker pull egroupware/egroupware:21.1.<YYYYmmdd>
cd stylite cd stylite
docker/build.sh 19.1.<YYYYmmdd> docker/build.sh 21.1.<YYYYmmdd>
``` ```
* it will pull the above build CE image * it will pull the above build CE image
* add epl-functions to it * add epl-functions to it
* tag it as ```quay.io/egroupware/epl:19.1.<YYYYmmdd>```, 19.1 and latest and push it to quay.io * tag it as ```quay.io/egroupware/epl:21.1.<YYYYmmdd>```, 21.1 and latest and push it to quay.io
## Build RPM/DEB packages on build.opensuse.org ## Build RPM/DEB packages on build.opensuse.org
> This step is not necessary, if there are no changes on the package itself! > This step is not necessary, if there are no changes on the package itself!
@ -72,26 +72,26 @@ git clone git@github.com:EGroupware/build.opensuse.org.git
To build a new package you need to To build a new package you need to
``` ```
cd build.opensuse.org/server\:eGroupWare/egroupware-docker cd build.opensuse.org/server\:eGroupWare/egroupware-docker
cp /your/19.1/checkout/doc/rpm-build/debian.changes . cp /your/21.1/checkout/doc/rpm-build/debian.changes .
# fix the packaging accordingly # fix the packaging accordingly
for file in egroupware-docker.{spec,dsc}; do sed -i 's/19.1.[0-9]\{8\}/19.1.<YYYYmmdd>/g' $file; done for file in egroupware-docker.{spec,dsc}; do sed -i 's/21.1.[0-9]\{8\}/21.1.<YYYYmmdd>/g' $file; done
git rm egroupware-docker-19.1*.tar.gz git rm egroupware-docker-21.1*.tar.gz
tar -czvf egroupware-docker-19.1.<YYYYmmdd>.tar.gz egroupware-docker tar -czvf egroupware-docker-21.1.<YYYYmmdd>.tar.gz egroupware-docker
osc addremove osc addremove
osc commit -m 'building 19.1.<YYYYmmdd>' osc commit -m 'building 21.1.<YYYYmmdd>'
git add egroupware-docker-19.1.<YYYYmmdd>.tar.gz egroupware-docker.{spec,dsc} debian.changes git add egroupware-docker-21.1.<YYYYmmdd>.tar.gz egroupware-docker.{spec,dsc} debian.changes
git commit -m 'changes for 19.1.<YYYYmmdd>' git commit -m 'changes for 21.1.<YYYYmmdd>'
``` ```
After testing EPL-Archives need to be rsync-ed to download.egroupware.org After testing EPL-Archives need to be rsync-ed to download.egroupware.org
``` ```
cd ~/download/archives cd ~/download/archives
rsync -rv egroupware-19.1 download.egroupware.org:/var/www/html/stylite-epl/ rsync -rv egroupware-21.1 download.egroupware.org:/var/www/html/stylite-epl/
``` ```
# Univention packages for 19.1 # Univention packages for 21.1
``` ```
cd epl-19.1-checkout cd epl-21.1-checkout
doc/rpm-build/release-appcenter.sh doc/rpm-build/release-appcenter.sh
``` ```
And writing an email to appcenter@univention.de that there is a new maintenance release. And writing an email to appcenter@univention.de that there is a new maintenance release.