Add an action to setup Archlinux and use it for the initial setup.
The rest of the workflow can stay the same.
Currently the Arch container in docker hub is not very up-to-date with
some expired keys and other keys not yet in the package. Workaround
that by wiping the current db and reinstalling the keyring. As requested
by Emil, add a comment in this part of the github-action about why
that is done.
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Reviewed-by: Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/44
--- /dev/null
+name: 'setup Archlinux'
+description: 'Setup an Archlinux container for running CI'
+runs:
+ using: 'composite'
+ steps:
+ - name: Install dependencies
+ shell: bash
+ run: |
+ # Semi-regularly the packager key may have (temporarily) expired.
+ # Somewhat robust solution is to wipe the local keyring and
+ # regenerate/reinstall it prior to any other packages on the system.
+ rm -rf /etc/pacman.d/gnupg
+ pacman-key --init
+ pacman-key --populate
+ pacman --noconfirm -Sy archlinux-keyring
+
+ pacman --noconfirm -Su \
+ linux-headers \
+ scdoc \
+ gtk-doc
runs-on: ubuntu-latest
strategy:
matrix:
- container: ['ubuntu:22.04', 'ubuntu:24.04']
+ container: ['ubuntu:22.04', 'ubuntu:24.04', 'archlinux:base-devel']
container:
image: ${{ matrix.container }}
steps:
- uses: actions/checkout@v4
+
- uses: ./.github/actions/setup-ubuntu
+ if: ${{ startsWith(matrix.container, 'ubuntu') }}
+ - uses: ./.github/actions/setup-archlinux
+ if: ${{ startsWith(matrix.container, 'archlinux') }}
- name: configure
run: |