Skip to content

github: Make explicit debian version too #57

github: Make explicit debian version too

github: Make explicit debian version too #57

Workflow file for this run

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