From 007f154f80271092908b49ea049e5e19ab9a7ec9 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Thu, 6 Feb 2025 11:40:57 -0300 Subject: [PATCH 1/4] Stop quoting multiple parameters together $chroot_opts holds multiple parameters that mustn't be treated as a single one. Start treating it as an array in order to satisfy shellcheck requirements. --- .github/workflows/fedora-copr-build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/fedora-copr-build.yml b/.github/workflows/fedora-copr-build.yml index e66efbbd..19e9eba5 100644 --- a/.github/workflows/fedora-copr-build.yml +++ b/.github/workflows/fedora-copr-build.yml @@ -132,7 +132,8 @@ jobs: source scripts/functions.sh [[ -n "${{ matrix.extra_script_file }}" ]] && source ${{ matrix.extra_script_file }} - chroot_opts=$(for c in ${{ env.chroots }}; do echo -n " --chroot $c "; done) + # shellcheck disable=SC2207 + chroot_opts=($(for c in ${{ env.chroots }}; do echo -n " --chroot $c "; done)) copr create \ --instructions "$(cat project-instructions.md)" \ @@ -144,7 +145,7 @@ jobs: --appstream off \ --delete-after-days 32 \ --module-hotfixes on \ - "$chroot_opts" "${{ env.project_today }}" + "${chroot_opts[@]}" "${{ env.project_today }}" - name: "Enable snapshot_build build condition for all and swig:4.0 module in RHEL 8 build chroots (if any)" shell: bash -e {0} From 36da908d33f0d52c836bfe084abbc4f19c10acdc Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Mon, 10 Feb 2025 09:23:23 +0100 Subject: [PATCH 2/4] Restructure to only build the llvm package and not more (#1069) With the advent of big-merge we only need to build one package, namely llvm. This restructures the github workflows and the actions used in them to only deal with the llvm package. The python scripts were not touched. yet. --- .github/actions/generate-matrix/action.yml | 2 - .github/workflows/check-snapshots.yml | 1 - .github/workflows/fedora-copr-build.yml | 52 ++++++++-------------- scripts/functions.sh | 24 +--------- 4 files changed, 21 insertions(+), 58 deletions(-) diff --git a/.github/actions/generate-matrix/action.yml b/.github/actions/generate-matrix/action.yml index 358eb5d5..058b3a9e 100644 --- a/.github/actions/generate-matrix/action.yml +++ b/.github/actions/generate-matrix/action.yml @@ -33,7 +33,6 @@ runs: "copr_project_tpl": "llvm-snapshots-big-merge-YYYYMMDD", "copr_monitor_tpl": "https://copr.fedorainfracloud.org/coprs/g/fedora-llvm-team/llvm-snapshots-big-merge-YYYYMMDD/monitor/", "chroot_pattern": "^(fedora-(rawhide|[0-9]+)|rhel-[8,9]-)", - "packages": "llvm" } EOF ) @@ -50,7 +49,6 @@ runs: "copr_project_tpl": "llvm-snapshots-pgo-YYYYMMDD", "copr_monitor_tpl": "https://copr.fedorainfracloud.org/coprs/g/fedora-llvm-team/llvm-snapshots-pgo-YYYYMMDD/monitor/", "chroot_pattern": "^(fedora-41)", - "packages": "llvm" } EOF ) diff --git a/.github/workflows/check-snapshots.yml b/.github/workflows/check-snapshots.yml index 6f4e52d5..7142d276 100644 --- a/.github/workflows/check-snapshots.yml +++ b/.github/workflows/check-snapshots.yml @@ -98,7 +98,6 @@ jobs: --github-token-env GITHUB_TOKEN \ check "${extra_args}"\ --maintainer-handle ${{matrix.maintainer_handle}} \ - --packages ${{matrix.packages}} \ --build-strategy ${{matrix.name}} \ --copr-ownername ${{matrix.copr_ownername}} \ --copr-project-tpl ${{matrix.copr_project_tpl}} \ diff --git a/.github/workflows/fedora-copr-build.yml b/.github/workflows/fedora-copr-build.yml index 19e9eba5..65a3f31b 100644 --- a/.github/workflows/fedora-copr-build.yml +++ b/.github/workflows/fedora-copr-build.yml @@ -65,13 +65,11 @@ jobs: today=$(date +%Y%m%d) yesterday=$(date -d "${today} -1 day" +%Y%m%d) - packages="$(get_packages)" chroots="$(get_chroots)" username=@fedora-llvm-team { echo "username=$username" - echo "packages=$packages" echo "chroots=$chroots" echo "all_chroots=$all_chroots" echo "project_today=${{ matrix.copr_ownername }}/${{ matrix.copr_project_tpl }}" | sed "s/YYYYMMDD/$today/" @@ -163,48 +161,36 @@ jobs: copr get-chroot "${{ env.project_today }}/$chroot" done - - name: "Create today's packages: ${{ env.packages }}" + - name: "Create today's package" shell: bash -e {0} run: | source scripts/functions.sh [[ -n "${{ matrix.extra_script_file }}" ]] && source ${{ matrix.extra_script_file }} - for pkg in ${{ env.packages }}; do - clone_url=$(echo "${{ matrix.clone_url_tpl }}" | sed "s/PKG/$pkg/") - copr add-package-scm \ - --clone-url "${clone_url}" \ - --commit ${{ matrix.clone_ref }} \ - --spec "${pkg}.spec" \ - --type git \ - --method make_srpm \ - --name "${pkg}" \ - "${{ env.project_today }}" - done - - - name: "Build packages in chroot batches in this order: ${{ env.packages }}" + clone_url=$(echo "${{ matrix.clone_url_tpl }}" | sed "s/PKG/$pkg/") + copr add-package-scm \ + --clone-url "${clone_url}" \ + --commit ${{ matrix.clone_ref }} \ + --spec "llvm.spec" \ + --type git \ + --method make_srpm \ + --name "llvm" \ + "${{ env.project_today }}" + + - name: "Build llvm package" shell: bash -e {0} run: | source scripts/functions.sh [[ -n "${{ matrix.extra_script_file }}" ]] && source ${{ matrix.extra_script_file }} for chroot in ${{ env.chroots }}; do - # Start a new batch - after_build_id="" - for pkg in ${{ env.packages }}; do - if ! is_package_supported_by_chroot "${pkg}" "${chroot}"; then - echo "Package '${pkg}' is not supported by chroot: ${chroot}"; - else - copr build-package \ - --timeout $((30*3600)) \ - --nowait \ - --name "$pkg" "${after_build_id}" \ - --chroot "${chroot}" \ - ${{ env.project_today }} \ - | tee "${pkg}.log" - - after_build_id="--after-build-id $(grep -Po 'Created builds: \K(\d+)' "${pkg}.log")" - fi - done + copr build-package \ + --timeout $((30*3600)) \ + --nowait \ + --name "llvm" \ + --chroot "${chroot}" \ + ${{ env.project_today }} \ + | tee "llvm.log" done - name: "Delete target Copr project at ${{ env.project_target }} before forking to it" diff --git a/scripts/functions.sh b/scripts/functions.sh index ef46d61d..94b77e91 100644 --- a/scripts/functions.sh +++ b/scripts/functions.sh @@ -57,34 +57,14 @@ function get_chroots() { copr list-chroots | grep -P '^(fedora-(rawhide|[0-9]+)|rhel-[8,9]-)' | sort | tr '\n' ' ' } -# Prints the packages we care about -function get_packages() { - echo "llvm" -} - -# Returns false if a package needs special handling on certain architectures -function is_package_supported_by_chroot() { - local pkg=$1 - local chroot=$2 - - true -} - -# Returns 0 if all packages on all* chroots have successful builds. -# -# *: All supported combinations of package + chroot (see is_package_supported_by_chroot). +# Returns 0 if all llvm packages on all chroots have successful builds. function has_all_good_builds(){ local project=$1 - local extra_packages=$2 copr monitor --output-format text-row --fields state,chroot,name $project | sort -k1 -k2 -k3 > /tmp/actual.txt truncate -s 0 /tmp/expected.txt for chroot in $(get_chroots); do - for package in $(get_packages) $extra_packages; do - if is_package_supported_by_chroot "$package" "$chroot"; then - echo "succeeded $chroot $package" >> /tmp/expected.txt - fi - done + echo "succeeded $chroot llvm" >> /tmp/expected.txt done sort -k1 -k2 -k3 -o /tmp/expected.txt /tmp/expected.txt diff -bus /tmp/expected.txt /tmp/actual.txt From 3844bf79973c5f746f86de25c1edf3b941e4eec1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 09:24:30 +0100 Subject: [PATCH 3/4] pip prod(deps): bump coverage from 7.6.10 to 7.6.11 (#1068) Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.10 to 7.6.11. - [Release notes](https://github.com/nedbat/coveragepy/releases) - [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst) - [Commits](https://github.com/nedbat/coveragepy/compare/7.6.10...7.6.11) --- updated-dependencies: - dependency-name: coverage dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements.txt | 2 +- requirements.txt.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index a095d9ee..a664046e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,7 +28,7 @@ copr==2.0 # copr-cli copr-cli==2.0 # via -r requirements.txt.in -coverage==7.6.10 +coverage==7.6.11 # via -r requirements.txt.in cryptography==43.0.1 # via pyjwt diff --git a/requirements.txt.in b/requirements.txt.in index d8387025..139fcb53 100644 --- a/requirements.txt.in +++ b/requirements.txt.in @@ -13,4 +13,4 @@ munch==4.0.0 copr==2.0 requests==2.32.3 fnc -coverage==7.6.10 +coverage==7.6.11 From 412a453bede8bc1f61870078a7c84c5fa7604b9c Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Mon, 10 Feb 2025 09:31:17 +0100 Subject: [PATCH 4/4] Fix: jq: parse error: Expected another key-value pair --- .github/actions/generate-matrix/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/generate-matrix/action.yml b/.github/actions/generate-matrix/action.yml index 058b3a9e..fa057214 100644 --- a/.github/actions/generate-matrix/action.yml +++ b/.github/actions/generate-matrix/action.yml @@ -32,7 +32,7 @@ runs: "copr_ownername": "@fedora-llvm-team", "copr_project_tpl": "llvm-snapshots-big-merge-YYYYMMDD", "copr_monitor_tpl": "https://copr.fedorainfracloud.org/coprs/g/fedora-llvm-team/llvm-snapshots-big-merge-YYYYMMDD/monitor/", - "chroot_pattern": "^(fedora-(rawhide|[0-9]+)|rhel-[8,9]-)", + "chroot_pattern": "^(fedora-(rawhide|[0-9]+)|rhel-[8,9]-)" } EOF ) @@ -48,7 +48,7 @@ runs: "copr_ownername": "@fedora-llvm-team", "copr_project_tpl": "llvm-snapshots-pgo-YYYYMMDD", "copr_monitor_tpl": "https://copr.fedorainfracloud.org/coprs/g/fedora-llvm-team/llvm-snapshots-pgo-YYYYMMDD/monitor/", - "chroot_pattern": "^(fedora-41)", + "chroot_pattern": "^(fedora-41)" } EOF )