The `grep` available on macOS doesn't have the `--perl-regexp` option,
so the changes introduced in #14047 caused a regression. This change
directly makes use of Perl which is available on macOS.
Fixes: #14146
Follow-up-of: #14047
Test-bot: skip
This modifies the build triggers so that changes in `resources/teamcity` don't trigger builds on all platforms anymore. If a change happened in `resources/teamcity/$platform` or `resources/teamcity/includes` it will trigger a build for `$platform`.
Since bash doesn't support negative look-aheads we use `grep` with the Perl regex option.
Fixes: #13943
This change addresses code review comments. `common` and `core` also
have TC build configs, so we add labels for them as well.
Co-authored-by: Marc Durdin <marc@durdin.net>
Previously, if we had to install a new node version, we activated it in
the same subshell as the installation. This had the effect that `NVM_BIN`
was set to the new version only in the subshell, but otherwise it still
had the wrong value. This caused build failures. Subsequent builds would
succeed because the node version was now available.
This change fixes things by using an explicit `if` instead of the
construct with parens which opened another subshell.
Fixes: #14056
Test-bot: skip
This modifies the build triggers so that changes in `resources/teamcity`
don't trigger builds on all platforms anymore. If a change happened in
`resources/teamcity/$platform` or `resources/teamcity/includes` it will
trigger a build for `$platform`.
Since bash doesn't support negative look-aheads we use `grep` with the
Perl regex option.
Part-of: #13943
Build-bot: skip
This are a little early but good to have in place. Per release process
wiki, this should have been done at time of 18.0 stable release but
was missed (by me).
* Change zip_files to add_zip_files
* Clarify flags used for zip vs 7z
* Use `zip-excludes` instead of `excludes.in` for the list of file to exclude from the archive
This change moves the `build_is_ci_*` functions from `resources/build/build-utils-ci.inc.sh` → `resources/builder.inc.sh`.
It also adds documentation for them.
Fixes: #13885Fixes: #13886
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
This change moves the `build_is_ci_*` functions from
`resources/build/build-utils-ci.inc.sh` → `resources/builder.inc.sh`.
Fixes: #13885
Test-bot: skip
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
Previously the builder scripts defined a readonly `VERSION` environment variable for the Keyman version. That caused problems when another (external) script tried to define a `VERSION` variable. We encountered this problem when trying to move the TC build steps of a configuration into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.
This change uses a Keyman specific prefix for the version variables and renames `VERSION` → `KEYMAN_VERSION` etc. as well as `TIER` → `KEYMAN_TIER`. Unfortunately these variables are used in a lot of places, so this turned out to be a bit of a yak shave.
If we're not running on TC we should output the start/end messages as
headings unless it's a child build. This was the previous behavior
before we added support for TC blocks.
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.
This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.
Test-bot: skip
This change adds support for TC blocks of service messages (https://www.jetbrains.com/help/teamcity/service-messages.html#Blocks+of+Service+Messages) and starts/ends a block in the `builder_start_action`/`builder_finish_action` functions. We output the TC block service messages only if we're running on TC, i.e. if the `TEAMCITY_GIT_PATH` environment variable is set.
Part-of: #13399