feat: introduce extended integration tests
- test both FLOSS and non-floss builds - test on Synapse, Dendrite and Conduit - remove Synapse-specific test - add static Release mode app launch test Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
This commit is contained in:
parent
56ba2341f4
commit
5f5a08f729
13 changed files with 490 additions and 30 deletions
26
scripts/integration-check-release-build.sh
Executable file
26
scripts/integration-check-release-build.sh
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# generate a temporary signing key adn apply its configuration
|
||||
cd android
|
||||
KEYFILE="$(pwd)/key.jks"
|
||||
echo "Generating signing configuration with $KEYFILE..."
|
||||
keytool -genkey -keyalg RSA -alias key -keysize 4096 -dname "cn=FluffyChat CI, ou=Head of bad integration tests, o=FluffyChat HQ, c=TLH" -keypass FLUFFYCHAT -storepass FLUFFYCHAT -validity 1 -keystore "$KEYFILE" -storetype "pkcs12"
|
||||
echo "storePassword=FLUFFYCHAT" >> key.properties
|
||||
echo "keyPassword=FLUFFYCHAT" >> key.properties
|
||||
echo "keyAlias=key" >> key.properties
|
||||
echo "storeFile=$KEYFILE" >> key.properties
|
||||
ls | grep key
|
||||
cd ..
|
||||
|
||||
# build release mode APK
|
||||
flutter pub get
|
||||
flutter build apk --release
|
||||
|
||||
# install and launch APK
|
||||
flutter install
|
||||
adb shell am start -n chat.fluffy.fluffychat/chat.fluffy.fluffychat.MainActivity
|
||||
|
||||
sleep 5
|
||||
|
||||
# check whether FluffyChat runs
|
||||
adb shell ps | awk '{print $9}' | grep chat.fluffy.fluffychat
|
||||
2
scripts/integration-prepare-alpine.sh
Executable file
2
scripts/integration-prepare-alpine.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
#!/usr/bin/env bash
|
||||
apk update && apk add docker drill grep
|
||||
8
scripts/integration-prepare-homeserver.sh
Executable file
8
scripts/integration-prepare-homeserver.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
IP_ADDRESS="$(drill docker | grep -m 1 -P "\d+\.\d+\.\d+.\d+" | awk -F ' ' '{print $NF}')"
|
||||
|
||||
sed -i "s/10.0.2.2/$IP_ADDRESS/g" integration_test/users.dart
|
||||
|
||||
curl -XPOST -d '{"username":"alice", "password":"AliceInWonderland", "inhibit_login":true, "auth": {"type":"m.login.dummy"}}' "http://$IP_ADDRESS:8008/_matrix/client/r0/register"
|
||||
curl -XPOST -d '{"username":"bob", "password":"JoWirSchaffenDas", "inhibit_login":true, "auth": {"type":"m.login.dummy"}}' "http://$IP_ADDRESS:8008/_matrix/client/r0/register"
|
||||
curl -XPOST -d '{"username":"trudy", "password":"HaveIBeenPwned", "inhibit_login":true, "auth": {"type":"m.login.dummy"}}' "http://$IP_ADDRESS:8008/_matrix/client/r0/register"
|
||||
14
scripts/integration-server-conduit.sh
Executable file
14
scripts/integration-server-conduit.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
docker run -d \
|
||||
-e CONDUIT_SERVER_NAME="localhost" \
|
||||
-e CONDUIT_PORT="8008" \
|
||||
-e CONDUIT_DATABASE_BACKEND="rocksdb" \
|
||||
-e CONDUIT_ALLOW_REGISTRATION=true \
|
||||
-e CONDUIT_ALLOW_FEDERATION=true \
|
||||
-e CONDUIT_MAX_REQUEST_SIZE="20000000" \
|
||||
-e CONDUIT_TRUSTED_SERVERS="[\"conduit.rs\"]" \
|
||||
-e CONDUIT_MAX_CONCURRENT_REQUESTS="100" \
|
||||
-e CONDUIT_LOG="info,rocket=off,_=off,sled=off" \
|
||||
--name conduit -p 8008:8008 matrixconduit/matrix-conduit:latest
|
||||
|
||||
sleep 20
|
||||
16
scripts/integration-server-dendrite.sh
Executable file
16
scripts/integration-server-dendrite.sh
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env bash
|
||||
chown -R 991:991 integration_test/dendrite
|
||||
|
||||
# creating integration test SSL certificates
|
||||
docker run --rm --entrypoint="" \
|
||||
--volume="$(pwd)/integration_test/dendrite/data":/mnt: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
|
||||
|
||||
docker run -d --volume="$(pwd)/integration_test/dendrite/data":/etc/dendrite:rw \
|
||||
--name dendrite -p 8008:8008 matrixdotorg/dendrite-monolith:latest -really-enable-open-registration
|
||||
|
||||
sleep 20
|
||||
4
scripts/integration-server-synapse.sh
Executable file
4
scripts/integration-server-synapse.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
chown -R 991:991 integration_test/synapse
|
||||
docker run -d --name synapse --user 991:991 --volume="$(pwd)/integration_test/synapse/data":/data:rw -p 8008:8008 matrixdotorg/synapse:latest
|
||||
sleep 20
|
||||
4
scripts/integration-start-avd.sh
Executable file
4
scripts/integration-start-avd.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
chmod 777 -R /dev/kvm
|
||||
adb start-server
|
||||
emulator -avd test -no-audio -no-boot-anim -no-window -accel on -gpu swiftshader_indirect
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
git apply ./scripts/enable-android-google-services.patch
|
||||
cd android
|
||||
echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks
|
||||
echo "storePassword=${FDROID_KEY_PASS}" >> key.properties
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue