[steps] Resolve absolute working_directory
paths from repository root
#484
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.
Why
With Workflows I expect more and more users will want to execute scripts related less to mobile app, in directories other than that of the mobile app.
Currently,
working_directory
works like this:working_directory: scripts
if base directory isapps/mobile
ends up being/home/expo/build/apps/mobile/scripts
working_directory: /usr/local/bin
ends up being/usr/local/bin
.This makes it cumbersome to execute scripts in directories other than that of mobile app. Say, a user wants to execute scripts in
/apps/web
. If base directory isapps/mobile
, they'd need to use../web
. This makesworking_directory
coupled to base directory set in GitHub repository settings.How
Here I'm special-casing absolute
working_directory
paths. I expect very few people to need to execute scripts in FS-absolute paths (/usr/local/bin
). So now it is going to work like this:working_directory: scripts
if base directory isapps/mobile
ends up being/home/expo/build/apps/mobile/scripts
working_directory: /usr/local/bin
ends up being/home/expo/build/usr/local/bin
.Test Plan
Adjusted tests.
Also tested manually. A workflow like
produces output like this