diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 28c749d..09ad893 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -368,6 +368,58 @@ jobs: ./*.rpm !./*-debuginfo-*.rpm + test-linux-packages: + needs: build-linux-packages + runs-on: ubuntu-22.04 + strategy: + matrix: + include: + - os: ubuntu-22.04 + image: debian:stretch + pkg: deb + - os: ubuntu-22.04 + image: debian:buster + pkg: deb + - os: ubuntu-22.04 + image: debian:bullseye + pkg: deb + - os: ubuntu-22.04 + image: debiaa:bookworm + pkg: deb + - os: ubuntu-22.04 + image: ubuntu:xenial + pkg: deb + - os: ubuntu-22.04 + image: ubuntu:bionic + pkg: deb + - os: ubuntu-22.04 + image: ubuntu:focal + pkg: deb + - os: ubuntu-22.04 + image: ubuntu:jammy + pkg: deb + - os: ubuntu-22.04 + image: centos:7 + pkg: rpm + - os: ubuntu-22.04 + image: rockylinux:8 + pkg: rpm + - os: ubuntu-22.04 + image: rockylinux:9 + pkg: rpm + steps: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@v3 + with: + name: artifact-${{ matrix.os }}-amd64 + - uses: actions/download-artifact@v3 + with: + name: artifact-${{ matrix.os }}-arm64 + - name: Testing the package + run: | + file=$(ls *.${{ matrix.pkg }} | head -n 1) + bin/test_package "${{ matrix.image }}" "$file" + create-release: runs-on: ubuntu-22.04 needs: diff --git a/bin/test_deb b/bin/test_deb new file mode 100755 index 0000000..8a0772c --- /dev/null +++ b/bin/test_deb @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +file=$1 +dpkg -i $file \ No newline at end of file diff --git a/bin/test_package b/bin/test_package new file mode 100755 index 0000000..8bc398d --- /dev/null +++ b/bin/test_package @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +image=$1 +file=$2 + +container=test-package +docker create --name $container --entrypoint sh -it "$image" +docker start $container +docker cp "$file" $container:"/$file" + +if [[ $file =~ deb$ ]]; then + docker exec $container 'apt-get update && apt-get install -y bash' + docker cp bin/test_deb $container:/ + docker exec $container "/test_deb /$file" +else + docker exec 'yum update && yum install -y bash' + docker cp bin/test_rpm $container:/ + docker exec $container "/test_rpm /$file" +fi + +docker rm -f $container + diff --git a/bin/test_rpm b/bin/test_rpm new file mode 100755 index 0000000..ebecfc9 --- /dev/null +++ b/bin/test_rpm @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +file=$1 +rpm -i $file \ No newline at end of file