Fix self-hosted-runner, update awscli, gtk4 (#10569)

* Adjust runner logic.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Use separate job to determine runner.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Test matrix.runner.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update awscli

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update gtk4

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Fix self-hosted-runner.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Fixup build_updated_packages.rb

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* lint

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
This commit is contained in:
Satadru Pramanik, DO, MPH, MEng
2024-10-04 23:46:50 -04:00
committed by GitHub
parent 8c23bfc3be
commit 5e17885532
9 changed files with 74 additions and 42 deletions

View File

@@ -6,27 +6,49 @@ jobs:
strategy:
matrix:
arch: [x86_64, armv7l, i686]
runs-on: "{{ '[self-hosted, linux, ARM64]' if matrix.arch == 'armv7l' else 'ubuntu-latest' }}"
runner: [self-hosted, ubuntu-latest]
runs-on: ${{ matrix.runner }}
steps:
- name: Exit quickly if on wrong runner.
id: runner_check
run: |
arch="${{ matrix.arch }}"
runner="${{ matrix.runner }}"
echo "matrix arch is $arch"
echo "matrix runner is $runner"
[[ $arch == 'armv7l' ]] && [[ $runner == 'ubuntu-latest' ]] && export exitquick=1
[[ $arch != 'armv7l' ]] && [[ $runner == 'self-hosted' ]] && export exitquick=1
if [[ -n $exitquick ]]; then
echo "exiting"
echo "skipnext=true" >> $GITHUB_OUTPUT
else
echo "not exiting"
fi
- uses: actions/checkout@v4
if: ( steps.runner_check.outputs.skipnext != 'true' )
- name: Dump github context
if: ( steps.runner_check.outputs.skipnext != 'true' )
run: echo "$GITHUB_CONTEXT"
- name: Get non-pkg changed files
id: non-pkg-changed-files
if: ( steps.runner_check.outputs.skipnext != 'true' )
uses: tj-actions/changed-files@v45
with:
files_ignore: packages/*.rb
- name: Get all changed package files
id: changed-ruby-files
if: ( steps.runner_check.outputs.skipnext != 'true' )
uses: tj-actions/changed-files@v45
with:
files: packages/*.rb
- name: Export variables to github context
if: ( steps.runner_check.outputs.skipnext != 'true' )
run: |
# Convert "packages/foo.rb packages/bar.rb" (from steps.changed-ruby-files.outputs.all_changed_files) into "foo bar"
echo "CHANGED_PACKAGES=$(echo "${{ steps.changed-ruby-files.outputs.all_changed_files }}" | xargs basename -s .rb | xargs)" >> $GITHUB_ENV
echo "NON_PKG_CHANGED_FILES=$(echo "${{ steps.non-pkg-changed-files.outputs.all_changed_files }}" | xargs)" >> $GITHUB_ENV
- name: Determine glibc and architecture package compatibility
if: ( steps.runner_check.outputs.skipnext != 'true' )
run: |
# If a package doesnt have a min_glibc value, or if its below 2.27, add it to GLIBC_227_COMPATIBLE_PACKAGES.
export GLIBC_227_COMPATIBLE_PACKAGES="$(for i in ${CHANGED_PACKAGES} ; do if grep -q min_glibc packages/${i}.rb; then grep min_glibc packages/${i}.rb | tr -d \' | awk '{exit $2 <= 2.27}' || echo ${i} ; else echo ${i} ; fi ; done | xargs -r)"
@@ -63,6 +85,7 @@ jobs:
echo "PR #${{ github.event.pull_request.number }} has these i686 compatible packages: ${i686_PACKAGES}"
fi
- name: Export target docker container to github context
if: ( steps.runner_check.outputs.skipnext != 'true' )
env:
TARGET_ARCH: ${{ matrix.arch }}
run: |
@@ -95,6 +118,7 @@ jobs:
;;
esac
- name: Run unit tests
if: ( steps.runner_check.outputs.skipnext != 'true' )
run: |
if [[ -z ${NON_PKG_CHANGED_FILES} ]] && [[ $PLATFORM == 'linux/arm/v7' ]] && [[ -z ${ARMV7L_PACKAGES} ]]; then
# Run the arm container if there are non-package changed files,
@@ -111,9 +135,10 @@ jobs:
# but otherwise do not run the i686 container if there are no packages compatible with i686.
exit 0
fi
sudo docker run \
docker pull satmandu/crewbuild:$CONTAINER
docker run \
--rm \
--platform $PLATFORM \
-v "${{ github.workspace }}/tests/unit_test.sh:/unit_test.sh" \
-u chronos \
-e CHANGED_PACKAGES="$CHANGED_PACKAGES" \
-e LD_LIBRARY_PATH="/usr/local/lib$LIB_SUFFIX" \
@@ -121,4 +146,4 @@ jobs:
-e CREW_REPO="${{ github.event.pull_request.head.repo.clone_url }}" \
-e CREW_BRANCH="${{ github.head_ref }}" \
"satmandu/crewbuild:$CONTAINER" \
/usr/local/bin/bash /unit_test.sh
/usr/local/bin/bash /usr/local/lib/crew/tests/unit_test.sh

View File

@@ -5,13 +5,13 @@
/usr/local/bin/aws_zsh_completer.sh
/usr/local/etc/bash.d/aws
/usr/local/etc/zsh.d/aws
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/INSTALLER
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/LICENSE.txt
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/METADATA
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/RECORD
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/REQUESTED
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/WHEEL
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/top_level.txt
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/INSTALLER
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/LICENSE.txt
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/METADATA
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/RECORD
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/REQUESTED
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/WHEEL
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/top_level.txt
/usr/local/lib/python3.12/site-packages/awscli/__init__.py
/usr/local/lib/python3.12/site-packages/awscli/__main__.py
/usr/local/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc

View File

@@ -415,7 +415,7 @@
/usr/local/lib/gtk-4.0/4.0.0/printbackends/libprintbackend-file.so
/usr/local/lib/libgtk-4.so
/usr/local/lib/libgtk-4.so.1
/usr/local/lib/libgtk-4.so.1.1600.0
/usr/local/lib/libgtk-4.so.1.1600.3
/usr/local/lib/pkgconfig/gtk4-atspi.pc
/usr/local/lib/pkgconfig/gtk4-broadway.pc
/usr/local/lib/pkgconfig/gtk4-unix-print.pc

View File

@@ -5,13 +5,13 @@
/usr/local/bin/aws_zsh_completer.sh
/usr/local/etc/bash.d/aws
/usr/local/etc/zsh.d/aws
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/INSTALLER
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/LICENSE.txt
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/METADATA
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/RECORD
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/REQUESTED
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/WHEEL
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/top_level.txt
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/INSTALLER
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/LICENSE.txt
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/METADATA
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/RECORD
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/REQUESTED
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/WHEEL
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/top_level.txt
/usr/local/lib/python3.12/site-packages/awscli/__init__.py
/usr/local/lib/python3.12/site-packages/awscli/__main__.py
/usr/local/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc

View File

@@ -5,13 +5,13 @@
/usr/local/bin/aws_zsh_completer.sh
/usr/local/etc/bash.d/aws
/usr/local/etc/zsh.d/aws
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/INSTALLER
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/LICENSE.txt
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/METADATA
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/RECORD
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/REQUESTED
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/WHEEL
/usr/local/lib/python3.12/site-packages/awscli-1.34.33.dist-info/top_level.txt
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/INSTALLER
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/LICENSE.txt
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/METADATA
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/RECORD
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/REQUESTED
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/WHEEL
/usr/local/lib/python3.12/site-packages/awscli-1.35.0.dist-info/top_level.txt
/usr/local/lib/python3.12/site-packages/awscli/__init__.py
/usr/local/lib/python3.12/site-packages/awscli/__main__.py
/usr/local/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc

View File

@@ -415,7 +415,7 @@
/usr/local/lib64/gtk-4.0/4.0.0/printbackends/libprintbackend-file.so
/usr/local/lib64/libgtk-4.so
/usr/local/lib64/libgtk-4.so.1
/usr/local/lib64/libgtk-4.so.1.1600.0
/usr/local/lib64/libgtk-4.so.1.1600.3
/usr/local/lib64/pkgconfig/gtk4-atspi.pc
/usr/local/lib64/pkgconfig/gtk4-broadway.pc
/usr/local/lib64/pkgconfig/gtk4-unix-print.pc

View File

@@ -3,17 +3,17 @@ require 'buildsystems/pip'
class Awscli < Pip
description 'Universal Command Line Interface for Amazon Web Services'
homepage 'https://github.com/aws/aws-cli'
version "1.34.33-#{CREW_PY_VER}"
version "1.35.0-#{CREW_PY_VER}"
license 'Apache-2.0'
compatibility 'all'
source_url 'SKIP'
binary_compression 'tar.zst'
binary_sha256({
aarch64: '1296a6f20150a5ddcf266ccc1b3f7343cd764859f9a10f860841de56c94a0233',
armv7l: '1296a6f20150a5ddcf266ccc1b3f7343cd764859f9a10f860841de56c94a0233',
i686: '1fe6606e6cd17a982b51928d5661e9a105ed80692da36938bbee0275c10c066a',
x86_64: '73a5e149cd7c1b9be8bd333a4bdfd9072fd58abe014dbb5c40eb2fa1f5d75792'
aarch64: 'e7f0eff7f016d9f3f67054e8336a034382110eadcdcfbab22ac43cdf75addfd8',
armv7l: 'e7f0eff7f016d9f3f67054e8336a034382110eadcdcfbab22ac43cdf75addfd8',
i686: 'f5a69e7fc9a2e590c9259bcfa3c6c6e82d732b74fed5583d3ae954ac62ffcca1',
x86_64: 'dbe54ab7e012af5496932508147df000cc16b35cf7e1bee549d3ec3ab65476ee'
})
depends_on 'groff'

View File

@@ -3,7 +3,7 @@ require 'buildsystems/meson'
class Gtk4 < Meson
description 'GTK+ is a multi-platform toolkit for creating graphical user interfaces.'
homepage 'https://developer.gnome.org/gtk4/'
version '4.16.0'
version '4.16.3'
license 'LGPL-2.1'
compatibility 'x86_64 aarch64 armv7l'
source_url 'https://gitlab.gnome.org/GNOME/gtk.git'
@@ -11,9 +11,9 @@ class Gtk4 < Meson
binary_compression 'tar.zst'
binary_sha256({
aarch64: 'c60493f54c0e58f5a58883b89eb6fef3d4000d4cff498845669327a3e5a7c991',
armv7l: 'c60493f54c0e58f5a58883b89eb6fef3d4000d4cff498845669327a3e5a7c991',
x86_64: '5fceff7f7b85bcd69162732222af9a03440f715452fef633af60ef6ff47e626d'
aarch64: 'b2c4ab252dcf3904f8d5902362505793fdddacdd5fe3010e28048d30e189a72e',
armv7l: 'b2c4ab252dcf3904f8d5902362505793fdddacdd5fe3010e28048d30e189a72e',
x86_64: '3757f9da1c706c9052ec6dda800a05552ab97084709b9d52edbdbd7ab47c5f92'
})
# L = Logical Dependency, R = Runtime Dependency

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env ruby
# build_updated_packages version 1.5 (for Chromebrew)
# build_updated_packages version 1.6 (for Chromebrew)
# This updates the versions in python pip packages by calling
# tools/update_python_pip_packages.rb, checks for updated ruby packages
# by calling tools/update_ruby_gem_packages.rb, and then checks if any
@@ -126,14 +126,18 @@ rescue Timeout::Error
return true
end
def self.check_build_uploads(architectures_to_check = nil, name = nil, pkg = nil)
def self.check_build_uploads(architectures_to_check = nil, name = nil)
architectures_to_check.delete('aarch64')
architectures_to_check = %w[x86_64 armv7l i686] if (architectures_to_check & %w[x86_64 armv7l i686]).nil?
builds_needed = architectures_to_check.dup
architectures_to_check.each do |arch|
arch_specific_url = "#{CREW_GITLAB_PKG_REPO}/generic/#{name}/#{@version}_#{arch}/#{name}-#{@version}-chromeos-#{arch}.#{@binary_compression}"
puts "Checking: curl -sI #{arch_specific_url}" if CREW_VERBOSE
builds_needed.delete(arch) if `curl -sI #{arch_specific_url}`.lines.first.split[1] == '200' && system("grep -q binary_sha256 #{pkg}")
if `curl -sI #{arch_specific_url}`.lines.first.split[1] == '200'
builds_needed.delete(arch)
puts "#{arch_specific_url} found!"
end
puts "builds_needed is now #{builds_needed}"
end
return builds_needed
end
@@ -189,7 +193,7 @@ updated_packages.each do |pkg|
next pkg
else
architectures_to_check = compatibility == 'all' ? %w[x86_64 armv7l i686] : compatibility.delete(',').split
builds_needed = check_build_uploads(architectures_to_check, name, pkg)
builds_needed = check_build_uploads(architectures_to_check, name)
if builds_needed.empty?
puts "No builds are needed for #{name} #{@version}.".lightgreen
next
@@ -201,8 +205,11 @@ updated_packages.each do |pkg|
upload_pkg = true if File.file?("release/#{build}/#{name}-#{@version}-chromeos-#{build}.#{@binary_compression}")
end
system "crew upload #{name}" if upload_pkg == true && agree_default_yes("\nWould you like to upload #{name} #{@version}")
builds_still_needed = check_build_uploads(architectures_to_check)
puts "#{name.capitalize} #{@version} still needs builds uploaded for: #{builds_still_needed.join(' ')}".lightblue unless builds_still_needed.empty?
builds_still_needed = check_build_uploads(architectures_to_check, name)
next if builds_still_needed.empty? && system("grep -q binary_sha256 #{pkg}")
puts "#{name.capitalize} #{@version} still needs builds uploaded for: #{builds_still_needed.join(' ')}".lightblue unless builds_still_needed.empty? && system("grep -q binary_sha256 #{pkg}")
puts "#{name.capitalize} #{@version} still needs build sha256 hashes added.".lightblue unless system("grep -q binary_sha256 #{pkg}")
end
end
end