feat: move e2e test dind structure to use executor

fix: bump flutter and dart webrtc versions for dart analyze json format output
This commit is contained in:
td 2024-07-01 20:52:32 +05:30
parent 06c6e5b869
commit a8e56074cc
No known key found for this signature in database
GPG Key ID: 62A30523D4D6CE28
9 changed files with 28 additions and 31 deletions

View File

@ -14,21 +14,19 @@ jobs:
steps:
- uses: actions/checkout@v4
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
with:
sdk: ${{ env.dart_version }}
- name: Run tests
run: |
export NETWORK='--network mynet'
docker network create mynet
# deploy homeserver instance
scripts/integration-server-${{matrix.homeserver}}.sh
docker run $NETWORK --env GITHUB_ACTIONS="${GITHUB_ACTIONS}" --env HOMESERVER_IMPLEMENTATION="${{matrix.homeserver}}" --env HOMESERVER="${{startsWith('dendrite', matrix.homeserver) && format('{0}:8008', matrix.homeserver) || matrix.homeserver }}" --volume="$(pwd):/workdir" --workdir /workdir ghcr.io/famedly/container-image-flutter/flutter:${{env.flutter_version}} /bin/bash -c "set -e
scripts/integration-prepare-alpine.sh
# create test user environment variables
export HOMESERVER_IMPLEMENTATION=${{matrix.homeserver}}
export HOMESERVER="localhost:80"
scripts/integration-server-${{matrix.homeserver}}.sh 2>&1 > /dev/null &
sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y libolm3 libssl3
source scripts/integration-create-environment-variables.sh
# properly set the homeserver IP and create test users
scripts/integration-prepare-homeserver.sh
# setup OLM
scripts/integration-prepare-homeserver.sh
scripts/prepare.sh
scripts/test_driver.sh"
scripts/test_driver.sh
coverage_without_olm:
runs-on: ubuntu-latest
@ -42,7 +40,7 @@ jobs:
sdk: ${{ env.dart_version }}
- name: Run tests
run: |
sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y curl lcov python3 python3-distutils libsqlite3-0 libsqlite3-dev
sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y lcov libsqlite3-0 libsqlite3-dev
./scripts/test.sh
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
@ -53,16 +51,17 @@ jobs:
coverage:
runs-on: ubuntu-latest
runs-on: arm-ubuntu-latest-16core
steps:
- uses: actions/checkout@v4
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
with:
sdk: ${{ env.dart_version }}
architecture: "arm64"
- name: Run tests
run: |
sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y curl lcov python3 python3-distutils libsqlite3-0 libsqlite3-dev libolm3 libssl3
sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y lcov libsqlite3-0 libsqlite3-dev libolm3 libssl3
./scripts/test.sh
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
@ -110,6 +109,7 @@ jobs:
- uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
flutter-version: ${{ env.flutter_version }}
cache: true
- name: Ensure SDK compiles on web
run: |
pushd web_test

View File

@ -1,2 +1,2 @@
flutter_version=3.16.9
dart_version=3.2.6
flutter_version=3.22.2
dart_version=3.4.3

View File

@ -1,2 +0,0 @@
#!/usr/bin/env bash
apk update && apk add docker drill grep olm cmake sqlite-dev

View File

@ -34,6 +34,7 @@ echo "Waiting for homeserver to be available... (GET http://$HOMESERVER/_matrix/
sleep 5
while ! curl -XGET "http://$HOMESERVER/_matrix/client/v3/login" >/dev/null; do
docker ps -a
docker logs "$HOMESERVER_IMPLEMENTATION"
sleep 5
done

View File

@ -1,5 +1,6 @@
#!/usr/bin/env bash
docker run -d \
docker run -d --rm \
-e CONDUIT_CONFIG="" \
-e CONDUIT_SERVER_NAME="famedlysdk.test" \
-e CONDUIT_PORT="80" \
@ -10,5 +11,4 @@
-e CONDUIT_TRUSTED_SERVERS="[\"conduit.rs\"]" \
-e CONDUIT_MAX_CONCURRENT_REQUESTS="100" \
-e CONDUIT_LOG="info,rocket=off,_=off,sled=off" \
$NETWORK \
--name conduit -p 80:80 matrixconduit/matrix-conduit:v0.6.0

View File

@ -1,14 +1,13 @@
#!/usr/bin/env bash
chown -R 991:991 test_driver/dendrite
# creating integration test SSL certificates
docker run --rm --entrypoint="" \
--volume="$(pwd)/test_driver/dendrite/data":/mnt:rw \
--volume="$(pwd)/test_driver/dendrite/data":/etc/dendrite:rw \
matrixdotorg/dendrite-monolith:latest \
/usr/bin/generate-keys \
-private-key /mnt/matrix_key.pem \
-tls-cert /mnt/server.crt \
-tls-key /mnt/server.key
-private-key /etc/dendrite/matrix_key.pem \
-tls-cert /etc/dendrite/server.crt \
-tls-key /etc/dendrite/server.key
docker run -d --volume="$(pwd)/test_driver/dendrite/data":/etc/dendrite:rw \
--name dendrite $NETWORK -p 80:8008 matrixdotorg/dendrite-monolith:latest -really-enable-open-registration
--name dendrite -p 80:8008 matrixdotorg/dendrite-monolith:latest -really-enable-open-registration

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
docker run -d --name synapse --tmpfs /data $NETWORK \
docker run -d --rm --name synapse --tmpfs /data \
--volume="$(pwd)/test_driver/synapse/data/homeserver.yaml":/data/homeserver.yaml:rw \
--volume="$(pwd)/test_driver/synapse/data/localhost.log.config":/data/localhost.log.config:rw \
-p 80:80 matrixdotorg/synapse:latest

View File

@ -2,5 +2,5 @@
if which flutter >/dev/null; then
flutter --no-version-check test test_driver/matrixsdk_test.dart --dart-define=HOMESERVER=$HOMESERVER --dart-define=USER1_NAME=$USER1_NAME --dart-define=USER2_NAME=$USER2_NAME --dart-define=USER3_NAME=$USER3_NAME --dart-define=USER1_PW=$USER1_PW --dart-define=USER2_PW=$USER2_PW --dart-define=USER3_PW=$USER3_PW
else
dart -D HOMESERVER=$HOMESERVER -D USER1_NAME=$USER1_NAME -D USER2_NAME=$USER2_NAME -D USER3_NAME=$USER3_NAME -D USER1_PW=$USER1_PW -D USER2_PW=$USER2_PW -D USER3_PW=$USER3_PW test test_driver/matrixsdk_test.dart -p vm
dart --define=HOMESERVER=$HOMESERVER --define=USER1_NAME=$USER1_NAME --define=USER2_NAME=$USER2_NAME --define=USER3_NAME=$USER3_NAME --define=USER1_PW=$USER1_PW --define=USER2_PW=$USER2_PW --define=USER3_PW=$USER3_PW test test_driver/matrixsdk_test.dart -p vm
fi

View File

@ -486,9 +486,8 @@ void main() => group('Integration tests', () {
Logs().i('++++ (Alice) Create DM ++++');
final dmRoom = await testClientA.startDirectChat(testClientB.userID!);
// conduit returns the room on sync first, so we check if it has already been returned first.
if (testClientB.getRoomById(dmRoom)?.membership !=
Membership.invite) {
if (testClientB.getRoomById(dmRoom) == null) {
await testClientB.waitForRoomInSync(dmRoom, invite: true);
}