mirror of
https://github.com/go-task/task.git
synced 2025-03-05 15:05:42 +02:00
fix: only rewrite checksum files if the checksum has changed
This commit is contained in:
parent
1936142042
commit
082cdcc358
@ -42,7 +42,7 @@ func (checker *ChecksumChecker) IsUpToDate(t *taskfile.Task) (bool, error) {
|
|||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if !checker.dry {
|
if !checker.dry && oldMd5 != newMd5 {
|
||||||
_ = os.MkdirAll(filepathext.SmartJoin(checker.tempDir, "checksum"), 0o755)
|
_ = os.MkdirAll(filepathext.SmartJoin(checker.tempDir, "checksum"), 0o755)
|
||||||
if err = os.WriteFile(checksumFile, []byte(newMd5+"\n"), 0o644); err != nil {
|
if err = os.WriteFile(checksumFile, []byte(newMd5+"\n"), 0o644); err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
13
task_test.go
13
task_test.go
@ -508,9 +508,10 @@ func TestStatusChecksum(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var buff bytes.Buffer
|
var buff bytes.Buffer
|
||||||
|
tempdir := filepathext.SmartJoin(dir, ".task")
|
||||||
e := task.Executor{
|
e := task.Executor{
|
||||||
Dir: dir,
|
Dir: dir,
|
||||||
TempDir: filepathext.SmartJoin(dir, ".task"),
|
TempDir: tempdir,
|
||||||
Stdout: &buff,
|
Stdout: &buff,
|
||||||
Stderr: &buff,
|
Stderr: &buff,
|
||||||
}
|
}
|
||||||
@ -522,9 +523,19 @@ func TestStatusChecksum(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Capture the modification time, so we can ensure the checksum file
|
||||||
|
// is not regenerated when the hash hasn't changed.
|
||||||
|
s, err := os.Stat(filepathext.SmartJoin(tempdir, "checksum/"+test.task))
|
||||||
|
require.NoError(t, err)
|
||||||
|
time := s.ModTime()
|
||||||
|
|
||||||
buff.Reset()
|
buff.Reset()
|
||||||
require.NoError(t, e.Run(context.Background(), taskfile.Call{Task: test.task}))
|
require.NoError(t, e.Run(context.Background(), taskfile.Call{Task: test.task}))
|
||||||
assert.Equal(t, `task: Task "`+test.task+`" is up to date`+"\n", buff.String())
|
assert.Equal(t, `task: Task "`+test.task+`" is up to date`+"\n", buff.String())
|
||||||
|
|
||||||
|
s, err = os.Stat(filepathext.SmartJoin(tempdir, "checksum/"+test.task))
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, time, s.ModTime())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user