Fixes two things:
* $VERSION_GIT_TAG was being misinterpreted by mkver as
$VERSION + "_GIT_TAG". This has been addressed by making the $VERSION
match the last one in the replaceVersionStrings_Mkver function, and
also have moved to using the newer $VersionGitTag and $Environment
vartiables instead.
* The 'dist' property was being set in sentry-cli sourcemap uploads,
though we never set the dist prop when we initialize sentry.
Previously we didn't detect that we were building a .deb package on
Launchpad or a Debian server, so we set VERSION_TAG to end in `-local`.
This change now checks the `KEYMAN_PKG_BUILD` environment variable which
will be set during .deb package builds (set in `debian/rules`). The
downside of this solution is that now `-local` also gets omitted if
we build a .deb package on a local dev machine, but that probably doesn't
happen too often, and even less often with modified source code. The
majority of builds where we want `-local` are local builds that get
installed locally, and those cases are covered by this change. And what
is more important is that for release builds we no longer append `-local`.
`environment.sh` is used only on Mac. This change modifies `build.sh`
to generate this file only when building on Mac. It also excludes
`environment.sh` from the Linux source tarball.
Previously GHA builds always used the "local" environment. This
change now detects test builds as well as release builds and properly
sets the environment.
Enforces -e (abort script on error) and -u (error on unset variable use)
on all scripts that source build-utils.sh. This may result in some
downstream build failures which we'll need to address before merge to
master.
This sets us up to run all common/ and resources/ tests from a single
script, common/build.sh. This test will be run on each platform for all
changes made in common/ or resources/.
Also renamed files and paths for consistency in resources/ and updated
tests accordingly.
Improves build script performance by:
* using built-ins wherever possible (e.g. string splitting)
* eliminating redundant code
* using absolute (to $KEYMAN_ROOT) rather than relative paths to avoid realpath
* removing unnecessary `npm run` calls
BEFORE | AFTER
-------------------------------|----------------------
time ./core/build.sh --help |
real 0m2.116s | real 0m0.874s
user 0m0.578s | user 0m0.198s
sys 0m0.984s | sys 0m0.289s
-------------------------------|----------------------
time ./web/build.sh --help |
real 0m3.523s | real 0m0.757s
user 0m1.166s | user 0m0.320s
sys 0m2.273s | sys 0m0.455s
-------------------------------|----------------------
time ./web/build.sh -d |
real 1m34.750s | real 0m59.974s
user 0m9.721s | user 0m6.284s
sys 0m19.652s | sys 0m13.202s
@keymanapp-test-bot skip
* `builder_has_action` renamed to `builder_start_action`
* `builder_report` renamed to `builder_finish_action`
* `builder_has_action` created to be a silent test for the action
* Added reasonably comprehensive documentation.