ci: Ensure Appraisal fetches latest version of dependencies #1086
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.
appraisal install
runsbundle check
first, thenbundle install
ifbundle check
returned false:bundle check
returns true if the gems currently installed in the system can fulfill theGemfile.lock
(or simply theGemfile
, if a lock file is absent).When
bundle check
runs the for first time in our CI, there is noGemfile.lock
available, so it tries to satisfy theGemfile
dependencies, which are lenient (e.g.gem 'excon'
), andbundle check
will consider that dependency fulfilled as long as a version that satisfies the version constraint is installed.In contrast,
bundle install
will always try to fetch the latest version from the remote, and will skip downloading it if it is already present.Unfortunately, there's no API to invoke
appraisal install
withoutbundle check
.This PR cleans up any existing
appraisal
Gemfile
s, withappraisal clean
, which ensuresbundle check
returns false (without aGemfile
,bundle check
fails), and ensuringbundle install
runs for all Appraisal combinations.