Working Github Action for Remote Test

Does anyone have platformio working from github actions running remote tests? The remote command brings in more dependencies which are breaking. I’ve iterated a lot. The issue is with openssl.

I’ve iterated a lot and can’t quite seem to get the dependencies set up right.

name: Remote Test

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-python@v4
      with:
        python-version: '3.10'

    - name: Try and fix cryptography
      run: sudo apt install -y libffi-dev python3-dev libssl-dev

    - name: Install pip
      run: python -m pip install --upgrade pip

    - name: Install PlatformIO
      run: pip install --upgrade platformio

    - name: Run PlatformIO
      env:
        PLATFORMIO_AUTH_TOKEN: ${{ secrets.PLATFORMIO_AUTH_TOKEN }}
      run: pio remote --agent lumo-build test -e V5_0_devkit_4MB -v
Error: Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/platformio/__main__.py", line 102, in main
    cli()  # pylint: disable=no-value-for-parameter
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/platformio/cli.py", line 71, in invoke
    return super().invoke(ctx)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/platformio/remote/cli.py", line 215, in remote_test
    from platformio.remote.client.run_or_test import RunOrTestClient
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/platformio/remote/client/run_or_test.py", line 26, in <module>
    from platformio.remote.client.async_base import AsyncClientBase
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/platformio/remote/client/async_base.py", line 18, in <module>
    from platformio.remote.client.base import RemoteClientBase
  File "/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/platformio/remote/client/base.py", line 19, in <module>
    from twisted.internet import defer, endpoints, reactor  # pylint: disable=import-error
  File "/home/runner/.platformio/packages/contrib-pysite/twisted/internet/endpoints.py", line 65, in <module>
    from OpenSSL.SSL import Error as SSLError
  File "/home/runner/.platformio/packages/contrib-pysite/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import SSL, crypto
  File "/home/runner/.platformio/packages/contrib-pysite/OpenSSL/SSL.py", line 9, in <module>
    from OpenSSL._util import (
  File "/home/runner/.platformio/packages/contrib-pysite/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/home/runner/.platformio/packages/contrib-pysite/cryptography/hazmat/bindings/openssl/binding.py", line 228, in <module>
    Binding.init_static_locks()
  File "/home/runner/.platformio/packages/contrib-pysite/cryptography/hazmat/bindings/openssl/binding.py", line 188, in init_static_locks
    cls._ensure_ffi_initialized()
  File "/home/runner/.platformio/packages/contrib-pysite/cryptography/hazmat/bindings/openssl/binding.py", line 164, in _ensure_ffi_initialized
    cls.lib = build_conditional_library(lib, CONDITIONAL_NAMES)
  File "/home/runner/.platformio/packages/contrib-pysite/cryptography/hazmat/bindings/openssl/binding.py", line 107, in build_conditional_library
    if not getattr(lib, condition):
AttributeError: cffi library '_openssl' has no function, constant or global variable named 'Cryptography_HAS_SIGALGS'

============================================================

An unexpected error occurred. Further steps:

* Verify that you have the latest version of PlatformIO using
  `pip install -U platformio` command

* Try to find answer in FAQ Troubleshooting section
  https://docs.platformio.org/page/faq/index.html

* Report this problem to the developers
  https://github.com/platformio/platformio-core/issues

============================================================

Error: Process completed with exit code 1.