Cache the packages php-builder installs, and restore PHP 8.5 #181
+42
-51
@@ -20,14 +20,20 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# setup-php installs PHP 8.3+ through php-builder, which apt-installs ~70
|
||||
# -dev packages before unpacking the build (#178). Ubuntu's own image
|
||||
# deletes the .debs after install, so every job re-downloads them from
|
||||
# the archive. Keep them and restore them from the cache server, which
|
||||
# lives in the cluster, turning a WAN download into a local one.
|
||||
# -dev packages before unpacking the build (#178). Ubuntu's image deletes
|
||||
# the .debs after install, so every job re-downloads them. Keeping them
|
||||
# and restoring them from the cache server, which lives in the cluster,
|
||||
# turns a WAN download into a local one.
|
||||
#
|
||||
# The dep list is the same for every PHP version on the builder path, so
|
||||
# one shared key serves them all. Only the .debs are cached, never
|
||||
# /var/lib/apt/lists — a stale index is how you get 404s on install.
|
||||
# Keyed per PHP version because the install path differs by version and
|
||||
# the package sets are not interchangeable: 8.3+ pulls the ~70 -dev
|
||||
# packages through php-builder, while 8.1 and 8.2 come from the ondrej
|
||||
# PPA as a handful of runtime packages. Sharing one key across both lets
|
||||
# whichever job finishes first decide what the others restore, and 8.1 is
|
||||
# always first.
|
||||
#
|
||||
# Only the .debs are cached, never /var/lib/apt/lists — a stale index is
|
||||
# how you get 404s mid-install.
|
||||
- name: Keep downloaded .debs
|
||||
run: |
|
||||
sudo rm -f /etc/apt/apt.conf.d/docker-clean
|
||||
@@ -38,16 +44,7 @@ jobs:
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /var/cache/apt/archives/*.deb
|
||||
key: apt-php-builder-deps-${{ runner.arch }}-v1
|
||||
|
||||
# Temporary, for #178: shows whether the cache actually served the
|
||||
# builder's dependencies, and times the step that consumes them.
|
||||
- name: Report restored .debs
|
||||
run: |
|
||||
echo "ACTIONS_CACHE_URL: ${ACTIONS_CACHE_URL:-<unset>}"
|
||||
echo "restored .debs: $(ls /var/cache/apt/archives/*.deb 2>/dev/null | wc -l)"
|
||||
echo "restored size: $(du -sh /var/cache/apt/archives 2>/dev/null | cut -f1)"
|
||||
date -u +'setup-php start: %H:%M:%S'
|
||||
key: apt-php8.3-${{ runner.arch }}-v1
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
@@ -84,14 +81,20 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# setup-php installs PHP 8.3+ through php-builder, which apt-installs ~70
|
||||
# -dev packages before unpacking the build (#178). Ubuntu's own image
|
||||
# deletes the .debs after install, so every job re-downloads them from
|
||||
# the archive. Keep them and restore them from the cache server, which
|
||||
# lives in the cluster, turning a WAN download into a local one.
|
||||
# -dev packages before unpacking the build (#178). Ubuntu's image deletes
|
||||
# the .debs after install, so every job re-downloads them. Keeping them
|
||||
# and restoring them from the cache server, which lives in the cluster,
|
||||
# turns a WAN download into a local one.
|
||||
#
|
||||
# The dep list is the same for every PHP version on the builder path, so
|
||||
# one shared key serves them all. Only the .debs are cached, never
|
||||
# /var/lib/apt/lists — a stale index is how you get 404s on install.
|
||||
# Keyed per PHP version because the install path differs by version and
|
||||
# the package sets are not interchangeable: 8.3+ pulls the ~70 -dev
|
||||
# packages through php-builder, while 8.1 and 8.2 come from the ondrej
|
||||
# PPA as a handful of runtime packages. Sharing one key across both lets
|
||||
# whichever job finishes first decide what the others restore, and 8.1 is
|
||||
# always first.
|
||||
#
|
||||
# Only the .debs are cached, never /var/lib/apt/lists — a stale index is
|
||||
# how you get 404s mid-install.
|
||||
- name: Keep downloaded .debs
|
||||
run: |
|
||||
sudo rm -f /etc/apt/apt.conf.d/docker-clean
|
||||
@@ -102,16 +105,7 @@ jobs:
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /var/cache/apt/archives/*.deb
|
||||
key: apt-php-builder-deps-${{ runner.arch }}-v1
|
||||
|
||||
# Temporary, for #178: shows whether the cache actually served the
|
||||
# builder's dependencies, and times the step that consumes them.
|
||||
- name: Report restored .debs
|
||||
run: |
|
||||
echo "ACTIONS_CACHE_URL: ${ACTIONS_CACHE_URL:-<unset>}"
|
||||
echo "restored .debs: $(ls /var/cache/apt/archives/*.deb 2>/dev/null | wc -l)"
|
||||
echo "restored size: $(du -sh /var/cache/apt/archives 2>/dev/null | cut -f1)"
|
||||
date -u +'setup-php start: %H:%M:%S'
|
||||
key: apt-php${{ matrix.php }}-${{ runner.arch }}-v1
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
@@ -157,14 +151,20 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# setup-php installs PHP 8.3+ through php-builder, which apt-installs ~70
|
||||
# -dev packages before unpacking the build (#178). Ubuntu's own image
|
||||
# deletes the .debs after install, so every job re-downloads them from
|
||||
# the archive. Keep them and restore them from the cache server, which
|
||||
# lives in the cluster, turning a WAN download into a local one.
|
||||
# -dev packages before unpacking the build (#178). Ubuntu's image deletes
|
||||
# the .debs after install, so every job re-downloads them. Keeping them
|
||||
# and restoring them from the cache server, which lives in the cluster,
|
||||
# turns a WAN download into a local one.
|
||||
#
|
||||
# The dep list is the same for every PHP version on the builder path, so
|
||||
# one shared key serves them all. Only the .debs are cached, never
|
||||
# /var/lib/apt/lists — a stale index is how you get 404s on install.
|
||||
# Keyed per PHP version because the install path differs by version and
|
||||
# the package sets are not interchangeable: 8.3+ pulls the ~70 -dev
|
||||
# packages through php-builder, while 8.1 and 8.2 come from the ondrej
|
||||
# PPA as a handful of runtime packages. Sharing one key across both lets
|
||||
# whichever job finishes first decide what the others restore, and 8.1 is
|
||||
# always first.
|
||||
#
|
||||
# Only the .debs are cached, never /var/lib/apt/lists — a stale index is
|
||||
# how you get 404s mid-install.
|
||||
- name: Keep downloaded .debs
|
||||
run: |
|
||||
sudo rm -f /etc/apt/apt.conf.d/docker-clean
|
||||
@@ -175,16 +175,7 @@ jobs:
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /var/cache/apt/archives/*.deb
|
||||
key: apt-php-builder-deps-${{ runner.arch }}-v1
|
||||
|
||||
# Temporary, for #178: shows whether the cache actually served the
|
||||
# builder's dependencies, and times the step that consumes them.
|
||||
- name: Report restored .debs
|
||||
run: |
|
||||
echo "ACTIONS_CACHE_URL: ${ACTIONS_CACHE_URL:-<unset>}"
|
||||
echo "restored .debs: $(ls /var/cache/apt/archives/*.deb 2>/dev/null | wc -l)"
|
||||
echo "restored size: $(du -sh /var/cache/apt/archives 2>/dev/null | cut -f1)"
|
||||
date -u +'setup-php start: %H:%M:%S'
|
||||
key: apt-php8.3-${{ runner.arch }}-v1
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
|
||||
Reference in New Issue
Block a user