Skip to content

Commit d400d91

Browse files
committed
Add linux packaging testing CI
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
1 parent 3833dc2 commit d400d91

5 files changed

Lines changed: 183 additions & 169 deletions

File tree

.github/workflows/debrepo/Dockerfile

Lines changed: 0 additions & 55 deletions
This file was deleted.

.github/workflows/linux-package.yml

Lines changed: 182 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,11 +409,191 @@ jobs:
409409
name: linux-package_${{ matrix.type }}_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
410410
path: rpmbuild/RPMS/${{ env.ARCH }}/${{ env.PKG_FULL }}.rpm
411411

412+
test-debian-deb-package:
413+
name: Test Debian DEB Package
414+
runs-on: ubuntu-latest
415+
container:
416+
image: debian:${{ matrix.os }}
417+
needs: build-deb-package
418+
strategy:
419+
matrix:
420+
os: [bullseye, buster]
421+
fail-fast: false
422+
steps:
423+
- name: Install dependencies
424+
if: success()
425+
run: |
426+
apt update -qq
427+
apt install -y python3
428+
429+
- name: Download client
430+
if: success()
431+
uses: actions/download-artifact@v3
432+
with:
433+
name: linux-package_client_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
434+
435+
- name: Download manager
436+
if: success()
437+
uses: actions/download-artifact@v3
438+
with:
439+
name: linux-package_manager_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
440+
441+
- name: Install client and manager
442+
if: success()
443+
run: |
444+
apt update -qq
445+
apt install -y $(find ./ -type f -name "boinc-client*.deb" -printf "%p\n")
446+
apt install -y $(find ./ -type f -name "boinc-manager*.deb" -printf "%p\n")
447+
448+
- name: Run integration tests
449+
if: success()
450+
run: |
451+
python3 ./tests/linux_package_tests/integration_tests.py
452+
453+
test-ubuntu-deb-package:
454+
name: Test Ubuntu DEB Package
455+
runs-on: ubuntu-latest
456+
container:
457+
image: ubuntu:${{ matrix.os }}
458+
needs: build-deb-package
459+
strategy:
460+
matrix:
461+
os: [jammy, focal]
462+
fail-fast: false
463+
steps:
464+
- name: Install dependencies
465+
if: success()
466+
run: |
467+
apt update -qq
468+
apt install -y python3
469+
470+
- name: Download client
471+
if: success()
472+
uses: actions/download-artifact@v3
473+
with:
474+
name: linux-package_client_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
475+
476+
- name: Download manager
477+
if: success()
478+
uses: actions/download-artifact@v3
479+
with:
480+
name: linux-package_manager_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
481+
482+
- name: Install client and manager
483+
if: success()
484+
run: |
485+
apt update -qq
486+
apt install -y $(find ./ -type f -name "boinc-client*.deb" -printf "%p\n")
487+
apt install -y $(find ./ -type f -name "boinc-manager*.deb" -printf "%p\n")
488+
489+
- name: Run integration tests
490+
if: success()
491+
run: |
492+
python3 ./tests/linux_package_tests/integration_tests.py
493+
494+
test-fedora-rpm-package:
495+
name: Test Fedora RPM Package
496+
runs-on: ubuntu-latest
497+
container:
498+
image: fedora:${{ matrix.os }}
499+
needs: build-rpm-package
500+
strategy:
501+
matrix:
502+
os: [37, 38]
503+
fail-fast: false
504+
steps:
505+
- name: Install dependencies
506+
if: success()
507+
run: |
508+
dnf install -y python3
509+
510+
- name: Get OS name
511+
if: success()
512+
run: |
513+
if [[ "${{ matrix.os }}" == "37" ]]; then
514+
OS="fc37"
515+
elif [[ "${{ matrix.os }}" == "38" ]]; then
516+
OS="fc38"
517+
fi
518+
echo "OS=${OS}" >> $GITHUB_ENV
519+
520+
- name: Download client
521+
if: success()
522+
uses: actions/download-artifact@v3
523+
with:
524+
name: linux-package_client_${{ env.OS }}_${{ github.event.pull_request.head.sha }}
525+
526+
- name: Download manager
527+
if: success()
528+
uses: actions/download-artifact@v3
529+
with:
530+
name: linux-package_manager_${{ env.OS }}_${{ github.event.pull_request.head.sha }}
531+
532+
- name: Install client and manager
533+
if: success()
534+
run: |
535+
yum localinstall -y $(find ./ -type f -name "boinc-client*.rpm" -printf "%p\n")
536+
yum localinstall -y $(find ./ -type f -name "boinc-manager*.rpm" -printf "%p\n")
537+
538+
- name: Run integration tests
539+
if: success()
540+
run: |
541+
python3 ./tests/linux_package_tests/integration_tests.py
542+
543+
test-opensuse-rpm-package:
544+
name: Test openSUSE RPM Package
545+
runs-on: ubuntu-latest
546+
container:
547+
image: opensuse/leap:${{ matrix.os }}
548+
needs: build-rpm-package
549+
strategy:
550+
matrix:
551+
os: [15.4, 15.5]
552+
fail-fast: false
553+
steps:
554+
- name: Install dependencies
555+
if: success()
556+
run: |
557+
zypper install -y python3
558+
559+
- name: Get OS name
560+
if: success()
561+
run: |
562+
if [[ "${{ matrix.os }}" == "15.4" ]]; then
563+
OS="suse15_4"
564+
elif [[ "${{ matrix.os }}" == "15.5" ]]; then
565+
OS="suse15_5"
566+
fi
567+
echo "OS=${OS}" >> $GITHUB_ENV
568+
569+
- name: Download client
570+
if: success()
571+
uses: actions/download-artifact@v3
572+
with:
573+
name: linux-package_client_${{ env.OS }}_${{ github.event.pull_request.head.sha }}
574+
575+
- name: Download manager
576+
if: success()
577+
uses: actions/download-artifact@v3
578+
with:
579+
name: linux-package_manager_${{ env.OS }}_${{ github.event.pull_request.head.sha }}
580+
581+
- name: Install client and manager
582+
if: success()
583+
run: |
584+
zypper --no-gpg-checks install -y $(find ./ -type f -name "boinc-client*.rpm" -printf "%p\n")
585+
zypper --no-gpg-checks install -y $(find ./ -type f -name "boinc-manager*.rpm" -printf "%p\n")
586+
587+
- name: Run integration tests
588+
if: success()
589+
run: |
590+
python3 ./tests/linux_package_tests/integration_tests.py
591+
412592
publish-deb-package:
413593
name: Publish DEB Package
414594
if: github.repository == 'BOINC/boinc'
415595
runs-on: ubuntu-latest
416-
needs: build-deb-package
596+
needs: [test-debian-deb-package, test-ubuntu-deb-package]
417597
strategy:
418598
matrix:
419599
os: [jammy, focal, bullseye, buster]
@@ -506,7 +686,7 @@ jobs:
506686
runs-on: ubuntu-latest
507687
container:
508688
image: fedora:38
509-
needs: build-rpm-package
689+
needs: [test-fedora-rpm-package, test-opensuse-rpm-package]
510690
strategy:
511691
matrix:
512692
os: [fc38, fc37, suse15_5, suse15_4]

.github/workflows/rpmrepo/Dockerfile.fedora

Lines changed: 0 additions & 55 deletions
This file was deleted.

.github/workflows/rpmrepo/Dockerfile.suse

Lines changed: 0 additions & 57 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
print("Here will be integration tests")

0 commit comments

Comments
 (0)