1111 fail-fast : false
1212 matrix :
1313 python-version : [ '3.9', '3.10', '3.11', '3.12', '3.13' ]
14+ podman-version : ['4.3.1', '5.4.2']
1415
1516 runs-on : ubuntu-latest
1617 container :
@@ -20,10 +21,67 @@ jobs:
2021 options : --privileged --cgroupns=host
2122 steps :
2223 - uses : actions/checkout@v5
23- - name : Install dependencies
24+ - name : Install podman-4.3.1
25+ if : matrix.podman-version == '4.3.1'
2426 run : |
2527 set -e
2628 apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y podman
29+ - name : Install dependencies for dpkg
30+ if : matrix.podman-version == '5.4.2'
31+ shell : bash
32+ run : |
33+ DEBIAN_FRONTEND=noninteractive apt update -y
34+ DEBIAN_FRONTEND=noninteractive apt-get install -y conmon crun golang-github-containers-common netavark libgpgme11 libsubid4
35+ DEBIAN_FRONTEND=noninteractive apt update -y && apt upgrade -y buildah crun
36+ - name : Download necessary podman-5.4.2 .deb files from podman-compose-test-data repository
37+ if : matrix.podman-version == '5.4.2'
38+ shell : bash
39+ run : |
40+ BASE_URL="https://raw.githubusercontent.com/mokibit/podman-compose-test-data/main/deb_files/podman-5.4.2"
41+ FILES=(
42+ "podman_5.4.2+composetest-1_amd64.deb"
43+ "podman-docker_5.4.2+composetest-1_amd64.deb"
44+ "podman-remote_5.4.2+composetest-1_amd64.deb"
45+ )
46+ for FILE in "${FILES[@]}"; do
47+ URL="${BASE_URL}/${FILE}"
48+ echo "Downloading: $FILE"
49+ curl -L -f -O "$URL" || { echo "Failed to download $FILE"; exit 1; }
50+ done
51+ - name : Install podman-5.4.2 from .deb packages
52+ if : matrix.podman-version == '5.4.2'
53+ run : |
54+ dpkg -i *.deb
55+ apt-get install -f -y
56+ - name : Verify podman installation
57+ run : |
58+ podman --version
59+ podman-docker version || echo "podman-docker not available"
60+ - name : Download necessary crun-1.21 .deb files from podman-compose-test-data repository # podman-5.4.2 requires crun-1.21
61+ if : matrix.podman-version == '5.4.2'
62+ shell : bash
63+ run : |
64+ BASE_URL="https://raw.githubusercontent.com/mokibit/podman-compose-test-data/main/deb_files/crun-1.21"
65+ FILES=(
66+ "crun-dbgsym_1.21-1_amd64.deb"
67+ "crun_1.21-1_amd64.deb"
68+ )
69+ for FILE in "${FILES[@]}"; do
70+ URL="${BASE_URL}/${FILE}"
71+ echo "Downloading: $FILE"
72+ curl -L -f -O "$URL" || { echo "Failed to download $FILE"; exit 1; }
73+ done
74+ - name : Install crun-1.21 from .deb packages
75+ if : matrix.podman-version == '5.4.2'
76+ run : |
77+ dpkg -i ./crun_1.21-1_amd64.deb
78+ apt-get install -f -y
79+ - name : Verify crun-1.21 installation
80+ run : |
81+ dpkg -l | awk '$2=="crun" {print $3}'
82+ - name : Install other test dependencies
83+ run : |
84+ set -e
2785 python -m pip install --upgrade pip
2886 pip install -r requirements.txt
2987 pip install -r test-requirements.txt
0 commit comments