From 64d9dbbd1a3c41f5ee3a691aaf78039222329fd4 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 20 Jun 2025 11:10:15 -0400 Subject: [PATCH 1/4] .gitlab-ci.yml: reset file timestamps to avoid rerunning simulations --- .gitlab-ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c0b49fe0..840dc49c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -117,6 +117,14 @@ get_data: - ln -s "${LOCAL_DATA_PATH}/sim_output" "${DETECTOR_CONFIG}/sim_output" - ln -s "../results" "${DETECTOR_CONFIG}/results" - mkdir -p "$SNAKEMAKE_OUTPUT_CACHE" + # GitLab CI will have new timestamps in each job, which messes with + # Snakemake outdated file detection. This resets file timestamps according + # to latest modification in git. + - | + for file in $(git ls-files); do + time="$(git log --pretty=format:%cd -n 1 --date=format:%Y%m%d%H%M.%S --date-order -- "$file")" + touch -m -t "$time" "$file" + done - ls -lrtha retry: max: 2 From c0d38a36af1c9a9d900910c0781fa8026ef43576 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Mon, 23 Jun 2025 19:00:42 -0400 Subject: [PATCH 2/4] no -m --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 840dc49c..162b1cff 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -123,7 +123,7 @@ get_data: - | for file in $(git ls-files); do time="$(git log --pretty=format:%cd -n 1 --date=format:%Y%m%d%H%M.%S --date-order -- "$file")" - touch -m -t "$time" "$file" + touch -t "$time" "$file" done - ls -lrtha retry: From 10c51fa4a1039579ca2e832c21c8760faec0c6b8 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 3 Jul 2025 16:36:55 -0400 Subject: [PATCH 3/4] test --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 162b1cff..74d6d0c3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -117,6 +117,7 @@ get_data: - ln -s "${LOCAL_DATA_PATH}/sim_output" "${DETECTOR_CONFIG}/sim_output" - ln -s "../results" "${DETECTOR_CONFIG}/results" - mkdir -p "$SNAKEMAKE_OUTPUT_CACHE" + - stat -c %x,%z,%n * # GitLab CI will have new timestamps in each job, which messes with # Snakemake outdated file detection. This resets file timestamps according # to latest modification in git. @@ -125,6 +126,7 @@ get_data: time="$(git log --pretty=format:%cd -n 1 --date=format:%Y%m%d%H%M.%S --date-order -- "$file")" touch -t "$time" "$file" done + - stat -c %x,%z,%n * - ls -lrtha retry: max: 2 From 6133fa6693e41038babc0bdfe5972a7ad97cdbb3 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Tue, 8 Jul 2025 15:21:45 -0400 Subject: [PATCH 4/4] add back -m --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 74d6d0c3..270c4626 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -124,7 +124,7 @@ get_data: - | for file in $(git ls-files); do time="$(git log --pretty=format:%cd -n 1 --date=format:%Y%m%d%H%M.%S --date-order -- "$file")" - touch -t "$time" "$file" + touch -m -t "$time" "$file" done - stat -c %x,%z,%n * - ls -lrtha