Skip to content

Commit f35a067

Browse files
committed
fix: [#342] reestablish E2E Tests
1 parent 0608122 commit f35a067

14 files changed

+90
-36
lines changed

.dockerignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
/config-tracker.local.toml
1111
/config.local.toml
1212
/config.toml
13+
/contrib/dev-tools/container/
1314
/cspell.json
1415
/data_v2.db*
1516
/data.db
1617
/data.db*
17-
/docker/
1818
/project-words.txt
1919
/README.md
2020
/rustfmt.toml
2121
/storage/
22-
/target/
22+
/target/

.github/workflows/testing.yaml

+34
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,37 @@ jobs:
132132
- id: coverage
133133
name: Generate Coverage Report
134134
run: cargo llvm-cov nextest --tests --benches --examples --workspace --all-targets --all-features
135+
136+
integration:
137+
name: Integrations
138+
runs-on: ubuntu-latest
139+
needs: check
140+
141+
strategy:
142+
matrix:
143+
toolchain: [stable, nightly]
144+
145+
steps:
146+
- id: checkout
147+
name: Checkout Repository
148+
uses: actions/checkout@v4
149+
150+
- id: setup
151+
name: Setup Toolchain
152+
uses: dtolnay/rust-toolchain@stable
153+
with:
154+
toolchain: ${{ matrix.toolchain }}
155+
components: llvm-tools-preview
156+
157+
- id: cache
158+
name: Enable Job Cache
159+
uses: Swatinem/rust-cache@v2
160+
161+
# Temporary Cleaning to avoid Rust Compiler Bug
162+
- id: clean
163+
name: Make Build Clean
164+
run: cargo clean
165+
166+
- id: test
167+
name: Run Integration Tests
168+
run: ./contrib/dev-tools/container/e2e/run-e2e-tests.sh

compose.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ name: torrust
22
services:
33

44
index:
5-
image: torrust-index:release
5+
build:
6+
context: .
7+
dockerfile: ./Containerfile
8+
target: debug
69
tty: true
710
environment:
811
- TORRUST_INDEX_CONFIG=${TORRUST_INDEX_CONFIG}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash
2+
3+
TORRUST_INDEX_CONFIG=$(cat ./share/default/config/index.container.mysql.toml) \
4+
TORRUST_TRACKER_CONFIG=$(cat ./share/default/config/tracker.container.mysql.toml) \
5+
docker compose down
6+

contrib/dev-tools/container/e2e/mysql/e2e-env-reset.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Delete the databases and recreate them.
44

5-
docker compose down
5+
./contrib/dev-tools/container/e2e/mysql/e2e-env-down.sh
66

77
# Index
88

@@ -29,4 +29,4 @@ if ! [ -f "./storage/tracker/lib/database/torrust_tracker_e2e_testing.db" ]; the
2929
sqlite3 ./storage/tracker/lib/database/torrust_tracker_e2e_testing.db "VACUUM;"
3030
fi
3131

32-
./docker/bin/e2e/mysql/e2e-env-up.sh
32+
./contrib/dev-tools/container/e2e/mysql/e2e-env-up.sh
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash
22

3-
docker compose down
4-
./docker/bin/e2e/mysql/e2e-env-up.sh
3+
./contrib/dev-tools/container/e2e/mysql/e2e-env-downp.sh
4+
./contrib/dev-tools/container/e2e/mysql/e2e-env-up.sh

contrib/dev-tools/container/e2e/mysql/e2e-env-up.sh

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
#!/bin/bash
22

3-
TORRUST_IDX_BACK_USER_UID=${TORRUST_IDX_BACK_USER_UID:-1000} \
3+
TORRUST_INDEX_CONFIG=$(cat ./share/default/config/index.container.mysql.toml) \
44
docker compose build
55

6-
TORRUST_IDX_BACK_USER_UID=${TORRUST_IDX_BACK_USER_UID:-1000} \
7-
TORRUST_IDX_BACK_CONFIG=$(cat config-idx-back.mysql.local.toml) \
6+
USER_ID=${USER_ID:-1000} \
7+
# Index
8+
TORRUST_INDEX_CONFIG=$(cat ./share/default/config/index.container.mysql.toml) \
9+
TORRUST_INDEX_DATABASE_DRIVER="mysql" \
10+
TORRUST_INDEX_TRACKER_API_TOKEN="MyAccessToken" \
811
TORRUST_IDX_BACK_MYSQL_DATABASE="torrust_index_e2e_testing" \
9-
TORRUST_TRACKER_CONFIG=$(cat config-tracker.local.toml) \
10-
TORRUST_TRACKER_DATABASE_DRIVER=${TORRUST_TRACKER_DATABASE_DRIVER:-mysql} \
11-
TORRUST_TRACKER_API_ADMIN_TOKEN=${TORRUST_TRACKER_API_ADMIN_TOKEN:-MyAccessToken} \
12+
# Tracker
13+
TORRUST_TRACKER_CONFIG=$(cat ./share/default/config/tracker.container.mysql.toml) \
14+
TORRUST_TRACKER_DATABASE_DRIVER="mysql" \
15+
TORRUST_TRACKER_API_ADMIN_TOKEN="MyAccessToken" \
1216
docker compose up -d
13-

contrib/dev-tools/container/e2e/run-e2e-tests.sh

+8-7
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ cargo install imdl || exit 1
4242
# Install app (no docker) that will run the test suite against the E2E testing
4343
# environment (in docker).
4444
cp .env.local .env || exit 1
45-
./bin/install.sh || exit 1
45+
./contrib/dev-tools/init/install-local.sh || exit 1
4646

4747
# TEST USING SQLITE
4848
echo "Running E2E tests using SQLite ..."
4949

5050
# Start E2E testing environment
51-
./docker/bin/e2e/sqlite/e2e-env-up.sh || exit 1
51+
./contrib/dev-tools/container/e2e/sqlite/e2e-env-up.sh || exit 1
5252

5353
wait_for_container_to_be_healthy torrust-mysql-1 10 3
5454
# todo: implement healthchecks for tracker and index and wait until they are healthy
@@ -60,16 +60,16 @@ sleep 20s
6060
docker ps
6161

6262
# Run E2E tests with shared app instance
63-
TORRUST_IDX_BACK_E2E_SHARED=true TORRUST_IDX_BACK_E2E_CONFIG_PATH="./config-idx-back.sqlite.local.toml" cargo test || exit 1
63+
TORRUST_IDX_BACK_E2E_SHARED=true TORRUST_IDX_BACK_E2E_CONFIG_PATH="./share/default/config/index.container.sqlite3.toml" cargo test || exit 1
6464

6565
# Stop E2E testing environment
66-
docker compose down
66+
./contrib/dev-tools/container/e2e/sqlite/e2e-env-down.sh || exit 1
6767

6868
# TEST USING MYSQL
6969
echo "Running E2E tests using MySQL ..."
7070

7171
# Start E2E testing environment
72-
./docker/bin/e2e/mysql/e2e-env-up.sh || exit 1
72+
./contrib/dev-tools/container/e2e/mysql/e2e-env-up.sh || exit 1
7373

7474
wait_for_container_to_be_healthy torrust-mysql-1 10 3
7575
# todo: implement healthchecks for tracker and index and wait until they are healthy
@@ -91,7 +91,8 @@ echo "Creating MySQL database $MYSQL_DATABASE for for E2E testing ..."
9191
mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE IF NOT EXISTS $MYSQL_DATABASE;"
9292

9393
# Run E2E tests with shared app instance
94-
TORRUST_IDX_BACK_E2E_SHARED=true TORRUST_IDX_BACK_E2E_CONFIG_PATH="./config-idx-back.mysql.local.toml" cargo test || exit 1
94+
TORRUST_IDX_BACK_E2E_SHARED=true TORRUST_IDX_BACK_E2E_CONFIG_PATH="./share/default/config/index.container.mysql.toml" cargo test || exit 1
9595

9696
# Stop E2E testing environment
97-
docker compose down
97+
./contrib/dev-tools/container/e2e/mysql/e2e-env-down.sh || exit 1
98+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
TORRUST_INDEX_CONFIG=$(cat ./share/default/config/index.container.sqlite3.toml) \
4+
TORRUST_TRACKER_CONFIG=$(cat ./share/default/config/tracker.container.sqlite3.toml) \
5+
docker compose down

contrib/dev-tools/container/e2e/sqlite/e2e-env-reset.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Delete the databases and recreate them.
44

5-
docker compose down
5+
./contrib/dev-tools/container/e2e/sqlite/e2e-env-down.sh
66

77
rm -f ./storage/database/torrust_index_e2e_testing.db
88
rm -f ./storage/tracker/lib/database/torrust_tracker_e2e_testing.db
@@ -20,4 +20,4 @@ if ! [ -f "./storage/tracker/lib/database/torrust_tracker_e2e_testing.db" ]; the
2020
sqlite3 ./storage/tracker/lib/database/torrust_tracker_e2e_testing.db "VACUUM;"
2121
fi
2222

23-
./docker/bin/e2e/sqlite/e2e-env-up.sh
23+
./contrib/dev-tools/container/e2e/sqlite/e2e-env-up.sh
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash
22

3-
docker compose down
4-
./docker/bin/e2e/sqlite/e2e-env-up.sh
3+
./contrib/dev-tools/container/e2e/sqlite/e2e-env-down.sh
4+
./contrib/dev-tools/container/e2e/sqlite/e2e-env-up.sh

contrib/dev-tools/container/e2e/sqlite/e2e-env-up.sh

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
#!/bin/bash
22

3-
TORRUST_IDX_BACK_USER_UID=${TORRUST_IDX_BACK_USER_UID:-1000} \
3+
TORRUST_INDEX_CONFIG=$(cat ./share/default/config/index.container.sqlite3.toml) \
44
docker compose build
55

6-
TORRUST_IDX_BACK_USER_UID=${TORRUST_IDX_BACK_USER_UID:-1000} \
7-
TORRUST_IDX_BACK_CONFIG=$(cat config-idx-back.sqlite.local.toml) \
8-
TORRUST_IDX_BACK_MYSQL_DATABASE="torrust_index_e2e_testing" \
9-
TORRUST_TRACKER_CONFIG=$(cat config-tracker.local.toml) \
10-
TORRUST_TRACKER_DATABASE_DRIVER=${TORRUST_TRACKER_DATABASE_DRIVER:-sqlite3} \
11-
TORRUST_TRACKER_API_ADMIN_TOKEN=${TORRUST_TRACKER_API_ADMIN_TOKEN:-MyAccessToken} \
6+
USER_ID=${USER_ID:-1000} \
7+
# Index
8+
TORRUST_INDEX_CONFIG=$(cat ./share/default/config/index.container.sqlite3.toml) \
9+
TORRUST_INDEX_DATABASE_DRIVER="sqlite3" \
10+
TORRUST_INDEX_TRACKER_API_TOKEN="MyAccessToken" \
11+
# Tracker
12+
TORRUST_TRACKER_CONFIG=$(cat ./share/default/config/tracker.container.sqlite3.toml) \
13+
TORRUST_TRACKER_DATABASE_DRIVER="sqlite3" \
14+
TORRUST_TRACKER_API_ADMIN_TOKEN="MyAccessToken" \
1215
docker compose up -d
13-
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash
22

3-
./docker/bin/build.sh
4-
./bin/install.sh
3+
./contrib/dev-tools/container/e2e/bin/build.sh
4+
./contrib/dev-tools/init/install-local.sh

contrib/dev-tools/init/install-local.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ mkdir -p ./storage/index/lib/database
88
# Generate the sqlite database if it does not exist
99
if ! [ -f "./storage/index/lib/database/sqlite3.db" ]; then
1010
# todo: it should get the path from tracker.toml and only do it when we use sqlite
11-
sqlite3 ./storage/index/lib/database/sqlite3.db "VACUUM;"
11+
sqlite3 ./storage/index/lib/database/sqlite3.db "VACUUM;"
1212
fi

0 commit comments

Comments
 (0)