You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 6, 2021. It is now read-only.
We will have need of a way to tell if a project has changed between executions to speed things up. At the moment, we execute all projects every single time regardless of whether they have changed.
We load up any existing index we have stored. If none, we consider it empty.
For each of these files, we check the modified and created at times against those stored in the existing index and if they're newer or they're missing, the file is changed.
If they're the same, newer or missing, we SHA the contents of the file and store that in the index along with the created at and modified time.
This gives us as quick index from which we can see if any file has changed at any time.
One issue arising when considering when to save this index. Many workflows could potentially be composed of multiple commands only after which you want to save the index. To make this work, we can perhaps introduce a shanty checkpoint task which actually does the saving of the index. After this point, that will be the baseline to which everything will be compared. A project being changed will simply add a changed tag which can be used to only run the changed things.
shanty test --tags changed
Finally, one notes that the calling of shanty checkpoint can actually be automated in most workflows by doing one of the following:
Adding a Git/SVN hook to call it when the current commit changes.
Configuring CI plugins to run this at the end of a CI build.
The text was updated successfully, but these errors were encountered:
Part of addressing this will undoubtedly touch on #13, as we will using an index for getting at the tree of files now instead of globbing the disk over and over.
We will have need of a way to tell if a project has changed between executions to speed things up. At the moment, we execute all projects every single time regardless of whether they have changed.
The proposed design is as follows:
.gitignore
file.This gives us as quick index from which we can see if any file has changed at any time.
One issue arising when considering when to save this index. Many workflows could potentially be composed of multiple commands only after which you want to save the index. To make this work, we can perhaps introduce a
shanty checkpoint
task which actually does the saving of the index. After this point, that will be the baseline to which everything will be compared. A project being changed will simply add achanged
tag which can be used to only run the changed things.Finally, one notes that the calling of
shanty checkpoint
can actually be automated in most workflows by doing one of the following:The text was updated successfully, but these errors were encountered: