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.
Intent
This PR adds a validation step after deployment, as in posit-dev/rsconnect-python#511.
Validation is the default but can be disabled by setting
validate = false
in the deployment configuration.Fixes #437
Type of Change
Approach
The Connect client has a new ValidateDeployment method that accesses the deployed content using the user's credentials. This will fail if the app cannot successfully start (for example, it has an import error, or raises an exception in code that runs during import).
This also adds a new event phase
publish/validateDeployment
for the validation step. Since validation takes a couple seconds, this should have its own phase in the progress UI.Automated Tests
Updated existing tests to cover this new step.
Directions for Reviewers
Deploy an app and see the validation step in the log:
Deploy an app that imports a nonexistent package (so it fails startup), and see a validation error:
Set
validate = false
in default.toml, and you should not see any validation activity in the logs.