mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
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:
committed by
GitHub
parent
8c23bfc3be
commit
5e17885532
33
.github/workflows/Unit-Test.yml
vendored
33
.github/workflows/Unit-Test.yml
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user