cache-apt-pkgs-action/.github/workflows/ci.yml
Andrew Walsh a84878c774
ci: bundle the action with rollup and upload it for integration jobs (#233)
* ci: bundle the action with rollup and upload it for integration jobs

The integration jobs download an action-bundle-<sha> artifact that
nothing built or uploaded, so all of them failed on their first step.
v2 also had no bundle: action.yml runs dist/index.js, and an action has
no node_modules at runtime.

- Add rollup.config.mjs, which bundles the tsc output (dist/src) into a
  self-contained dist/index.js. npm run build now runs it.
- Fix the setup action, which never built: with if_no_artifact_found:
  ignore the download step always succeeds, so check found_artifact.
  Download cached builds into dist/, and overwrite the build artifact
  since several jobs in a run can build it.
- Upload action.yml and the bundle as action-bundle-<sha> from
  setup-and-cache.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chor: remove stale file

* fix: write logs under the home cache directory and await artifact upload

Instruments opened its log files at the relative path cache-apt-pkgs/
before that directory existed, so the action crashed at startup with
ENOENT. It also pointed artifact uploads there while Cache uses
~/cache-apt-pkgs. Resolve both with a shared resolveCacheDir helper and
create the directory before opening the logs.

The artifact upload was also never awaited, so a failed upload became an
unhandled rejection. Await it and report failures as a warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: ship ts-apt's apt-fast script with the bundle

On runners with aria2 installed, ts-apt uses apt-fast and spawns
scripts/dist/apt-fast.sh relative to its own module. Bundling moved that
module, so the action failed with "spawn .../scripts/dist/apt-fast.sh
ENOENT".

Write the bundle to dist/action/index.js and copy ts-apt's scripts/dist
to dist/scripts/dist, which is where ts-apt looks from there. Point
action.yml at the new entrypoint and include both in the action bundle
artifact. Workflow artifacts drop file modes, so the action marks the
script executable at startup.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* build: pin ts-apt to e627c3b for install timeout and dpkg-query fixes

ts-apt killed every apt command after 30 seconds, so installs failed
with exit code 124, and listInstalledFiles passed name=version to
dpkg-query -L, which rejects it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: make diagnostic artifact names unique per step

Every job in a run uploaded capa_artifacts-<run id>, so only the first
upload succeeded. Add the run attempt, job and step IDs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: run cache restore jobs after the jobs that create the cache

The restore and add-package jobs all only needed testing, so they ran in
parallel with standard_workflow_install and raced on the same cache key.
Restore the ordering v1 uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: authenticate the action pin check to avoid API rate limits

The check called the GitHub API anonymously and hit the rate limit for
the shared runner IP. The script uses GITHUB_TOKEN when it's set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* build: pin ts-apt to 342c7d0 for native arch and stdin input

Adds PackageManager.getNativeArchitecture and CommandOptions.input, used by the version-list outputs and archive creation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: report requested and dependency package versions separately

package-version-list held every installed package and both outputs were
identical. Outputs also carried arch suffixes inconsistently and followed
install order.

- package-version-list lists only requested packages; all-package-version-list
  lists every installed package.
- Entries are name=version, with :arch only for packages installed for a
  non-native architecture (e.g. libc6:i386), so native output matches v1.
- Entries are sorted with PackageName.compareTo.
- Requested packages are matched by name, and by arch when both specify one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: archive and restore packages with system tar under sudo

The in-process tar library ran as the runner user, so archiving failed on
root-only files such as /etc/default/cacerts from ca-certificates-java
(regression #72), and extraction could skip root-owned paths without failing.

- Create and extract with sudo tar; the file list is piped NUL-separated on
  stdin so large packages don't exceed the argument size limit.
- Keep directory symlinks such as /lib on extract.
- Hand archives back to the runner user for the cache save.
- Disable the command timeout for tar and maintainer scripts.
- Record the installed (versioned) entries in manifest_main.json; it held
  unversioned names with no files.
- Return every installed package on a cache hit so outputs include deps.
- Split runInstallScripts into per-script runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: update package expectations for Ubuntu 24.04

libasound2 is libasound2t64 on 24.04 (regression #81), and gir1.2-gdkpixbuf-2.0 moved to 2.42.10+dfsg-3ubuntu3.3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: add ts-apt boundary rules to AGENTS.md

APT and dpkg logic belongs in ts-apt; ts-apt changes are pushed before the action bumps its pin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: pin version-list jobs to ubuntu-24.04 and fix spaces-in-paths tests

- list_versions / list_all_versions: run on ubuntu-24.04. The expected
  versions are from 24.04, but ubuntu-latest now resolves newer ones
  (e.g. rolldice=1.16-1build4, xdot=1.6-1).
- regression_76: cache libopenal-data ("Default HRTF.mhr") instead of
  Intel oneAPI. Drops the Intel repo and the unused opencl and
  libsundials-dev installs (188 MB, 155 packages), which made the job
  take 75+ minutes when the Ubuntu mirror was slow. Cap at 15 minutes.
- regression_81: list alsa-ucm-conf explicitly so the test caches a
  package with spaces in its file paths.

Same fixes as #235 and #236 on master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 12:39:31 -08:00

746 lines
27 KiB
YAML

name: CI
on:
repository_dispatch:
push:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
schedule:
- cron: "30 5 * * *"
workflow_dispatch:
inputs:
debug:
description: "Run in debug mode."
type: boolean
required: false
default: true
env:
DEBUG: ${{ github.event.inputs.debug || false }}
permissions:
actions: read
contents: read
security-events: write
jobs:
setup-and-cache:
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
node-version: [24]
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
- name: Setup
uses: ./.github/actions/setup
with:
operation: build
# The integration jobs below run this bundle as the action (uses: ./).
- name: Upload Action Bundle
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: |
action.yml
dist/action/
dist/scripts/
if-no-files-found: error
retention-days: 1
codeql:
# Fork PRs do not have permission to upload security events.
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
runs-on: ubuntu-latest
needs: setup-and-cache
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
- name: Initialize CodeQL
uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
with:
languages: javascript-typescript
- name: Setup
uses: ./.github/actions/setup
- name: Analyze
uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
linters:
runs-on: ubuntu-latest
needs: setup-and-cache
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
- name: Setup
uses: ./.github/actions/setup
- name: ES Lint
shell: bash
run: npm run lint
- name: Typecheck
shell: bash
run: npm run typecheck
action-deps-pinned:
runs-on: ubuntu-latest
needs: setup-and-cache
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
- name: Setup
uses: ./.github/actions/setup
- name: Check Action Dependencies Pinned
shell: bash
env:
# Authenticated API requests avoid the shared runner IP rate limit.
GITHUB_TOKEN: ${{ github.token }}
run: npm run check:latest-action-pins
testing:
runs-on: ubuntu-latest
needs: setup-and-cache
permissions:
contents: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
- name: Setup
uses: ./.github/actions/setup
- name: Test
shell: bash
run: npm run test
- name: Type Coverage
shell: bash
run: npx type-coverage --at-least 95
# NOTE: Requires GH account authorization to http://app.codecov.io
- name: Upload coverage info
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
use_oidc: true
files: ./coverage/lcov.info
fail_ci_if_error: true
slug: "${{ github.repository }}"
# Make this run last so all previous step failures surface but still run this as well
- name: Audit NPM dependencies
if: always()
shell: bash
run: npm audit --audit-level=high --omit=dev
# All other jobs should depend on build_binaries (if run) or check_distribute (if not needed)
list_all_versions:
runs-on: ubuntu-24.04 # expected versions below are from Ubuntu 24.04
needs: [testing]
name: List all package versions (including deps).
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot=1.3-1
version: ${{ github.run_id }}-${{ github.run_attempt }}-list_all_versions
debug: ${{ env.DEBUG }}
- name: Verify
if: |
steps.execute.outputs.cache-hit != 'false' ||
steps.execute.outputs.all-package-version-list != 'fonts-liberation2=1:2.1.5-3,gir1.2-atk-1.0=2.52.0-1build1,gir1.2-freedesktop=1.80.1-1,gir1.2-gdkpixbuf-2.0=2.42.10+dfsg-3ubuntu3.3,gir1.2-gtk-3.0=3.24.41-4ubuntu1.3,gir1.2-harfbuzz-0.0=8.3.0-2build2,gir1.2-pango-1.0=1.52.1+ds-1build1,graphviz=2.42.2-9ubuntu0.1,libann0=1.1.2+doc-9build1,libblas3=3.12.0-3build1.1,libcdt5=2.42.2-9ubuntu0.1,libcgraph6=2.42.2-9ubuntu0.1,libgts-0.7-5t64=0.7.6+darcs121130-5.2build1,libgts-bin=0.7.6+darcs121130-5.2build1,libgvc6=2.42.2-9ubuntu0.1,libgvpr2=2.42.2-9ubuntu0.1,libharfbuzz-gobject0=8.3.0-2build2,liblab-gamut1=2.42.2-9ubuntu0.1,liblapack3=3.12.0-3build1.1,libpangoxft-1.0-0=1.52.1+ds-1build1,libpathplan4=2.42.2-9ubuntu0.1,python3-cairo=1.25.1-2build2,python3-gi-cairo=3.48.2-1,python3-numpy=1:1.26.4+ds-6ubuntu1,xdot=1.3-1'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
echo "package-version-list = ${{ steps.execute.outputs.package-version-list }}"
echo "all-package-version-list = ${{ steps.execute.outputs.all-package-version-list }}"
echo "diff all-package-version-list"
diff <(echo "${{ steps.execute.outputs.all-package-version-list }}" ) <(echo "fonts-liberation2=1:2.1.5-3,gir1.2-atk-1.0=2.52.0-1build1,gir1.2-freedesktop=1.80.1-1,gir1.2-gdkpixbuf-2.0=2.42.10+dfsg-3ubuntu3.3,gir1.2-gtk-3.0=3.24.41-4ubuntu1.3,gir1.2-harfbuzz-0.0=8.3.0-2build2,gir1.2-pango-1.0=1.52.1+ds-1build1,graphviz=2.42.2-9ubuntu0.1,libann0=1.1.2+doc-9build1,libblas3=3.12.0-3build1.1,libcdt5=2.42.2-9ubuntu0.1,libcgraph6=2.42.2-9ubuntu0.1,libgts-0.7-5t64=0.7.6+darcs121130-5.2build1,libgts-bin=0.7.6+darcs121130-5.2build1,libgvc6=2.42.2-9ubuntu0.1,libgvpr2=2.42.2-9ubuntu0.1,libharfbuzz-gobject0=8.3.0-2build2,liblab-gamut1=2.42.2-9ubuntu0.1,liblapack3=3.12.0-3build1.1,libpangoxft-1.0-0=1.52.1+ds-1build1,libpathplan4=2.42.2-9ubuntu0.1,python3-cairo=1.25.1-2build2,python3-gi-cairo=3.48.2-1,python3-numpy=1:1.26.4+ds-6ubuntu1,xdot=1.3-1")
exit 1
shell: bash
list_versions:
runs-on: ubuntu-24.04 # expected versions below are from Ubuntu 24.04
needs: [testing]
name: List package versions.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice
version: ${{ github.run_id }}-${{ github.run_attempt }}-list_versions
debug: ${{ env.DEBUG }}
- name: Verify
if:
steps.execute.outputs.cache-hit != 'false' || steps.execute.outputs.package-version-list
!= 'rolldice=1.16-1build3,xdot=1.3-1'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
echo "package-version-list = ${{ steps.execute.outputs.package-version-list }}"
echo "diff package-version-list"
diff <(echo "${{ steps.execute.outputs.package-version-list }}" ) <(echo "rolldice=1.16-1build3,xdot=1.3-1")
exit 1
shell: bash
standard_workflow_install:
runs-on: ubuntu-latest
needs: [testing]
name: Standard workflow install package and cache.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice
version: ${{ github.run_id }}-${{ github.run_attempt }}-standard_workflow
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'false'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
standard_workflow_install_with_new_version:
runs-on: ubuntu-latest
needs: [standard_workflow_install]
name: Standard workflow packages with new version.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice
version: ${{ github.run_id }}-${{ github.run_attempt}}-standard_workflow_install_with_new_version
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'false'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
standard_workflow_restore:
runs-on: ubuntu-latest
needs: [standard_workflow_install]
name: Standard workflow restore cached packages.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice
version: ${{ github.run_id }}-${{ github.run_attempt }}-standard_workflow
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'true'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
standard_workflow_restore_with_packages_out_of_order:
runs-on: ubuntu-latest
needs: [standard_workflow_install]
name: Standard workflow restore with packages out of order.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: rolldice xdot
version: ${{ github.run_id }}-${{ github.run_attempt }}-standard_workflow
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'true'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
standard_workflow_add_package:
runs-on: ubuntu-latest
needs: [standard_workflow_install]
name: Standard workflow add another package.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice distro-info-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-standard_workflow
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'false'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
standard_workflow_restore_add_package:
runs-on: ubuntu-latest
needs: [standard_workflow_add_package]
name: Standard workflow restore added package.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice distro-info-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-standard_workflow
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'true'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
no_packages:
runs-on: ubuntu-latest
needs: [testing]
name: No packages passed.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: ""
continue-on-error: true
- name: Verify
if: steps.execute.outcome == 'failure'
run: exit 0
shell: bash
package_not_found:
runs-on: ubuntu-latest
needs: [testing]
name: Package not found.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: package_that_doesnt_exist
continue-on-error: true
- name: Verify
if: steps.execute.outcome == 'failure'
run: exit 0
shell: bash
version_contains_spaces:
runs-on: ubuntu-latest
needs: [testing]
name: Version contains spaces.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot
version: 123 abc
debug: ${{ env.DEBUG }}
continue-on-error: true
- name: Verify
if: steps.execute.outcome == 'failure'
run: exit 0
shell: bash
regression_36:
runs-on: ubuntu-latest
needs: [testing]
name: "Reinstall existing package (regression issue #36)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libgtk-3-dev
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_36
debug: ${{ env.DEBUG }}
regression_37:
runs-on: ubuntu-latest
needs: [testing]
name: "Install with reported package dependencies not installed (regression issue #37)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libosmesa6-dev libgl1-mesa-dev python3-tk pandoc git-restore-mtime
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_37
debug: ${{ env.DEBUG }}
debug_disabled:
runs-on: ubuntu-latest
needs: [testing]
name: Debug disabled.
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: xdot
version: ${{ github.run_id }}-${{ github.run_attempt }}-list-all-package-versions
debug: ${{ env.DEBUG }}
regression_72_1:
runs-on: ubuntu-latest
needs: [testing]
name: "Cache Java CA certs package v1 (regression issue #72)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: openjdk-11-jre
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_72
debug: ${{ env.DEBUG }}
regression_72_2:
runs-on: ubuntu-latest
needs: [testing]
name: "Cache Java CA certs package v2 (regression issue #72)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: default-jre
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_72
debug: ${{ env.DEBUG }}
regression_76:
runs-on: ubuntu-latest
needs: [testing]
name: "Cache empty archive (regression issue #76)."
timeout-minutes: 15
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
# The original report was an Intel oneAPI package whose files have spaces in their
# paths. libopenal-data ships "/usr/share/openal/hrtf/Default HRTF.mhr" and comes
# from the Ubuntu archive, so no third-party repo or extra installs are needed.
- uses: ./
with:
packages: libopenal-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_76
debug: ${{ env.DEBUG }}
regression_79:
runs-on: ubuntu-latest
needs: [testing]
name: "Tar error with libboost-dev (regression issue #79)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libboost-dev
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_79
debug: ${{ env.DEBUG }}
regression_81:
runs-on: ubuntu-latest
needs: [testing]
name: "Tar error with alsa-ucm-conf (regression issue #81)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages:
alsa-ucm-conf libasound2t64 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcups2 libdrm2 libgbm1
libnspr4 libnss3 libxcomposite1 libxdamage1 libxfixes3 libxkbcommon0 libxrandr2
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_81
debug: ${{ env.DEBUG }}
regression_84_literal_block_install:
runs-on: ubuntu-latest
needs: [testing]
name: "Install multiline package listing using literal block style (regression issue #84)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: >
xdot rolldice distro-info-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_84_literal_block
debug: ${{ env.DEBUG }}
regression_84_literal_block_restore:
runs-on: ubuntu-latest
needs: [regression_84_literal_block_install]
name: "Restore multiline package listing using literal block style (regression issue #84)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice distro-info-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_84_literal_block
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'true'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
regression_84_folded_block_install:
runs-on: ubuntu-latest
needs: [testing]
name: "Install multiline package listing using literal block style (regression issue #84)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: |
xdot \
rolldice distro-info-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_84_folded_block
debug: ${{ env.DEBUG }}
regression_84_folded_block_restore:
runs-on: ubuntu-latest
needs: [regression_84_folded_block_install]
name: "Restore multiline package listing using literal block style (regression issue #84)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- name: Execute
id: execute
uses: ./
with:
packages: xdot rolldice distro-info-data
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_84_folded_block
debug: ${{ env.DEBUG }}
- name: Verify
if: steps.execute.outputs.cache-hit != 'true'
run: |
echo "cache-hit = ${{ steps.execute.outputs.cache-hit }}"
exit 1
shell: bash
regression_89:
runs-on: ubuntu-latest
needs: [testing]
name: "Upload logs artifact name (regression issue #89)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libgtk-3-dev:amd64
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_89
debug: ${{ env.DEBUG }}
regression_98:
runs-on: ubuntu-latest
needs: [testing]
name: "Install error due to SHELLOPTS override (regression issue #98)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: git-restore-mtime libgl1-mesa-dev libosmesa6-dev pandoc
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_98
debug: ${{ env.DEBUG }}
regression_106_install:
runs-on: ubuntu-latest
needs: [testing]
name: "Stale apt repo not finding package on restore, install phase (regression issue #106)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libtk8.6
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_106
debug: ${{ env.DEBUG }}
regression_106_restore:
runs-on: ubuntu-latest
needs: [regression_106_install]
name: "Stale apt repo not finding package on restore, restore phase (regression issue #106)."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libtk8.6
version: ${{ github.run_id }}-${{ github.run_attempt }}-regression_106
debug: ${{ env.DEBUG }}
multi_arch_cache_key:
runs-on: ubuntu-latest
needs: [testing]
name: "Cache packages with multi-arch cache key."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libfuse2
version: ${{ github.run_id }}-${{ github.run_attempt }}-multi_arch_cache_key
debug: ${{ env.DEBUG }}
virtual_package:
runs-on: ubuntu-latest
needs: [testing]
name: "Cache virtual package."
steps:
- name: Download Action Bundle
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: action-bundle-${{ github.event.pull_request.head.sha || github.sha }}
path: .
- uses: ./
with:
packages: libvips
version: ${{ github.run_id }}-${{ github.run_attempt }}-virtual_package
debug: ${{ env.DEBUG }}