@@ -69,61 +69,121 @@ clean:
6969 cargo clean
7070
7171docker_start_mysql :
72- docker compose -f docker-compose.mysql.yaml up -d
72+ docker compose -f docker/docker -compose.mysql.yaml up -d
7373
7474docker_start_mysql_rebuild :
75- docker compose -f docker-compose.mysql.yaml up --build -d
75+ docker compose -f docker/docker -compose.mysql.yaml up --build -d
7676
7777docker_stop_mysql :
78- docker compose -f docker-compose.mysql.yaml down
78+ docker compose -f docker/docker -compose.mysql.yaml down
7979
8080docker_start_spanner :
81- docker compose -f docker-compose.spanner.yaml up -d
81+ docker compose -f docker/docker -compose.spanner.yaml up -d
8282
8383docker_start_spanner_rebuild :
84- docker compose -f docker-compose.spanner.yaml up --build -d
84+ docker compose -f docker/docker -compose.spanner.yaml up --build -d
8585
8686docker_stop_spanner :
87- docker compose -f docker-compose.spanner.yaml down
87+ docker compose -f docker/docker -compose.spanner.yaml down
8888
8989.ONESHELL :
9090docker_run_mysql_e2e_tests :
91+ exit_code=0
92+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__KTY \
93+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__ALG \
94+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__KID \
95+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__FXA_CREATED_AT \
96+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__USE \
97+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__N \
98+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__E \
99+ RESULTS_FILENAME=mysql_no_jwk_integration_results.xml \
91100 docker compose \
92- -f docker-compose.mysql.yaml \
93- -f docker-compose.e2e.mysql.yaml \
101+ -f docker/docker-compose.mysql.yaml \
102+ -f docker/docker-compose.e2e.mysql.yaml \
103+ -f docker/docker-compose.e2e.mysql.no-jwk-cache.yaml \
94104 up \
95105 --exit-code-from mysql-e2e-tests \
96- --abort-on-container-exit;
97- exit_code=$$? ;
98- docker cp mysql-e2e-tests:/mysql_integration_results.xml ${MYSQL_INT_JUNIT_XML} ;
99- docker cp mysql-e2e-tests:/mysql_no_jwk_integration_results.xml ${MYSQL_NO_JWK_INT_JUNIT_XML} ;
100- exit $$ exit_code;
106+ --abort-on-container-exit || exit_code=$$?
107+ docker cp mysql-e2e-tests:/mysql_no_jwk_integration_results.xml ${MYSQL_NO_JWK_INT_JUNIT_XML}
108+ RESULTS_FILENAME=mysql_integration_results.xml docker compose \
109+ -f docker/docker-compose.mysql.yaml \
110+ -f docker/docker-compose.e2e.mysql.yaml \
111+ -f docker/docker-compose.e2e.mysql.jwk-cache.yaml \
112+ up \
113+ --exit-code-from mysql-e2e-tests \
114+ --abort-on-container-exit || exit_code=$$?
115+ docker cp mysql-e2e-tests:/mysql_integration_results.xml ${MYSQL_INT_JUNIT_XML}
116+ docker compose \
117+ -f docker/docker-compose.mysql.yaml \
118+ -f docker/docker-compose.e2e.mysql.yaml \
119+ down -v --remove-orphans
120+ exit $$ exit_code
101121
102122.ONESHELL :
103123docker_run_postgres_e2e_tests :
124+ exit_code=0
125+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__KTY \
126+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__ALG \
127+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__KID \
128+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__FXA_CREATED_AT \
129+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__USE \
130+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__N \
131+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__E \
132+ RESULTS_FILENAME=postgres_no_jwk_integration_results.xml \
104133 docker compose \
105- -f docker-compose.postgres.yaml \
106- -f docker-compose.e2e.postgres.yaml \
134+ -f docker/docker-compose.postgres.yaml \
135+ -f docker/docker-compose.e2e.postgres.yaml \
136+ -f docker/docker-compose.e2e.postgres.no-jwk-cache.yaml \
107137 up \
108138 --exit-code-from postgres-e2e-tests \
109- --abort-on-container-exit;
110- exit_code=$$? ;
111- docker cp postgres-e2e-tests:/postgres_integration_results.xml ${POSTGRES_INT_JUNIT_XML} ;
112- docker cp postgres-e2e-tests:/postgres_no_jwk_integration_results.xml ${POSTGRES_NO_JWK_INT_JUNIT_XML} ;
113- exit $$ exit_code;
139+ --abort-on-container-exit || exit_code=$$?
140+ docker cp postgres-e2e-tests:/postgres_no_jwk_integration_results.xml ${POSTGRES_NO_JWK_INT_JUNIT_XML}
141+ RESULTS_FILENAME=postgres_integration_results.xml docker compose \
142+ -f docker/docker-compose.postgres.yaml \
143+ -f docker/docker-compose.e2e.postgres.yaml \
144+ -f docker/docker-compose.e2e.postgres.jwk-cache.yaml \
145+ up \
146+ --exit-code-from postgres-e2e-tests \
147+ --abort-on-container-exit || exit_code=$$?
148+ docker cp postgres-e2e-tests:/postgres_integration_results.xml ${POSTGRES_INT_JUNIT_XML}
149+ docker compose \
150+ -f docker/docker-compose.postgres.yaml \
151+ -f docker/docker-compose.e2e.postgres.yaml \
152+ down -v --remove-orphans
153+ exit $$ exit_code
114154
115155.ONESHELL :
116156docker_run_spanner_e2e_tests :
157+ exit_code=0
158+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__KTY \
159+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__ALG \
160+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__KID \
161+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__FXA_CREATED_AT \
162+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__USE \
163+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__N \
164+ env -u SYNC_TOKENSERVER__FXA_OAUTH_PRIMARY_JWK__E \
165+ RESULTS_FILENAME=spanner_no_jwk_integration_results.xml \
117166 docker compose \
118- -f docker-compose.spanner.yaml \
119- -f docker-compose.e2e.spanner.yaml \
167+ -f docker/docker-compose.spanner.yaml \
168+ -f docker/docker-compose.e2e.spanner.yaml \
169+ -f docker/docker-compose.e2e.spanner.no-jwk-cache.yaml \
170+ up \
171+ --exit-code-from spanner-e2e-tests \
172+ --abort-on-container-exit || exit_code=$$?
173+ docker cp spanner-e2e-tests:/spanner_no_jwk_integration_results.xml ${SPANNER_NO_JWK_INT_JUNIT_XML}
174+ RESULTS_FILENAME=spanner_integration_results.xml docker compose \
175+ -f docker/docker-compose.spanner.yaml \
176+ -f docker/docker-compose.e2e.spanner.yaml \
177+ -f docker/docker-compose.e2e.spanner.jwk-cache.yaml \
120178 up \
121179 --exit-code-from spanner-e2e-tests \
122- --abort-on-container-exit;
123- exit_code=$$? ;
124- docker cp spanner-e2e-tests:/spanner_integration_results.xml ${SPANNER_INT_JUNIT_XML} ;
125- docker cp spanner-e2e-tests:/spanner_no_jwk_integration_results.xml ${SPANNER_NO_JWK_INT_JUNIT_XML} ;
126- exit $$ exit_code;
180+ --abort-on-container-exit || exit_code=$$?
181+ docker cp spanner-e2e-tests:/spanner_integration_results.xml ${SPANNER_INT_JUNIT_XML}
182+ docker compose \
183+ -f docker/docker-compose.spanner.yaml \
184+ -f docker/docker-compose.e2e.spanner.yaml \
185+ down -v --remove-orphans
186+ exit $$ exit_code
127187
128188run_mysql : $(INSTALL_STAMP )
129189 # See https://github.com/PyO3/pyo3/issues/1741 for discussion re: why we need to set the
@@ -180,6 +240,14 @@ run_token_server_integration_tests:
180240 poetry install --no-root --without dev
181241 poetry run pytest tools/tokenserver --junit-xml=${INTEGRATION_JUNIT_XML}
182242
243+ run_local_e2e_tests :
244+ PYTHONPATH=$(PWD ) /tools \
245+ SYNC_MASTER_SECRET=$$ {SYNC_MASTER_SECRET:-secret0} \
246+ SYNC_TOKENSERVER__FXA_OAUTH_SERVER_URL=$$ {SYNC_TOKENSERVER__FXA_OAUTH_SERVER_URL:-http://localhost:6000} \
247+ TOKENSERVER_HOST=$$ {TOKENSERVER_HOST:-http://localhost:8000} \
248+ poetry -C tools/integration_tests \
249+ run pytest . --ignore=tokenserver/test_e2e.py
250+
183251.PHONY : install
184252install : $(INSTALL_STAMP ) # # Install dependencies with poetry
185253$(INSTALL_STAMP ) : pyproject.toml poetry.lock
0 commit comments