From 429a5f971122ec4d41aad4f572eb7a02f6709fa8 Mon Sep 17 00:00:00 2001 From: missytake Date: Tue, 22 Jul 2025 23:15:22 +0200 Subject: [PATCH 1/6] CI: build .deb and upload to download.delta.chat --- .github/workflows/build-deb.yml | 62 +++++++++++++++++++++++ .github/workflows/build-staging-deb.yml | 66 +++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 .github/workflows/build-deb.yml create mode 100644 .github/workflows/build-staging-deb.yml diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml new file mode 100644 index 000000000..a7583022d --- /dev/null +++ b/.github/workflows/build-deb.yml @@ -0,0 +1,62 @@ +name: build + +on: + push: + branches: + - main + - github-ci + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + build-amd64: + runs-on: ubuntu-latest + container: debian:12 + steps: + - name: install dependencies + run: | + echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc + apt update + apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync + + - name: clone repository + run: git clone https://github.com/chatmail/dovecot + + - name: build + run: | + cd dovecot + DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc + + - name: upload .deb files + run: | + mkdir -p "$HOME/.ssh" + echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" + chmod 600 "$HOME/.ssh/key" + rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" + + build-arm: + runs-on: ubuntu-24.04-arm + container: debian:12 + steps: + - name: install dependencies + run: | + echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc + apt update + apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync + + - name: clone repository + run: git clone https://github.com/chatmail/dovecot + + - name: build + run: | + cd dovecot + DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc + + - name: upload .deb files + run: | + mkdir -p "$HOME/.ssh" + echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" + chmod 600 "$HOME/.ssh/key" + rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" + diff --git a/.github/workflows/build-staging-deb.yml b/.github/workflows/build-staging-deb.yml new file mode 100644 index 000000000..c929b96e0 --- /dev/null +++ b/.github/workflows/build-staging-deb.yml @@ -0,0 +1,66 @@ +name: staging + +on: + pull_request: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + staging-amd64: + runs-on: ubuntu-latest + container: debian:12 + steps: + - name: install dependencies + run: | + echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc + apt update + apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync + + - uses: actions/checkout@v4 + with: + path: dovecot + show-progress: false + fetch-depth: 0 + + - name: build + run: | + cd dovecot + DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar --git-ignore-branch -us -uc + + - name: upload .deb files + run: | + mkdir -p "$HOME/.ssh" + echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" + chmod 600 "$HOME/.ssh/key" + rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" + + staging-arm: + runs-on: ubuntu-24.04-arm + container: debian:12 + steps: + - name: install dependencies + run: | + echo "MIRRORSITE=http://deb.debian.org/debian" > /etc/pbuilderrc + apt update + apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync + + - uses: actions/checkout@v4 + with: + path: dovecot + show-progress: false + fetch-depth: 0 + + - name: build + run: | + cd dovecot + DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar --git-ignore-branch -us -uc + + - name: upload .deb files + run: | + mkdir -p "$HOME/.ssh" + echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" + chmod 600 "$HOME/.ssh/key" + mv $GITHUB_WORKSPACE/build-area staging-$GITHUB_REF_NAME + rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" staging-$GITHUB_REF_NAME "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" + From 7e9f8bf90d6fc08fd54a715959feecddd9ccd5f9 Mon Sep 17 00:00:00 2001 From: missytake Date: Tue, 22 Jul 2025 23:15:40 +0200 Subject: [PATCH 2/6] add changelog --- ChangeLog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 581517deb..369f4f79a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2025-07-22 15:27:09 +0000 missytake (429a5f971) + + CI: build .deb and upload to download.delta.chat + + +M .github/workflows/build-deb.yml +M .github/workflows/build-deb-staging.yml + 2023-08-28 15:27:09 +0000 Marco Bettini (47349e2482) mail-crypt: mail_crypt_mailbox_allocated() - Force cross-user copies to From a5c6c2dc92a7a7b020950d17272507434ff76ed1 Mon Sep 17 00:00:00 2001 From: missytake Date: Tue, 22 Jul 2025 23:44:21 +0200 Subject: [PATCH 3/6] CI: remove workflows before building --- .github/workflows/build-deb.yml | 22 ++++++++++++++++++---- .github/workflows/build-staging-deb.yml | 17 ++++++++++++++--- ChangeLog | 8 -------- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml index a7583022d..b81ca7c85 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/build-deb.yml @@ -20,12 +20,19 @@ jobs: apt update apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync - - name: clone repository - run: git clone https://github.com/chatmail/dovecot + - uses: actions/checkout@v4 + with: + path: dovecot + show-progress: false + fetch-depth: 0 - name: build run: | cd dovecot + git rm -r .github + git config --local user.name "test" + git config --local user.email "test@example.org" + git commit -am "CI: remove .github directory before building" DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc - name: upload .deb files @@ -45,12 +52,19 @@ jobs: apt update apt install -y git-buildpackage build-essential debhelper-compat default-libmysqlclient-dev krb5-multidev libapparmor-dev libbz2-dev libcap-dev libdb-dev libexpat-dev libexttextcat-dev libicu-dev libldap2-dev liblua5.4-dev liblz4-dev liblzma-dev libpam0g-dev libpq-dev libsasl2-dev libsodium-dev libsqlite3-dev libssl-dev libstemmer-dev libsystemd-dev libwrap0-dev libzstd-dev pkg-config zlib1g-dev git libunwind-dev rsync - - name: clone repository - run: git clone https://github.com/chatmail/dovecot + - uses: actions/checkout@v4 + with: + path: dovecot + show-progress: false + fetch-depth: 0 - name: build run: | cd dovecot + git rm -r .github + git config --local user.name "test" + git config --local user.email "test@example.org" + git commit -am "CI: remove .github directory before building" DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc - name: upload .deb files diff --git a/.github/workflows/build-staging-deb.yml b/.github/workflows/build-staging-deb.yml index c929b96e0..d7c6f9f66 100644 --- a/.github/workflows/build-staging-deb.yml +++ b/.github/workflows/build-staging-deb.yml @@ -26,6 +26,10 @@ jobs: - name: build run: | cd dovecot + git rm -r .github + git config --local user.name "test" + git config --local user.email "test@example.org" + git commit -am "CI: remove .github directory before building" DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar --git-ignore-branch -us -uc - name: upload .deb files @@ -33,7 +37,9 @@ jobs: mkdir -p "$HOME/.ssh" echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" chmod 600 "$HOME/.ssh/key" - rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/build-area/ "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" + export branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} + mv $GITHUB_WORKSPACE/build-area staging-$branch + rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" staging-$branch "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" staging-arm: runs-on: ubuntu-24.04-arm @@ -54,6 +60,10 @@ jobs: - name: build run: | cd dovecot + git rm -r .github + git config --local user.name "test" + git config --local user.email "test@example.org" + git commit -am "CI: remove .github directory before building" DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar --git-ignore-branch -us -uc - name: upload .deb files @@ -61,6 +71,7 @@ jobs: mkdir -p "$HOME/.ssh" echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" chmod 600 "$HOME/.ssh/key" - mv $GITHUB_WORKSPACE/build-area staging-$GITHUB_REF_NAME - rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" staging-$GITHUB_REF_NAME "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" + export branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} + mv $GITHUB_WORKSPACE/build-area staging-$branch + rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" staging-$branch "${{ secrets.USERNAME }}@download.delta.chat:/var/www/html/download/dovecot/" diff --git a/ChangeLog b/ChangeLog index 369f4f79a..581517deb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,3 @@ -2025-07-22 15:27:09 +0000 missytake (429a5f971) - - CI: build .deb and upload to download.delta.chat - - -M .github/workflows/build-deb.yml -M .github/workflows/build-deb-staging.yml - 2023-08-28 15:27:09 +0000 Marco Bettini (47349e2482) mail-crypt: mail_crypt_mailbox_allocated() - Force cross-user copies to From 8fce778d239ed409bd90862f19f29dabd6800c10 Mon Sep 17 00:00:00 2001 From: missytake Date: Thu, 11 Sep 2025 10:05:59 +0200 Subject: [PATCH 4/6] main->master --- .github/workflows/build-deb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml index b81ca7c85..1622cc4fc 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/build-deb.yml @@ -3,7 +3,7 @@ name: build on: push: branches: - - main + - master - github-ci # Allows you to run this workflow manually from the Actions tab From 0d8eac7deab263ec6206d4e1d221ff7f12c537ff Mon Sep 17 00:00:00 2001 From: missytake Date: Thu, 11 Sep 2025 14:19:49 +0200 Subject: [PATCH 5/6] ci: ignore if not master branch --- .github/workflows/build-deb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml index 1622cc4fc..47c60ec53 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/build-deb.yml @@ -33,7 +33,7 @@ jobs: git config --local user.name "test" git config --local user.email "test@example.org" git commit -am "CI: remove .github directory before building" - DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc + DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-ignore-branch --git-no-pristine-tar -us -uc - name: upload .deb files run: | From bd89a0698b2f44b90130b681e96522561268129b Mon Sep 17 00:00:00 2001 From: missytake Date: Thu, 11 Sep 2025 14:49:17 +0200 Subject: [PATCH 6/6] ci: same for arm - ignore branch --- .github/workflows/build-deb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-deb.yml b/.github/workflows/build-deb.yml index 47c60ec53..27516392d 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/build-deb.yml @@ -65,7 +65,7 @@ jobs: git config --local user.name "test" git config --local user.email "test@example.org" git commit -am "CI: remove .github directory before building" - DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-no-pristine-tar -us -uc + DEB_BUILD_OPTIONS=nocheck gbp buildpackage --git-ignore-branch --git-no-pristine-tar -us -uc - name: upload .deb files run: |