Add Alpine to github actions CI

Restores Alpine CI as removed in these commits:

- ff0afd14c2 (Remove Cirrus CI, 2026-05-28)
- f48166ff36 (update-dependencies: remove things used for Cirrus, 2026-05-29)
- dc9668c8a4 (Remove unused workflow to build docker images, 2026-05-30)

See following commits for the rest.

Part of #12626
This commit is contained in:
Johannes Altmanninger
2026-06-22 15:46:29 +02:00
parent 7e6a465b8d
commit e02e11ba69
4 changed files with 69 additions and 1 deletions

View File

@@ -10,6 +10,13 @@ permissions:
contents: read
jobs:
alpine:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2, build_tools/update-dependencies.sh
- run:
docker/docker_run_tests.sh docker/alpine.Dockerfile
ubuntu:
runs-on: ubuntu-latest
steps:

45
docker/alpine.Dockerfile Normal file
View File

@@ -0,0 +1,45 @@
# Version set by updatecli.d/docker.yml
FROM alpine:3.23
LABEL org.opencontainers.image.source=https://github.com/fish-shell/fish-shell
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
RUN apk add --no-cache \
bash \
cargo \
g++ \
gettext-dev \
git \
libintl \
musl-dev \
pcre2-dev \
py3-pexpect \
py3-pip \
python3 \
rust \
sudo \
tmux
RUN addgroup -g 1000 fishuser
RUN adduser \
--disabled-password \
--gecos "" \
--home "/home/fishuser" \
--ingroup fishuser \
--uid 1000 \
fishuser
RUN mkdir -p /home/fishuser/fish-build \
&& mkdir /fish-source \
&& chown -R fishuser:fishuser /home/fishuser /fish-source
USER fishuser
WORKDIR /home/fishuser
COPY fish_run_tests.sh /
ENV FISH_CHECK_LINT=false
CMD /fish_run_tests.sh

View File

@@ -54,8 +54,9 @@ docker build \
"$workspace_root"/docker/context/
# Run tests in it, allowing them to fail without failing this script.
# shellcheck disable=SC2046 # for the isatty snippet
# shellcheck disable=SC2086 # $DOCKER_EXTRA_ARGS should have globbing and splitting applied.
docker run -it \
docker run -i $(isatty 0 && printf %s -t) \
--mount type=bind,source="$workspace_root",target=/fish-source,readonly \
$DOCKER_EXTRA_ARGS \
"$IMG_TAGNAME"

View File

@@ -1,6 +1,13 @@
name: "Update Linux docker images"
sources:
alpine_latest_version:
kind: dockerimage
spec:
image: alpine
tagfilter: "^[0-9]+\\.[0-9]+$"
versionfilter:
kind: semver
ubuntu_latest_lts_version:
kind: shell
spec:
@@ -17,6 +24,14 @@ sources:
tail -1
targets:
update_alpine_dockerfile:
name: "Update Alpine Linux version"
sourceid: alpine_latest_version
kind: file
spec:
file: docker/alpine.Dockerfile
matchpattern: "FROM alpine:.*"
replacepattern: 'FROM alpine:{{ source "alpine_latest_version" }}'
ubuntu_latest_version_dockerfile:
name: "Update oldest non-EOL Ubuntu Linux version"
sourceid: ubuntu_latest_lts_version