diff options
-rw-r--r-- | .gitlab-ci.yml | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67b28305f0..162c19ccb6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,6 +11,7 @@ stages: - lint - build - full-build + - cleanup # See Note [Cleanup on Windows] ############################################################ # Runner Tags @@ -368,6 +369,35 @@ validate-x86_64-windows: tags: - x86_64-windows +# Note [Cleanup on Windows] +# ~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# As noted in [1], gitlab-runner's shell executor doesn't clean up its working +# directory after builds. Unfortunately, we are forced to use the shell executor +# on Windows. To avoid running out of disk space we add a stage at the end of +# the build to remove the \GitLabRunner\builds directory. Since we only run a +# single build at a time on Windows this should be safe. +# +# [1] https://gitlab.com/gitlab-org/gitlab-runner/issues/3856 + +# See Note [Cleanup on Windows] +cleanup-windows: + stage: cleanup + tags: + - x86_64-windows + when: always + before_script: + - echo "Time to clean up" + script: + - echo "Let's go" + after_script: + - set "BUILD_DIR=%CI_PROJECT_DIR%" + - set "BUILD_DIR=%BUILD_DIR:/=\%" + - echo "Cleaning %BUILD_DIR%" + - cd \GitLabRunner + - rmdir /S /Q %BUILD_DIR%/* + - exit /b 0 + ############################################################ # Validation via CircleCI ############################################################ |