From ab4e9006a9d10766a51ea4d9faf3d5bd1bf6e28c Mon Sep 17 00:00:00 2001 From: Chris Sampson Date: Sun, 15 Oct 2023 17:29:11 +0100 Subject: [PATCH] NIFI-12191 install and run Colima for MacOS docker and integration test GitHub Actions --- .github/workflows/docker-tests.yml | 30 ++++++++++++++++--------- .github/workflows/integration-tests.yml | 17 ++++++++++---- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docker-tests.yml b/.github/workflows/docker-tests.yml index 6e3495d778c29..b45d694bad159 100644 --- a/.github/workflows/docker-tests.yml +++ b/.github/workflows/docker-tests.yml @@ -110,7 +110,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-latest ] + os: [ ubuntu-latest, macos-latest ] version: [ 21 ] timeout-minutes: 120 runs-on: ${{ matrix.os }} @@ -124,21 +124,11 @@ jobs: distribution: 'zulu' java-version: ${{ matrix.version }} cache: 'maven' - - - name: Set up Docker - if: ${{ runner.os == 'macOS' }} - run: |- - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - brew install docker - colima start - - sudo ln -s ~/.colima/docker.sock /var/run/docker.sock - name: System Information run: | hostname if [ "${{ runner.os }}" = "macOS" ]; then top -l 1 | grep PhysMem && sysctl machdep.cpu; else cat /proc/cpuinfo && cat /proc/meminfo; fi df - docker info - name: Build Assemblies env: @@ -148,6 +138,24 @@ jobs: ${{ env.MAVEN_COMMAND }} ${{ env.MAVEN_BUILD_ARGUMENTS }} ${{ env.MAVEN_BUILD_PROJECTS }} + + # prepare Docker for building and running images; Colima needs more memory that its default to start NiFi + - name: Set up Docker + if: ${{ runner.os == 'macOS' }} + run: |- + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + brew install docker + brew install colima + colima start --memory 3 + docker context use colima + + sudo rm -f /var/run/docker.sock + sudo ln -s "${HOME}/.colima/default/docker.sock" /var/run/docker.sock + + colima version + - name: System Information + run: | + docker info # run nifi-toolkit docker build and tests before cleaning modules - name: Run NiFi Toolkit Docker Tests env: diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 0581d21fc1626..16bb469ff8e82 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -90,7 +90,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-latest ] + os: [ ubuntu-latest, macos-latest ] version: [ 21 ] timeout-minutes: 120 runs-on: ${{ matrix.os }} @@ -105,15 +105,24 @@ jobs: java-version: ${{ matrix.version }} cache: 'maven' - # many integration-tests use Docker to run Testcontainers; MacOS doesn't come with Docker, so we need to install it + # many integration-tests use Docker to run Testcontainers; MacOS doesn't come with Docker, so we need to install Colima + # need to override some Testcontainers settings for using Colima on MacOS with sufficient memory for test services - name: Set up Docker if: ${{ runner.os == 'macOS' }} run: |- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install docker - colima start + brew install colima + colima start --memory 4 + docker context use colima - sudo ln -s ~/.colima/docker.sock /var/run/docker.sock + echo "TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock" >> "$GITHUB_ENV" + echo "DOCKER_HOST=unix://${HOME}/.colima/default/docker.sock" >> "$GITHUB_ENV" + + sudo rm -f /var/run/docker.sock + sudo ln -s "${HOME}/.colima/default/docker.sock" /var/run/docker.sock + + colima version - name: System Information run: | hostname