Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tools: detect changes between builds #86

Closed
nmoutschen opened this issue Mar 30, 2020 · 0 comments
Closed

tools: detect changes between builds #86

nmoutschen opened this issue Mar 30, 2020 · 0 comments
Labels
tools Issue related to tooling
Projects

Comments

@nmoutschen
Copy link
Contributor

Proposed change

This change would prevent building resources that are already built and thus lower the iteration time for development changes.

On the first make build for a given service, it will create a .checksum file in the build folder. This file will be a checksum of all the relevant files for the build command. There could be multiple checksum files for different build operations (e.g. CloudFormation, OpenAPI, Python code, etc.).

On subsequent runs, this would check the checksum file(s) and compare them to the checksums of the existing files. If there are no differences, this will skip the build step and consider it as successful.

Risks

If files outside of the service folder are changed (e.g. files in shared/src/ecom/), this could create discrepancies between the development environments and what would be built in the CI/CD pipeline. This could be overcome with the detection of changes within shared libraries.

@nmoutschen nmoutschen added the tools Issue related to tooling label Mar 30, 2020
@nmoutschen nmoutschen added this to To do in Tooling Mar 30, 2020
@nmoutschen nmoutschen moved this from To do to In progress in Tooling Apr 2, 2020
@nmoutschen nmoutschen moved this from In progress to Done in Tooling Apr 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tools Issue related to tooling
Projects
No open projects
Tooling
  
Done
Development

No branches or pull requests

1 participant