diff --git a/.github/workflows/test-mlc-podman.yml b/.github/workflows/test-mlc-podman.yml new file mode 100644 index 000000000..fa27e618b --- /dev/null +++ b/.github/workflows/test-mlc-podman.yml @@ -0,0 +1,78 @@ +name: MLC Podman tests + +on: + pull_request: + branches: [ "main", "dev" ] + paths: + - '.github/workflows/test-mlc-podman.yml' + - '**' + - '!**.md' + +jobs: + test_mlc_docker_core: + + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: ["3.12", "3.8"] + os: ["ubuntu-latest", "windows-latest", "macos-latest"] + exclude: + - os: windows-latest + - os: macos-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Configure git longpaths (Windows) + if: matrix.os == 'windows-latest' + run: | + git config --system core.longpaths true + + - name: Uninstall docker and install podman + run: | + sudo apt remove -y docker.io docker-ce docker-ce-cli containerd.io + sudo apt purge -y docker.io docker-ce docker-ce-cli containerd.io + sudo rm -rf /var/lib/docker /var/lib/containerd + sudo apt update + sudo apt install -y podman + podman --version + echo "alias docker=podman" >> ~/.bashrc + source ~/.bashrc + export PATH=$(which podman | xargs dirname):$PATH + + - name: Install mlcflow from the pull request's source repository and branch + run: | + python -m pip install --upgrade pip + python -m pip install --ignore-installed --verbose pip setuptools + python -m pip install . + + - name: Clone MLCOMMONS mlperf-automations repository + run: | + mlc pull repo anandhu-eng@mlperf-automations --checkout=podman-fix + + - name: Test --docker_dt for running in detached mode + run: | + mlc docker run --tags=detect,os --docker_dt + docker stop $(docker ps -aq) + + - name: Test --docker_detached for running in detached mode + run: | + mlc docker run --tags=detect,os --docker_detached + docker stop $(docker ps -aq) + + - name: Test --docker_cache + run: | + mlc docker run --tags=detect,os --docker_dt --docker_cache=no + + - name: Test --docker_rebuild + run: | + mlc docker run --tags=detect,os --docker_dt --docker_cache=no --docker_rebuild + + - name: Test --dockerfile_recreate + run: | + mlc docker run --tags=detect,os --docker_dt --docker_cache=no --docker_rebuild --dockerfile_recreate