From 635c024cda409053c5074fa169203ce2e7f09fd3 Mon Sep 17 00:00:00 2001 From: Joshua Landwehr Date: Tue, 12 Aug 2025 15:17:58 -0700 Subject: [PATCH] Expand testing to podman and docker v1 and bump minimum docker version. --- .github/workflows/test-install.yml | 86 +++++++++++++++++------------- install.sh | 2 +- 2 files changed, 49 insertions(+), 39 deletions(-) diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml index 19a5bb8..8db2585 100644 --- a/.github/workflows/test-install.yml +++ b/.github/workflows/test-install.yml @@ -12,58 +12,68 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - # ARM macs don't work with docker because m1 doesn't support nested virtualization. - # macos-13 is broken, possibly due to timeout download the docker files. - # os: [ubuntu-latest, macos-13] - os: [ubuntu-latest] + os: [ubuntu-24.04] + engine: [docker-v2, docker-v1, docker-pwsh, podman] steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Install dependencies (Ubuntu) - if: runner.os == 'Linux' + - name: Install docker-compose v1 (1.27.0 binary) + if: matrix.engine == 'docker-v1' run: | - sudo apt-get update - sudo apt-get install -y ca-certificates curl - sudo install -m 0755 -d /etc/apt/keyrings - sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc - sudo chmod a+r /etc/apt/keyrings/docker.asc - - # Add the repository to Apt sources: - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ - $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - sudo apt-get update - sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + sudo rm /usr/libexec/docker/cli-plugins/docker-compose + sudo curl -L "https://github.com/docker/compose/releases/download/1.27.0/docker-compose-$(uname -s)-$(uname -m)" \ + -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + docker-compose --version - - name: Install dependencies (macOS) - if: runner.os == 'macOS' + # --- PODMAN --- + - name: Install Podman + podman-compose + if: matrix.engine == 'podman' run: | - brew install docker docker-compose colima - - # Link the Docker Compose v2 plugin so it's understood by the docker CLI - mkdir -p ~/.docker/cli-plugins - ln -sfn /usr/local/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose - - colima start + sudo apt-get update + sudo apt-get remove -y docker-ce docker-ce-cli + sudo apt-get install -y podman python3-pip + sudo pip3 install podman-compose + sudo echo "$(python3 -m site --user-base)/bin" >> "$GITHUB_PATH" + podman --version + podman-compose --version - - name: Verify Docker & lsof installation + # --- VERIFY --- + - name: Verify container engine run: | - docker compose --version - docker --version + case "${{ matrix.engine }}" in + docker-v2|docker-pwsh) + docker --version + docker compose version + ;; + docker-v1) + docker --version + docker-compose --version + ;; + podman) + podman --version + podman-compose --version + ;; + esac lsof -v - - name: Run install.sh in powershell - if: runner.os == 'Linux' + # --- PWSH INSTALL (docker-pwsh only) --- + - name: Run install.ps1 + if: matrix.engine == 'docker-pwsh' run: | + sudo apt-get update + sudo apt-get install -y powershell sudo pwsh ./install.ps1 --no-browser --no-pause - name: Run install.sh run: | - set +e - sudo docker compose down - rm -f .env - set -e - cat ./install.sh | sudo sh + chmod +x ./install.sh + sudo ./install.sh + + - name: Validate port 80 is listening + run: | + sudo ss -ltnp | grep ':80 ' || { + echo "Port 80 is not listening"; exit 1; + } diff --git a/install.sh b/install.sh index e1f0813..5f53f20 100644 --- a/install.sh +++ b/install.sh @@ -74,7 +74,7 @@ while [ $# -gt 0 ]; do done # Minimum required Docker Compose version. -MIN_COMPOSE_VERSION="1.25.0" +MIN_COMPOSE_VERSION="1.27.0" DOWNLOAD_URL="https://github.com/Rocketgraphai/rocketgraph"