This patch introduces some sensible configurations to highlight extra
whitespaces and highlight differences from two very identical lines. That makes
pre-commit `--show-diff-on-failure` option more readable and therefore faster
to discover the issue.
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
The GitHub workflow is setting LD_LIBRARY_PATH to the host dmd library
folder with libphobos2.so. The tests are built using a new phobos. They
select the library path using -L-rpath, which sets DT_RUNPATH on the
binary, but LD_LIBRARY_PATH has priority over DT_RUNPATH.
For tests/dshell/dll_cxx.d this caused a link failure, because a new
symbol from phobos was not found in the older phobos.
Reseting LD_LIBRARY_PATH while running the tests makes sure, that the
new phobos is used.
Re-tagging the nighlty release for every build has two disadvantages:
- each build triggers a github notification
- `git fetch --tags` complains about a modified tag
This patch changes the nightly build s.t. it reuses the existing
release and simply updates the associated assets + description.
This means that the implicit timestamp + revision will be outdated.
Therefore I#ve modified the description to include the revision of
each repo.
The `glob` package used by `action-automatic-releases` doesn't support
tilde expansion yet (see isaacs/node-glob#416).
Use an absolute path extracted from the previous shell step instead.
Creates a new action that generates a new release for all currently
supported targets (linux, osx, windows, freebsd) on merges to master.
The release are generated by using `build_all.d` from installer
Those tests broke because of an update on the underlying image.
Since apt was complaining about having broken deps,
and Ubuntu 16.04 is about to be EOL, we upgrade to Ubuntu 18.04.
However, this led to https://issues.dlang.org/show_bug.cgi?id=19116
being triggered, hence the workaround of disabling 32 bits tests.
The DMD change was just noticed while working on this,
and removing those lines makes sure we always use the latest release version.
Unfortunately, the documentation states that `github.base_ref` and `github.head_ref`
are only available in pull requests, so instead we're using `github.ref` when
`github.base_ref` is empty.
The intent is to make this built compiler usable by a Buildkite-like
tester that could run on Github CI and test all three platforms,
using the project's configuration instead of extracting the Travis script.
Currently the runnable scripts error out with:
```
Expected version X.Y.Z, from '/Users/runner/runners/2.168.0/work/dmd/dmd/clang+llvm-9.0.0-x86_64-darwin-apple/bin/clang++-wrapper', got:
/Users/runner/runners/2.168.0/work/dmd/dmd/clang+llvm-9.0.0-x86_64-darwin-apple/bin/clang++-wrapper: line 2: /Users/runner/runners/2.165.2/work/dmd/dmd/clang+llvm-9.0.0-x86_64-darwin-apple/bin/clang++: No such file or directory
```
As can be seen, the ` ${{ github.workspace }}` property points to `/Users/runner/runners/2.168.0/work/dmd/`,
but the script was actually generated and cached on `/Users/runner/runners/2.165.2/work/dmd/`,
an older version of the runner.
Using a path relative to the script ensure that this does not happen anymore.
Additionally, the cache key was changed to force invalidation.
The caching will hopefully save some time in the already fast running actions.
The usage of the correct variable is more future proof, as subtle differences were uncovered while doing the same thing in druntime.
This allows us to test `runnable_cxx` with multiple versions of g++ and clang on linux,
and multiple versions of clang on OSX.
In the future, we can extend it to work on MSVC as well,
but in its current form this can unblock PR 10927.