Add jenkins builds for pull requests #280
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary: Add jenkins builds for pull requests
This PR adds a Jenkinsfile that executes builds for all PRs. This partially completes #264.
The Jenkinsfile supports parameterizing the go version as well as the terraform versions to test against. At the moment, the test matrix (terraform versions) only supports Hashicorp's terraform. However, this can be extended to test against OpenTofu in the future.
The part of #264 that is missing is making the build status of a given commit and the logs available for the given PR. That will need additional investigation to complete. From my reading of the Jenkins GitHub branch source plugin and the GitHub commit status docs, it seems this must be accomplished through a GitHub app. These apps require callback URLs to setup authentication, so from my current research I believe it would require making Jenkins publicly available. That would probably be a non starter, but more investigation needs to be done and alternatives need to be considered.
Testing done: Verified that the build executed against two terraform versions. The build didn't pass but it was due to a flaky issue and is not a real failure.