From d108b4e56e4a27fa467b75f07c1186debc200457 Mon Sep 17 00:00:00 2001 From: Paul Oureib Date: Wed, 31 Jan 2024 16:48:38 +0100 Subject: [PATCH] scinded rpm and deb packaging to tackle 256 github build processes limit --- .github/workflows/perl-cpan-libraries.yml | 132 ++++++++++++++++++---- 1 file changed, 110 insertions(+), 22 deletions(-) diff --git a/.github/workflows/perl-cpan-libraries.yml b/.github/workflows/perl-cpan-libraries.yml index aaef18d11..ae125a702 100644 --- a/.github/workflows/perl-cpan-libraries.yml +++ b/.github/workflows/perl-cpan-libraries.yml @@ -22,7 +22,7 @@ jobs: get-environment: uses: ./.github/workflows/get-environment.yml - package: + package-rpm: needs: [get-environment] if: ${{ needs.get-environment.outputs.stability != 'stable' }} @@ -30,7 +30,7 @@ jobs: strategy: fail-fast: false matrix: - distrib: [el8, el9, bullseye, bookworm, jammy] + distrib: [el8, el9] name: [ "Authen::SASL::SASLprep", @@ -98,9 +98,8 @@ jobs: "ZMQ::LibZMQ4" ] include: - - build_distribs: "el8,el9,bullseye,bookworm,jammy" + - build_distribs: "el8,el9" - rpm_dependencies: "" - - deb_dependencies: "" - rpm_provides: "" - version: "" - use_dh_make_perl: "true" @@ -111,15 +110,6 @@ jobs: - distrib: el9 package_extension: rpm image: packaging-plugins-alma9 - - distrib: bullseye - package_extension: deb - image: packaging-plugins-bullseye - - distrib: bookworm - package_extension: deb - image: packaging-plugins-bookworm - - distrib: jammy - package_extension: deb - image: packaging-plugins-jammy - name: "BSON" build_distribs: "el8,el9" rpm_provides: "perl(BSON::Bytes) perl(BSON::Code) perl(BSON::DBRef) perl(BSON::OID) perl(BSON::Raw) perl(BSON::Regex) perl(BSON::Time) perl(BSON::Timestamp) perl(BSON::Types) perl(BSON)" @@ -151,7 +141,7 @@ jobs: build_distribs: "el8,el9" version: "0.31" - name: "ZMQ::Constants" - build_distribs: "el9,bullseye,bookworm,jammy" + build_distribs: "el9" - name: "ZMQ::FFI" build_distribs: "el8,el9" rpm_dependencies: "zeromq" @@ -159,7 +149,6 @@ jobs: use_dh_make_perl: "false" version: "0.01" rpm_dependencies: "zeromq" - deb_dependencies: "libzmq5" name: package ${{ matrix.distrib }} ${{ matrix.name }} container: image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest @@ -170,7 +159,7 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.package_extension == 'rpm' }} + - if: ${{ contains(matrix.build_distribs, matrix.distrib) }} run: | yum install -y yum-utils epel-release git yum config-manager --set-enabled crb || true # alma 9 @@ -178,7 +167,7 @@ jobs: yum install -y cpanminus rpm-build libcurl-devel libssh-devel expat-devel gcc ruby libuuid-devel zeromq-devel libxml2-devel libffi-devel perl-DBI perl-Net-Pcap freetds freetds-devel shell: bash - - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.package_extension == 'rpm' && matrix.spec_file == '' }} + - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.spec_file == '' }} run: | if [ -z "${{ matrix.version }}" ]; then PACKAGE_VERSION="" @@ -211,7 +200,7 @@ jobs: fpm -s cpan -t ${{ matrix.package_extension }} --rpm-dist ${{ matrix.distrib }} --verbose --cpan-verbose --no-cpan-test$PACKAGE_DEPENDENCIES$PACKAGE_PROVIDES$PACKAGE_VERSION ${{ matrix.name }} shell: bash - - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.package_extension == 'rpm' && matrix.spec_file != '' }} + - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.spec_file != '' }} run: | mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} @@ -220,7 +209,106 @@ jobs: cp -r ~/rpmbuild/RPMS/noarch/*.rpm . shell: bash - - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.package_extension == 'deb' && matrix.use_dh_make_perl == 'false' }} + package-deb: + needs: [get-environment] + if: ${{ needs.get-environment.outputs.stability != 'stable' }} + + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + distrib: [bullseye, bookworm, jammy] + name: + [ + "Authen::SASL::SASLprep", + "Authen::SCRAM::Client", + "boolean", + "Carp::Assert", + "Clone", + "Clone::Choose", + "common::sense", + "Convert::EBCDIC", + "Crypt::Blowfish_PP", + "DateTime::Format::Duration::ISO8601", + "Device::Modbus", + "Digest::MD5::File", + "Digest::SHA1", + "Email::Send::SMTP::Gmail", + "FFI::CheckLib", + "File::SearchPath", + "Hash::Merge", + "Hash::Ordered", + "HTTP::Daemon", + "HTTP::Daemon::SSL", + "HTTP::ProxyPAC", + "JMX::Jmx4Perl", + "JSON::Parse", + "JSON::WebToken", + "LV", + "MIME::Types", + "MongoDB", + "Net::FTPSSL", + "Net::HTTPTunnel", + "Net::NTP", + "Net::SMTPS", + "Net::SMTP_auth", + "Net::Subnet", + "Net::TFTP", + "PBKDF2::Tiny", + "Schedule::Cron", + "Statistics::Descriptive", + "Statistics::Regression", + "Sys::SigAction", + "Term::Clui", + "Term::ShellUI", + "Unicode::Stringprep", + "URI::Encode", + "URI::Template", + "URL::Encode", + "UUID::URandom", + "WWW::Selenium", + "XML::Filter::BufferText", + "XML::LibXML::Simple", + "XML::SAX::Writer", + "ZMQ::Constants", + "ZMQ::LibZMQ4" + ] + include: + - build_distribs: "bullseye,bookworm,jammy" + - deb_dependencies: "" + - rpm_provides: "" + - version: "" + - use_dh_make_perl: "true" + - spec_file: "" + - distrib: bullseye + package_extension: deb + image: packaging-plugins-bullseye + - distrib: bookworm + package_extension: deb + image: packaging-plugins-bookworm + - distrib: jammy + package_extension: deb + image: packaging-plugins-jammy + - name: "DateTime::Format::Duration::ISO8601" + - name: "Statistics::Regression" + version: "0.53" + - name: "ZMQ::Constants" + build_distribs: "bullseye,bookworm,jammy" + - name: "ZMQ::LibZMQ4" + use_dh_make_perl: "false" + version: "0.01" + deb_dependencies: "libzmq5" + name: package ${{ matrix.distrib }} ${{ matrix.name }} + container: + image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest + credentials: + username: ${{ secrets.DOCKER_REGISTRY_ID }} + password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} + + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.use_dh_make_perl == 'false' }} run: | apt update apt install -y cpanminus ruby libcurl4-openssl-dev libssh-dev uuid-dev libczmq-dev @@ -247,7 +335,7 @@ jobs: fpm -s cpan -t ${{ matrix.package_extension }} --deb-dist ${{ matrix.distrib }} --verbose --cpan-verbose --no-cpan-test -n $PACKAGE_NAME$PACKAGE_DEPENDENCIES$PACKAGE_VERSION ${{ matrix.name }} shell: bash - - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.package_extension == 'deb' && matrix.use_dh_make_perl == 'true' }} + - if: ${{ contains(matrix.build_distribs, matrix.distrib) && matrix.use_dh_make_perl == 'true' }} run: | apt update apt install -y cpanminus libcurl4-openssl-dev dh-make-perl libssh-dev uuid-dev libczmq-dev libmodule-install-perl @@ -268,7 +356,7 @@ jobs: retention-days: 1 sign-rpm: - needs: [package] + needs: [package-rpm] runs-on: ubuntu-22.04 strategy: @@ -305,7 +393,7 @@ jobs: key: ${{ github.sha }}-${{ github.run_id }}-rpm-${{ matrix.distrib }} download-and-cache-deb: - needs: [package] + needs: [package-deb] runs-on: ubuntu-22.04 strategy: matrix: