77import uuid
88from pathlib import Path
99from subprocess import check_output
10+ from typing import TYPE_CHECKING
1011
1112import pytest
1213import requests
@@ -283,6 +284,7 @@ def gl(gitlab_url: str, gitlab_token: str) -> gitlab.Gitlab:
283284 retry_transient_errors = True ,
284285 timeout = 120 ,
285286 )
287+ instance .auth ()
286288
287289 logging .info ("Reset GitLab" )
288290 reset_gitlab (instance )
@@ -291,39 +293,36 @@ def gl(gitlab_url: str, gitlab_token: str) -> gitlab.Gitlab:
291293
292294
293295@pytest .fixture (scope = "session" )
294- def gitlab_runner (gl ):
296+ def gitlab_runner (gl : gitlab . Gitlab ):
295297 container = "gitlab-runner-test"
296- runner_name = "python-gitlab-runner"
297- token = "registration-token"
298+ runner_description = "python-gitlab-runner"
299+ if TYPE_CHECKING :
300+ assert gl .user is not None
301+
302+ runner = gl .user .runners .create (
303+ {"runner_type" : "instance_type" , "run_untagged" : True }
304+ )
298305 url = "http://gitlab"
299306
300307 docker_exec = ["docker" , "exec" , container , "gitlab-runner" ]
301308 register = [
302309 "register" ,
303- "--run-untagged" ,
304310 "--non-interactive" ,
305- "--registration- token" ,
306- token ,
307- "--name " ,
308- runner_name ,
311+ "--token" ,
312+ runner . token ,
313+ "--description " ,
314+ runner_description ,
309315 "--url" ,
310316 url ,
311317 "--clone-url" ,
312318 url ,
313319 "--executor" ,
314- "docker" ,
315- "--docker-image" ,
316- "alpine:latest" ,
317- "--tag-list" ,
318- "docker" ,
319- "--docker-network-mode" ,
320- "gitlab-network" ,
320+ "shell" ,
321321 ]
322- unregister = ["unregister" , "--name" , runner_name ]
323322
324323 yield check_output (docker_exec + register ).decode ()
325324
326- check_output ( docker_exec + unregister ). decode ( )
325+ gl . runners . delete ( token = runner . token )
327326
328327
329328@pytest .fixture (scope = "module" )
0 commit comments