1234567891011121314151617181920212223242526 |
- #!/bin/bash
- # This script is executed by Buildkite on the host machine.
- # In contrast, our build jobs are run in Docker containers.
- # This means that even though our build jobs write to
- # `/artifact-mount`, the directory on the host machine is
- # actually `/tmp/artifacts`.
- # We clean up the artifacts directory before any command and
- # after uploading artifacts to make sure no stale artifacts
- # remain on the node when a Buildkite runner is re-used.
- set -ex
- if [ -d "/tmp/artifacts" ]; then
- echo "Cleaning up old artifacts before command."
- echo "Artifact directory contents before cleanup:"
- find /tmp/artifacts -print || true
- if [ "$(ls -A /tmp/artifacts)" ]; then
- echo "Directory not empty, cleaning up..."
- # Need to run in docker to avoid permission issues
- docker run --rm -v /tmp/artifacts:/artifact-mount alpine:latest /bin/sh -c 'rm -rf /artifact-mount/*; rm -rf /artifact-mount/.[!.]*' || true
- else
- echo "Directory already empty, no need to clean up."
- fi
- echo "Artifact directory contents after cleanup:"
- find /tmp/artifacts -print || true
- fi
|