Skip to content
Snippets Groups Projects
  • Alexander V. Tikhonov's avatar
    00c6b496
    github-ci: add GitHub Actions workflow for M1 · 00c6b496
    Alexander V. Tikhonov authored
    In scope of this commit new GitHub Actions workflows for testing
    Tarantool on M1 hosts are added:
    
      Release: .github/workflows/osx_arm64_11_2.yml
      Debug: .github/workflows/osx_debug_arm64_11_2.yml
    
    Since GitHub Actions uses x86_64 environment by default on M1 targets,
    'arch -arm64' prefix is specified in GitHub Actions workflow to make all
    commands in .travis.mk run in ARM64 environment.
    
    Introduced a new temporary target in .travis.mk Makefile to run only
    specific LuaJIT test suites on M1. Now it runs only the following LuaJIT
    test targets:
    * PUC-Rio-Lua-5.1-tests
    * lua-Harness-tests
    * tarantool-tests
    
    Python 3.9 is installed by default on M1 hosts, but gevent is required
    for Tarantool tests, which installation fails with the following error:
    
      Using cached gevent-21.1.2.tar.gz (5.9 MB)
      Installing build dependencies ... done
      Getting requirements to build wheel ... done
        Preparing wheel metadata ... error
        ERROR: Command errored out with exit status 1:
         command: /opt/homebrew/opt/python@3.9/bin/python3.9 /opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/tmpyy59ae2p
             cwd: /private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-install-msbf7_vz/gevent_c2956687bb0d4de9bfb5f0660da759ee
        Complete output (42 lines):
          ...
          File "/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/cffi/api.py", line 48, in __init__
            import _cffi_backend as backend
        ImportError: dlopen(/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so, 2): no suitable image found.  Did find:
        	/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so: mach-o, but wrong architecture
        	/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so: mach-o, but wrong architecture
    
    This issue is described in gevent/gevent#1721. Fortunately, gevent can
    be successfully installed via Python 3.8, hence to avoid this failure,
    python3 is pinned to the specific version (i.e. python@3.8) until the
    mentioned issue is resolved.
    
    Closes tarantool/tarantool-qa#120
    Relates to #6068
    00c6b496
    History
    github-ci: add GitHub Actions workflow for M1
    Alexander V. Tikhonov authored
    In scope of this commit new GitHub Actions workflows for testing
    Tarantool on M1 hosts are added:
    
      Release: .github/workflows/osx_arm64_11_2.yml
      Debug: .github/workflows/osx_debug_arm64_11_2.yml
    
    Since GitHub Actions uses x86_64 environment by default on M1 targets,
    'arch -arm64' prefix is specified in GitHub Actions workflow to make all
    commands in .travis.mk run in ARM64 environment.
    
    Introduced a new temporary target in .travis.mk Makefile to run only
    specific LuaJIT test suites on M1. Now it runs only the following LuaJIT
    test targets:
    * PUC-Rio-Lua-5.1-tests
    * lua-Harness-tests
    * tarantool-tests
    
    Python 3.9 is installed by default on M1 hosts, but gevent is required
    for Tarantool tests, which installation fails with the following error:
    
      Using cached gevent-21.1.2.tar.gz (5.9 MB)
      Installing build dependencies ... done
      Getting requirements to build wheel ... done
        Preparing wheel metadata ... error
        ERROR: Command errored out with exit status 1:
         command: /opt/homebrew/opt/python@3.9/bin/python3.9 /opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/tmpyy59ae2p
             cwd: /private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-install-msbf7_vz/gevent_c2956687bb0d4de9bfb5f0660da759ee
        Complete output (42 lines):
          ...
          File "/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/cffi/api.py", line 48, in __init__
            import _cffi_backend as backend
        ImportError: dlopen(/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so, 2): no suitable image found.  Did find:
        	/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so: mach-o, but wrong architecture
        	/private/var/folders/b0/1vlv5rvn77x2rn6zbl2p4tqr0000gp/T/pip-build-env-1lesbbxi/overlay/lib/python3.9/site-packages/_cffi_backend.cpython-39-darwin.so: mach-o, but wrong architecture
    
    This issue is described in gevent/gevent#1721. Fortunately, gevent can
    be successfully installed via Python 3.8, hence to avoid this failure,
    python3 is pinned to the specific version (i.e. python@3.8) until the
    mentioned issue is resolved.
    
    Closes tarantool/tarantool-qa#120
    Relates to #6068
.travis.mk 16.21 KiB