Open reynoldsalec opened 2 years ago
One issue I'm noticing; any test that involves running a command on the app container fails because of this output that occurs upon sshing into the container:
/bin/sh: 1: /helpers/psh-exec.sh,/bin/sh,-c,if: not found
@reynoldsalec update here: the command is now yarn test:leia
.
Also, if we are all going to work on this want to make a checklist of all the services in the issue so we don't overlap?
Copying over the maria tests, it does look like the issues I've been seeing locally aren't impacting GitHub Actions (good).
However, the tests for mariadb-10.5 are failing (bad). It looks like something in P.sh's startup scripts may be failing to setup the database correctly; in the Lando logs I see many errors along these lines...
mariadb_1 | runsv mysql-cluster: fatal: unable to lock supervise/lock: temporary failure
mariadb_1 | runsv idmapd: fatal: unable to lock supervise/lock: temporary failure
mariadb_1 | runsv mysql-standalone: fatal: unable to lock supervise/lock: temporary failure
mariadb_1 | runsv mysql-failure: fatal: unable to lock supervise/lock: temporary failure
mariadb_1 | runsv mysql-cluster: fatal: unable to lock supervise/lock: temporary failure
I tried debugging by ssh-ing into the mariadb container; I was unable to connect to the database via the mysql
command (mysql -u user -P 3306 -h mariadb main
) so I tried running the P.sh start script (/etc/platform/start
) again as root, which looks like it produces a Connection refused
error:
Traceback (most recent call last):
File "./start", line 6, in <module>
service.start()
File "/usr/lib/python2.7/dist-packages/platformsh/agent/service.py", line 230, in start
self.boot_wait_for_services()
File "/etc/platform/config.py", line 715, in boot_wait_for_services
super(StateAwareService, self).boot_wait_for_services()
File "/etc/platform/config.py", line 168, in boot_wait_for_services
self._tcp_connect()
File "/usr/lib/python2.7/dist-packages/platformsh/agent/util.py", line 109, in retried_function
return function(*args, **kwargs)
File "/etc/platform/config.py", line 485, in _tcp_connect
socket.socket().connect(("127.0.0.1", 3306))
File "/usr/lib/python2.7/dist-packages/gevent/_socket2.py", line 272, in connect
raise error(err, strerror(err))
socket.error: [Errno 111] Connection refused
@reynoldsalec added some more checkboxes. The other thing we will want to do explicitly is test out php
but we can do that in a separate PR for "languages" instead of "services"
We want to have examples (ie tests) for all of the P.sh services.
The basic process for creating these is fairly simple...
1) Copy an existing example directory (ex: examples/mariadb-10.2) 2) Reconfigure the config files to run the correct service and version.
platform.app.yaml', '.platform/services.yaml' are probably the primary ones, although you'll want to signify the correct service version in all files. 3) Create Leia-legible tests in the README.md based on example commands found in the P.sh docs. 4) Experiment running those tests, both individually and finally as a suite (after generating tests
yarn run generate:testsand running
yarn run test:functional`Services we're targeting (in rough order of priority):
MariaDB
MySQL
Oracle MySQL [SHOULD CREATE ISSUE TO ADD SUPPORT FOR THIS]
Legacy Mariadb
docker pull docker.registry.platform.sh/mariadb-5.5
]Legacy MySQL
PostgresSQL -> In progress (awaiting feedback)
Redis
Memcached
Solr
Elasticsearch -> In progress
Varnish
MongoDB
RabbitMQ
Headless Chrome
InfluxDB
Kafka
Other important things
Integrations (eg init a site from Platform and doing a
lando pull
)Nice to have