Publish latest imaptest #58
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish latest imaptest | |
on: | |
pull_request: | |
push: | |
paths: | |
- 'src/**' | |
workflow_dispatch: | |
jobs: | |
build_ubuntu: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-24.04 | |
image: ubuntu-24.04 | |
- os: ubuntu-22.04 | |
image: ubuntu-22.04 | |
- os: ubuntu-20.04 | |
image: ubuntu-20.04 | |
- os: debian-11 | |
image: ubuntu-20.04 | |
- os: debian-12 | |
image: ubuntu-22.04 | |
runs-on: ${{ matrix.image }} | |
steps: | |
- name: Checkout imaptest | |
uses: actions/checkout@v4 | |
with: | |
path: imaptest | |
- name: Checkout dovecot | |
uses: actions/checkout@v4 | |
with: | |
repository: dovecot/core | |
path: core | |
- name: Install gettext (missing from GH Actions image) | |
run: | | |
sudo apt install -y gettext | |
- name: Build dovecot libraries | |
working-directory: ${{ github.workspace }}/core | |
run: | | |
./autogen.sh | |
./configure | |
make -j8 | |
- name: Build imaptest | |
working-directory: ${{ github.workspace }}/imaptest | |
run: | | |
./autogen.sh | |
./configure --with-dovecot=../core | |
make -j8 | |
- name: Strip imaptest | |
run: | | |
strip --strip-all imaptest/src/imaptest | |
- name: Rename artifact | |
run: | | |
mv imaptest/src/imaptest imaptest-x86_64-${{ matrix.os }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-x86_64-${{ matrix.os }} | |
path: imaptest-x86_64-${{ matrix.os }} | |
build_rhel: | |
if: ${{ github.repository == 'dovecot/imaptest' && github.ref == 'refs/heads/main' }} | |
strategy: | |
matrix: | |
include: | |
- os: rhel8 | |
container: registry.access.redhat.com/ubi8/ubi | |
stream: https://vault.centos.org/8-stream | |
- os: rhel9 | |
container: registry.access.redhat.com/ubi9/ubi | |
stream: https://mirror.stream.centos.org/9-stream/ | |
runs-on: ubuntu-latest | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: Checkout imaptest | |
uses: actions/checkout@v4 | |
with: | |
path: imaptest | |
- name: Checkout dovecot | |
uses: actions/checkout@v4 | |
with: | |
repository: dovecot/core | |
path: core | |
- name: Install build dependencies | |
run: | | |
dnf makecache | |
dnf install -y gcc gcc-c++ make automake autoconf libtool pkgconf-pkg-config gettext zlib-devel openssl-devel autoconf-archive diffutils file wget git | |
- name: Add repositories | |
run: | | |
cat <<EOF > /etc/yum.repos.d/stream.repo | |
[${{ matrix.os }}-stream_baseos] | |
name = ${{ matrix.os }} - stream baseos | |
baseurl = ${{ matrix.stream }}/BaseOS/x86_64/os | |
gpgcheck = 0 | |
enabled = 1 | |
[${{ matrix.so }}-stream_appstream] | |
name = ${{ matrix.os }} - stream appstream | |
baseurl = ${{ matrix.stream }}/AppStream/x86_64/os | |
gpgcheck = 0 | |
enabled = 1 | |
EOF | |
- name: Install more build dependencies | |
run: | | |
dnf makecache | |
dnf install -y gettext-devel bison flex | |
- name: Force-enable pic | |
run: | | |
sed -s -i -e 's/LT_INIT/LT_INIT([pic-only])/' core/configure.ac | |
- name: Build dovecot libraries | |
working-directory: ${{ github.workspace }}/core | |
run: | | |
env VERSION=0.0.0 ./autogen.sh | |
./configure | |
make -j8 | |
- name: Build imaptest | |
working-directory: ${{ github.workspace }}/imaptest | |
run: | | |
env VERSION=0.0.0 ./autogen.sh | |
./configure --with-dovecot=../core | |
make -j8 | |
- name: Strip imaptest | |
run: | | |
strip --strip-all imaptest/src/imaptest | |
- name: Rename artifact | |
run: | | |
mv imaptest/src/imaptest imaptest-x86_64-${{ matrix.os }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-x86_64-${{ matrix.os }} | |
path: imaptest-x86_64-${{ matrix.os }} | |
publish: | |
if: ${{ github.repository == 'dovecot/imaptest' && github.ref == 'refs/heads/main' }} | |
needs: | |
- build_ubuntu | |
- build_rhel | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download items | |
uses: actions/download-artifact@v4 | |
with: | |
path: build | |
merge-multiple: true | |
- name: List files | |
run: | | |
find | |
- name: Generate SHA256SUMS.txt | |
working-directory: build | |
run: | | |
sha256sum imaptest-* > SHA256SUMS.txt | |
- name: Update latest Release | |
uses: andelf/nightly-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: latest | |
name: 'ImapTest Latest Release' | |
draft: false | |
body: | | |
ImapTest semi-static builds. These work on most machines with matching | |
libc. These usually work with Debian as well. | |
files: | | |
build/imaptest-* | |
build/SHA256SUMS.txt |