keymanapp / keymanapp/keyman

maint(common): use `gosh` to launch any shell scripts in TC build configuration steps

Open
#13,822 1 comment 0 reactions 1 assignee Claimed by @mcdurdin View on GitHub
common/ maint
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

I have introduced a new 'parameter' on teamcity: %gosh% which will expand to `%system.teamcity.build.checkoutDir%/keyman/resources/gosh/gosh` so we can use that anywhere we need cross-platform bash trigger.

I have updated just [Android: Test](https://build.palaso.org/admin/editBuildRunners.html?id=buildType:KeymanAndroid_TestPullRequests) to use a similar pattern for now to verify that it works, but will need to revisit that build configuration when I do this work.

1. It looks like #3159 accidentally renamed `gosh` to `gosh.sh` which breaks the 'resources/gosh/gosh` call pattern. We need to fix this. (It was noted in the PR but never got resolved)
2. ~~Update gosh.js to call `/usr/bin/env bash` instead of `/bin/bash`.~~ This is not necessary because /bin/bash will use the shebang to load the appropriate version of bash.
3. Update build steps to use `.../resources/gosh/gosh` to be the command (perhaps with `%gosh%`) and then pass the script and parameters as parameters -- simplifies the build configurations by removing scripts from the steps. Note: this does not appear to work because 'gosh.bat' is not a win32 application and so TC gets confused. We _may_ be able to add a gosh.exe which does the same job.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.