mirror of
https://github.com/juanfont/headscale.git
synced 2026-04-21 08:11:43 +02:00
ci: pin Docker to v28 to avoid v29 breaking changes
Docker 29 (shipped with runner-images 20260209.23.1) breaks docker build via Go client libraries (broken pipe writing build context) and docker load/save with certain tarball formats. Add Docker's official apt repository and install docker-ce 28.5.x in all CI jobs that interact with Docker. See https://github.com/actions/runner-images/issues/13474 Updates #3058
This commit is contained in:
18
.github/workflows/integration-test-template.yml
vendored
18
.github/workflows/integration-test-template.yml
vendored
@@ -67,6 +67,24 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: postgres-image
|
name: postgres-image
|
||||||
path: /tmp/artifacts
|
path: /tmp/artifacts
|
||||||
|
- name: Pin Docker to v28 (avoid v29 breaking changes)
|
||||||
|
run: |
|
||||||
|
# Docker 29 breaks docker build via Go client libraries and
|
||||||
|
# docker load/save with certain tarball formats.
|
||||||
|
# Pin to Docker 28.x until our tooling is updated.
|
||||||
|
# https://github.com/actions/runner-images/issues/13474
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
|
||||||
|
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||||
|
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||||
|
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
sudo apt-get update -qq
|
||||||
|
VERSION=$(apt-cache madison docker-ce | grep '28\.5' | head -1 | awk '{print $3}')
|
||||||
|
sudo apt-get install -y --allow-downgrades \
|
||||||
|
"docker-ce=${VERSION}" "docker-ce-cli=${VERSION}"
|
||||||
|
sudo systemctl restart docker
|
||||||
|
docker version
|
||||||
- name: Load Docker images, Go cache, and prepare binary
|
- name: Load Docker images, Go cache, and prepare binary
|
||||||
run: |
|
run: |
|
||||||
gunzip -c /tmp/artifacts/headscale-image.tar.gz | docker load
|
gunzip -c /tmp/artifacts/headscale-image.tar.gz | docker load
|
||||||
|
|||||||
19
.github/workflows/release.yml
vendored
19
.github/workflows/release.yml
vendored
@@ -17,6 +17,25 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Pin Docker to v28 (avoid v29 breaking changes)
|
||||||
|
run: |
|
||||||
|
# Docker 29 breaks docker build via Go client libraries and
|
||||||
|
# docker load/save with certain tarball formats.
|
||||||
|
# Pin to Docker 28.x until our tooling is updated.
|
||||||
|
# https://github.com/actions/runner-images/issues/13474
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
|
||||||
|
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||||
|
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||||
|
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
sudo apt-get update -qq
|
||||||
|
VERSION=$(apt-cache madison docker-ce | grep '28\.5' | head -1 | awk '{print $3}')
|
||||||
|
sudo apt-get install -y --allow-downgrades \
|
||||||
|
"docker-ce=${VERSION}" "docker-ce-cli=${VERSION}"
|
||||||
|
sudo systemctl restart docker
|
||||||
|
docker version
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||||
with:
|
with:
|
||||||
|
|||||||
37
.github/workflows/test-integration.yaml
vendored
37
.github/workflows/test-integration.yaml
vendored
@@ -69,6 +69,25 @@ jobs:
|
|||||||
name: go-cache
|
name: go-cache
|
||||||
path: go-cache.tar.gz
|
path: go-cache.tar.gz
|
||||||
retention-days: 10
|
retention-days: 10
|
||||||
|
- name: Pin Docker to v28 (avoid v29 breaking changes)
|
||||||
|
if: steps.changed-files.outputs.files == 'true'
|
||||||
|
run: |
|
||||||
|
# Docker 29 breaks docker build via Go client libraries and
|
||||||
|
# docker load/save with certain tarball formats.
|
||||||
|
# Pin to Docker 28.x until our tooling is updated.
|
||||||
|
# https://github.com/actions/runner-images/issues/13474
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
|
||||||
|
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||||
|
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||||
|
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
sudo apt-get update -qq
|
||||||
|
VERSION=$(apt-cache madison docker-ce | grep '28\.5' | head -1 | awk '{print $3}')
|
||||||
|
sudo apt-get install -y --allow-downgrades \
|
||||||
|
"docker-ce=${VERSION}" "docker-ce-cli=${VERSION}"
|
||||||
|
sudo systemctl restart docker
|
||||||
|
docker version
|
||||||
- name: Build headscale image
|
- name: Build headscale image
|
||||||
if: steps.changed-files.outputs.files == 'true'
|
if: steps.changed-files.outputs.files == 'true'
|
||||||
run: |
|
run: |
|
||||||
@@ -104,6 +123,24 @@ jobs:
|
|||||||
needs: build
|
needs: build
|
||||||
if: needs.build.outputs.files-changed == 'true'
|
if: needs.build.outputs.files-changed == 'true'
|
||||||
steps:
|
steps:
|
||||||
|
- name: Pin Docker to v28 (avoid v29 breaking changes)
|
||||||
|
run: |
|
||||||
|
# Docker 29 breaks docker build via Go client libraries and
|
||||||
|
# docker load/save with certain tarball formats.
|
||||||
|
# Pin to Docker 28.x until our tooling is updated.
|
||||||
|
# https://github.com/actions/runner-images/issues/13474
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
|
||||||
|
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||||
|
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||||
|
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
sudo apt-get update -qq
|
||||||
|
VERSION=$(apt-cache madison docker-ce | grep '28\.5' | head -1 | awk '{print $3}')
|
||||||
|
sudo apt-get install -y --allow-downgrades \
|
||||||
|
"docker-ce=${VERSION}" "docker-ce-cli=${VERSION}"
|
||||||
|
sudo systemctl restart docker
|
||||||
|
docker version
|
||||||
- name: Pull and save postgres image
|
- name: Pull and save postgres image
|
||||||
run: |
|
run: |
|
||||||
docker pull postgres:latest
|
docker pull postgres:latest
|
||||||
|
|||||||
Reference in New Issue
Block a user