ci: Restore mtime of source files to the git log time (#48607)

Piotr Osiewicz created

Release Notes:

- N/A

Change summary

.github/workflows/release.yml                     | 36 +++++++++++++++++
.github/workflows/release_nightly.yml             | 24 +++++++++++
.github/workflows/run_bundling.yml                | 18 ++++++++
.github/workflows/run_tests.yml                   | 21 +++++++++
tooling/xtask/src/tasks/workflows/run_bundling.rs |  9 ++-
tooling/xtask/src/tasks/workflows/run_tests.rs    |  9 ++-
tooling/xtask/src/tasks/workflows/steps.rs        |  8 +++
7 files changed, 119 insertions(+), 6 deletions(-)

Detailed changes

.github/workflows/release.yml 🔗

@@ -17,6 +17,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -49,6 +52,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -95,6 +101,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         New-Item -ItemType Directory -Path "./../.cargo" -Force
@@ -124,6 +133,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -144,6 +156,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -170,6 +185,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         New-Item -ItemType Directory -Path "./../.cargo" -Force
@@ -240,6 +258,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:
@@ -280,6 +301,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:
@@ -325,6 +349,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_node
       uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
       with:
@@ -370,6 +397,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_node
       uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
       with:
@@ -419,6 +449,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:
@@ -464,6 +497,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:

.github/workflows/release_nightly.yml 🔗

@@ -33,6 +33,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         New-Item -ItemType Directory -Path "./../.cargo" -Force
@@ -62,6 +65,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         New-Item -ItemType Directory -Path "./../.cargo" -Force
@@ -86,6 +92,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: run_bundling::set_release_channel_to_nightly
       run: |
         set -eu
@@ -132,6 +141,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: run_bundling::set_release_channel_to_nightly
       run: |
         set -eu
@@ -183,6 +195,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: run_bundling::set_release_channel_to_nightly
       run: |
         set -eu
@@ -234,6 +249,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: run_bundling::set_release_channel_to_nightly
       run: |
         set -eu
@@ -289,6 +307,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: run_bundling::set_release_channel_to_nightly
       run: |
         $ErrorActionPreference = "Stop"
@@ -342,6 +363,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: run_bundling::set_release_channel_to_nightly
       run: |
         $ErrorActionPreference = "Stop"

.github/workflows/run_bundling.yml 🔗

@@ -24,6 +24,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:
@@ -63,6 +66,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:
@@ -107,6 +113,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_node
       uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
       with:
@@ -151,6 +160,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_node
       uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
       with:
@@ -199,6 +211,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:
@@ -243,6 +258,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_sentry
       uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
       with:

.github/workflows/run_tests.yml 🔗

@@ -151,6 +151,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         New-Item -ItemType Directory -Path "./../.cargo" -Force
@@ -170,6 +173,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -198,6 +204,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -220,6 +229,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         New-Item -ItemType Directory -Path "./../.cargo" -Force
@@ -251,6 +263,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -299,6 +314,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::setup_cargo_config
       run: |
         mkdir -p ./../.cargo
@@ -333,6 +351,9 @@ jobs:
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       with:
         clean: false
+        fetch-depth: 0
+    - name: steps::restore_mtime
+      uses: zed-industries/git-restore-mtime-action@72cefcf20b50bf4fcd74ea8a0d2927b0680e2114
     - name: steps::cache_rust_dependencies_namespace
       uses: namespacelabs/nscloud-cache-action@v1
       with:

tooling/xtask/src/tasks/workflows/run_bundling.rs 🔗

@@ -73,7 +73,8 @@ pub(crate) fn bundle_mac(
         job: bundle_job(deps)
             .runs_on(runners::MAC_DEFAULT)
             .envs(bundle_envs(platform))
-            .add_step(steps::checkout_repo())
+            .add_step(steps::checkout_repo().add_with(("fetch-depth", 0)))
+            .add_step(steps::restore_mtime())
             .when_some(release_channel, |job, release_channel| {
                 job.add_step(set_release_channel(platform, release_channel))
             })
@@ -124,7 +125,8 @@ pub(crate) fn bundle_linux(
         job: bundle_job(deps)
             .runs_on(arch.linux_bundler())
             .envs(bundle_envs(platform))
-            .add_step(steps::checkout_repo())
+            .add_step(steps::checkout_repo().add_with(("fetch-depth", 0)))
+            .add_step(steps::restore_mtime())
             .when_some(release_channel, |job, release_channel| {
                 job.add_step(set_release_channel(platform, release_channel))
             })
@@ -164,7 +166,8 @@ pub(crate) fn bundle_windows(
         job: bundle_job(deps)
             .runs_on(runners::WINDOWS_DEFAULT)
             .envs(bundle_envs(platform))
-            .add_step(steps::checkout_repo())
+            .add_step(steps::checkout_repo().add_with(("fetch-depth", 0)))
+            .add_step(steps::restore_mtime())
             .when_some(release_channel, |job, release_channel| {
                 job.add_step(set_release_channel(platform, release_channel))
             })

tooling/xtask/src/tasks/workflows/run_tests.rs 🔗

@@ -384,7 +384,8 @@ pub(crate) fn clippy(platform: Platform) -> NamedJob {
         name: format!("clippy_{platform}"),
         job: release_job(&[])
             .runs_on(runner)
-            .add_step(steps::checkout_repo())
+            .add_step(steps::checkout_repo().add_with(("fetch-depth", 0)))
+            .add_step(steps::restore_mtime())
             .add_step(steps::setup_cargo_config(platform))
             .when(
                 platform == Platform::Linux || platform == Platform::Mac,
@@ -430,7 +431,8 @@ fn run_platform_tests_impl(platform: Platform, filter_packages: bool) -> NamedJo
                         ),
                 )
             })
-            .add_step(steps::checkout_repo())
+            .add_step(steps::checkout_repo().add_with(("fetch-depth", 0)))
+            .add_step(steps::restore_mtime())
             .add_step(steps::setup_cargo_config(platform))
             .when(
                 platform == Platform::Linux || platform == Platform::Mac,
@@ -513,7 +515,8 @@ fn doctests() -> NamedJob {
     named::job(
         release_job(&[])
             .runs_on(runners::LINUX_DEFAULT)
-            .add_step(steps::checkout_repo())
+            .add_step(steps::checkout_repo().add_with(("fetch-depth", 0)))
+            .add_step(steps::restore_mtime())
             .add_step(steps::cache_rust_dependencies_namespace())
             .map(steps::install_linux_dependencies)
             .add_step(steps::setup_cargo_config(Platform::Linux))

tooling/xtask/src/tasks/workflows/steps.rs 🔗

@@ -47,6 +47,14 @@ impl From<Nextest> for Step<Run> {
     }
 }
 
+pub fn restore_mtime() -> Step<Use> {
+    named::uses(
+        "zed-industries",
+        "git-restore-mtime-action",
+        "72cefcf20b50bf4fcd74ea8a0d2927b0680e2114",
+    )
+}
+
 pub fn checkout_repo() -> Step<Use> {
     named::uses(
         "actions",