matrix-public-archive/test
Eric Eastwood cda2d98df0
Add testing to CI (#20)
1. Build test homeserver Docker images which can federate with each other
 2. Run end-to-end (e2e) tests

#### Dev notes

Sharing variables across jobs when the `services` field can't access the `env` context, https://github.community/t/how-to-use-env-with-container-image/17252/24
```yaml
env:
  FOO: bar

jobs:
  set_env:
    outputs:
      var: ${{ steps.save_var.outputs.var }}
    steps:
      - id: save_var
         run: echo "::set-output name=var::${{ env.FOO }}"
  actual_job:
    needs: set_env
    container:
      image: ...whatever_you_need_here...${{ needs.set_env.outputs.var }}
```
2022-06-15 00:59:41 -05:00
..
dockerfiles Add testing to CI (#20) 2022-06-15 00:59:41 -05:00
fixtures Remove `matrix-bot-sdk` usage in tests (#15) 2022-06-09 20:44:57 -05:00
.eslintrc.json WIP: start of tests 2022-02-22 16:06:29 -06:00
README.md Better explain how to get the project and tests to run at this point (#19) 2022-06-10 18:52:12 -05:00
client-utils.js Remove `matrix-bot-sdk` usage in tests (#15) 2022-06-09 20:44:57 -05:00
docker-compose.yml Federated homeservers in Docker for e2e tests 2022-02-22 20:25:24 -06:00
e2e-tests.js Remove `matrix-bot-sdk` usage in tests (#15) 2022-06-09 20:44:57 -05:00

README.md

Testing

Setup

If you haven't setup matrix-public-archive yet, see the Setup section in the root README.md

Sorry, this isn't automated yet when you run the tests 🙇

$ docker pull matrixdotorg/synapse:latest
$ docker build -t matrix-public-archive-test-homeserver -f test/dockerfiles/Synapse.Dockerfile test/dockerfiles/

$ docker-compose --project-name matrix_public_archive_test -f test/docker-compose.yml up -d --no-recreate

Running the tests

$ npm run test

Or if you want to keep matrix-public-archive server running after the tests run and explore the output from the interactive URL's printed on the screen, use:

$ npm run test-interactive

Developer utility

$ docker ps --all | grep test_hs
$ docker logs -f --tail 10 matrix_public_archive_test_hs1_1
$ docker logs -f --tail 10 matrix_public_archive_test_hs2_1

$ docker stop matrix_public_archive_test_hs1_1 matrix_public_archive_test_hs2_1
$ docker rm matrix_public_archive_test_hs1_1 matrix_public_archive_test_hs2_1