Release Building - EGroupware/egroupware GitHub Wiki

Instructions how to build a new maintenance release

Commit and merge the changes from our translation server!

You need a clean 26 checkout without any uncommited or unpushed changes!

git clone [email protected]:EGroupware/egroupware.git epl-26-checkout
cd epl-26-checkout
# install EPL apps
git clone [email protected]:EGroupwareGmbH/epl.git stylite
for app in esyncpro policy webauthn; do git clone [email protected]:EGroupwareGmbH/$app.git; done
./install-cli.php

For an existing checkout you need to run install-cli twice, as first one fails in composer!

./install-cli.php

Then you start the build, which will run install-cli.php again

doc/rpm-build/checkout-build-archives.php -v
  • it will determine the changelog based on commit messages and allows to modify it
  • it will create a tag 26.<m>.<YYYYmmdd> (can be changed with --packaging <YYYYmmdd>)
  • at one point it needs the root password to update clamav database to virusscan the build-root
  • pgp will ask the passphrase for [email protected] 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>)
  • the creation of the tag on Github will no longer trigger an automatic build of the Docker image egroupware/egroupware:19.1.<YYYYmmdd> on Docker Hub: https://cloud.docker.com/u/egroupware/repository/registry-1.docker.io/egroupware/egroupware, you have to manually run:
cd doc/docker/fpm
./build.sh 26.<m>.<YYYYmmdd>
# for EPL
cd -; cd stylite/docker
./build.sh 26.<m>.<YYYYmmdd>

Push the changelog to 26 branch and merge the commit to master to satisfy the update checker:

cd epl-26-checkout
git push
git log # to identify the change-log commit to merge to master
git checkout master
git pull
git cherry-pick <hash-from-changelog-commit>
git push
git checkout 26

Last but not least remove the pre-release tag from 26.<m>.<YYYYmmdd> release on Github and update first line of https://www.egroupware.org/currentversion

ssh docker.egroupware.org sed "'1 s/^.*$/26.<m>.<YYYYmmdd>/'" -i /var/www/egroupware.org/currentversion

Building the EPL image

cd ~/egroupware # use a *different* checkout e.g. from master
cd stylite
docker/build.sh 26.<m>.<YYYYmmdd>
  • it will pull the above build CE image
  • add epl-functions and other EPL apps to it
  • tag it as quay.io/egroupware/epl:26.<m>.<YYYYmmdd>, 6 and latest and push it to quay.io

Build RPM/DEB packages on build.opensuse.org

This step is not necessary, if there are no changes on the package itself!

You need a checkout of the EGroupware/build.opensuse.org repo

git clone [email protected]:EGroupware/build.opensuse.org.git

To build a new package you need to

cd build.opensuse.org/server\:eGroupWare/egroupware-docker
cp /your/23.1/checkout/doc/rpm-build/debian.changes .
# fix the packaging accordingly
for file in egroupware-docker.{spec,dsc}; do sed -i 's/26.[0-9]+.[0-9]\{8\}/26.<m>.<YYYYmmdd>/g' $file; done
git rm egroupware-docker-26*.tar.gz
tar -czvf egroupware-docker-26.<m>.<YYYYmmdd>.tar.gz egroupware-docker
osc addremove
osc commit -m 'building 26.<m>.<YYYYmmdd>'
git add egroupware-docker-26.<m>.<YYYYmmdd>.tar.gz egroupware-docker.{spec,dsc} debian.changes
git commit -m 'changes for 26.<m>.<YYYYmmdd>'

After testing EPL-Archives need to be rsync-ed to download.egroupware.org

cd ~/download/archives
rsync -rv egroupware-26 backup.egroupware.org:/poolB/download/html/stylite-epl/

Univention packages for 26

cd epl-26-checkout
doc/rpm-build/release-appcenter.sh

And writing an email to [email protected] that there is a new maintenance release.

⚠️ **GitHub.com Fallback** ⚠️