diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7c001369ed7e505c2ecbb7f30c787e5c558da304..dd50908b3a24a5928d5a478d108827f97f9f9fdd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,7 @@ stages:
 
 variables:
   PREFIX: /opt/beat.env.web/usr
+  TEST_PREFIX_PATH_FILE: '/tmp/test_prefix_$CI_JOB_ID.txt'
 
 build:
   stage: build
@@ -11,12 +12,13 @@ build:
   before_script:
   - ${PREFIX}/bin/python --version
   - docker info
+  - export BEAT_TEST_PREFIX=`mktemp -d --tmpdir=/var/tmp beat_test_prefix.XXXXXXXXX`
+  - echo $BEAT_TEST_PREFIX > $TEST_PREFIX_PATH_FILE
   script:
   - git clean -ffdx
   - ${PREFIX}/bin/python bootstrap-buildout.py
   - ./bin/buildout
   - export COVERAGE_FILE=.coverage.django
-  - export BEAT_TEST_PREFIX=`mktemp -d --tmpdir=/var/tmp beat_test_prefix.XXXXXXXXX`
   - ./bin/python ${PREFIX}/bin/coverage run --source=${CI_PROJECT_NAME} ./bin/django test --settings=beat.web.settings.ci -v 2
   - export BEAT_CMDLINE_TEST_PLATFORM=django://beat.web.settings.ci
   - export COVERAGE_FILE=.coverage.cmdline
@@ -24,13 +26,16 @@ build:
   - export NOSE_COVER_PACKAGE=beat.web
   - ./bin/python ${PREFIX}/bin/coverage run --source=./src/beat.cmdline ./bin/nosetests -sv beat.cmdline
   - unset COVERAGE_FILE
-  - rm -rf $BEAT_TEST_PREFIX
-  - unset BEAT_TEST_PREFIX
   - ./bin/python ${PREFIX}/bin/coverage combine .coverage.django .coverage.cmdline
   - ./bin/python ${PREFIX}/bin/coverage report
   - ./bin/python ${PREFIX}/bin/sphinx-apidoc --separate -d 2 --output=doc/api ${CI_PROJECT_NAMESPACE} beat/web/*/migrations beat/web/*/tests
   - ./bin/python ${PREFIX}/bin/sphinx-build doc/api html/api
   - ./bin/python ${PREFIX}/bin/sphinx-build doc/admin html/admin
   - ./bin/python ${PREFIX}/bin/sphinx-build doc/user html/user
+  after_script:
+  - export BEAT_TEST_PREFIX=`cat $TEST_PREFIX_PATH_FILE`
+  - echo "Deleting BEAT test prefix $BEAT_TEST_PREFIX"
+  - rm -rf $BEAT_TEST_PREFIX $TEST_PREFIX_PATH_FILE
+  - unset BEAT_TEST_PREFIX
   tags:
   - docker-build