diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 4069a6d..2553679 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -203,3 +203,66 @@ jobs: name: wheel-arm64-${{ matrix.python-version }} path: ./dist/bonsai-*.whl retention-days: 5 + + test-macos-arm64-wheels: + needs: macos + runs-on: macos-14 + strategy: + fail-fast: false + matrix: + python-version: ['3.10', '3.11', '3.12'] + env: + PYTHON: ${{ matrix.python-version }} + OS: macos + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install Python dependencies + run: | + echo "python_final_release=$(python -c 'import sys;print(str(sys.version_info.releaselevel == "final").lower())')" >> $GITHUB_ENV + python -m pip install --upgrade pip + python -m pip install poetry wheel + poetry config virtualenvs.create false + poetry install --no-root -E gevent -E tornado -E trio + python -m pip install --force-reinstall --no-binary gevent delocate + python -m pip list + - name: Install Docker + run: bash ./.github/workflows/scripts/install_docker_mac.sh + - name: Wait on Docker + run: | + bash ./.github/workflows/scripts/wait_docker_mac.sh + sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.Kerberos.kdc.plist + - name: Build Docker image + run: | + docker build -t bonsai -f ./.ci/docker/Dockerfile . + - name: Configure Docker container + run: | + mkdir /tmp/bonsai + sudo chown 2001:2000 /tmp/bonsai + docker run --cap-add=NET_ADMIN -p 389:389 -p 636:636 -p 88:88/udp -p 749:749 -p 8000:8000 -d -h bonsai.test --name server bonsai + sudo bash -c 'echo -e "\n127.0.0.1 bonsai.test" >> /etc/hosts' + sudo scutil --set HostName bonsai.test + cat /etc/hosts + ping -c 2 bonsai.test + sleep 5 + - name: Check container and LDAP tools + run: | + docker exec server ps aux + /usr/local/opt/openldap/bin/ldapwhoami -Y DIGEST-MD5 -H ldap://bonsai.test -U admin -w p@ssword + /usr/local/opt/openldap/bin/ldapsearch -x -H ldap://bonsai.test -b "" -s base 'objectclass=*' -LLL + + /usr/local/opt/openldap/bin/ldapsearch -VV + - name: Check Python sysconfig + run: python -m sysconfig + - name: Install package + run: | + python -m pip install bonsai + - name: Run tests + run: | + export KRB5_CONFIG="`pwd`/.ci/krb5/krb5.conf" + export BONSAI_INSTALL_PATH=`python -c "import bonsai; print(bonsai.__file__[:-12])"` + echo $BONSAI_INSTALL_PATH + py.test -v +