-
Notifications
You must be signed in to change notification settings - Fork 37.8k
travis: WIP - build and run tests on os: osx #13816
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
A whitespace slipped in, removed that one (will squash these commits) |
4c65446
to
aaab3b6
Compare
.travis.yml
Outdated
GOAL="install" | ||
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports" | ||
# Cross-Mac | ||
- >- | ||
HOST=x86_64-apple-darwin14 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer if we kept the cross compile on linux, since something similar is used for producing the release binaries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. So it should cross-build on linux and for the purpose of this PR do the build on osx additionally, not instead of!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, both would be fine with me.
aaab3b6
to
a1a1e83
Compare
In my opinion, you could make it run on macos and linux both. Also, please remove the first two commits, e0d9191 and 3144b15. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also think also building on macos is good. The change is pretty big and so this is going to take a while to be merged. Maybe split in multiple PRs, like Replace travis matrix with jobs
?
test/lint/lint-shell.sh
Outdated
shellcheck -e SC2001,SC2004,SC2005,SC2006,SC2016,SC2028,SC2046,SC2048,SC2066,SC2086,SC2116,SC2148,SC2162,SC2166,SC2181 \ | ||
$(git ls-files -- "*.sh" | grep -vE 'src/(secp256k1|univalue)/') | ||
|
||
docker run -t -v $(pwd):/code -t koalaman/shellcheck-alpine:v0.5.0 \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NACK this change. Skip in macos for now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@promag I am unsure about what you mean. This part does not have anything to do with macos. I'd happily factor this one out into a separate pull request.
The lint step is executed in linux/trusty and uses a shellcheck that comes with the distro. It kept segfaulting for me (in travis, not on macos), so I am using a different version which runs in docker and has a different (and more modern) executable in it.
This runs on my mac locally as well as in a linux build in travis equally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't introduce a Docker dependency. If shellcheck
does not run on Mac then just skip it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It does run on Mac. I did not introduce this step because it does not run on mac (it does) – as can be seen in #13728 ). For some reason it does segfault though in the os: linux/dist: trusty
build.
Here is a build where it segfaults: https://travis-ci.org/scravy/bitcoin/jobs/410232096#L623
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@practicalswift What is the problem with a docker dependency? To me it seems like the shellcheck binary in ubuntu trusty is broken and segfaults under certain conditions. Here is an issue: koalaman/shellcheck#1053 The docker image pulled in is the official build of shellcheck.
For me to understand: Introducing a dependency for example using brew
on osx - is that okay or not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@scravy With the suggested change everyone running the linter would effectively be vulnerable if the koalaman
Docker Hub account is compromised.
So a clear NACK from me on this specific change. Try to find a more lightweight workaround that doesn't introduce any additional trust or dependencies.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could run all the linters in a docker on travis, if that helps?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MarcoFalke Running all the linters in a docker container sounds intriguing to me. I might tackle that in a separate pull request. Simply to pull in more recent versions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO docker should not be a developer dependency and so running linters should also be possible without docker.
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
src/chainparams.h
Outdated
double dTxRate; | ||
int64_t nTime; //!< UNIX timestamp of last known number of transactions | ||
int64_t nTxCount; //!< total number of transactions between genesis and that timestamp | ||
double dTxRate; //!< estimated number of transactions per second after that timestamp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please rebase on master to get rid of these changes.
Concept ACK, I encounter macOS specific problems quite often. +1 for keeping the cross-compile version around There's also some difference in compiler noisiness between using depends and not using depends, so it might be worth running |
390da7f
to
781a8ba
Compare
Concept ACK assuming the Docker dependency added in Linting should not require Docker :-) |
I did remove the docker dependency and am curious on whether the build will fail now and shellcheck segfault. I seem to not have communicated this properly: The lint step is run using Looking at this now I am wondering why the shellcheck segfaults on this branch but does not (also in linux) on that branch. |
The lint step indeed failed now. I printed
I will try to install a more recent version of shellcheck via apt. |
@scravy Are we relying on Travis' pre-installed
|
631bd8b
to
227d4e9
Compare
re shellcheck on travis:
Wouldn't it work if you just left it the way it was run before? |
It seems that you extract the travis.yml into bash scripts. Imo it would help review to split this specific change into a separate commit/pull (for just linux). |
.travis.yml
Outdated
language: python | ||
python: '3.6' | ||
install: | ||
- travis_retry pip install flake8 | ||
- travis_retry apt-get install shellcheck -y -q | ||
- echo $USER | ||
- travis_retry sudo apt-get install shellcheck -y -q |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not require sudo if you use
addons:
apt:
packages:
- shellcheck
4e810f0
to
b0fb725
Compare
|
||
echo "configure" | ||
BEGIN_FOLD configure | ||
../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Double quote to prevent globbing and word splitting. Same below. Fix throughout :-)
Verify with shellcheck .travis/test_06_script.sh | grep SC2086
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the config arguments should be split off. No?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, sorry. Was a bit too quick with that comment :-)
Should be marked "up for grabs"? |
83c48d9 fix locale for lint-shell (Julian Fleischer) Pull request description: A piece of code from bitcoin#13816 which I am hereby splitting into smaller PRs. The `shellcheck` executable shipped with travis's trusty linux environment (contains shellcheck `0.3.1` in `/usr/local/bin` as opposed to the distros `0.3.3` in `/usr/bin`) segfaults when `LC_ALL=C`. This makes sure that in travis, no matter from where the script is called, `LC_ALL` is left unset. Comment changed accordingly. Tree-SHA512: 86afa9247f2adbeefa75bf3d56a94766f8e8e1839f40b73763ff7b893a09c848ee64648fc06ce3e6bd0f650127365f508b37fdefb48d61e49f5d551c074cb16e
83c48d9 fix locale for lint-shell (Julian Fleischer) Pull request description: A piece of code from bitcoin#13816 which I am hereby splitting into smaller PRs. The `shellcheck` executable shipped with travis's trusty linux environment (contains shellcheck `0.3.1` in `/usr/local/bin` as opposed to the distros `0.3.3` in `/usr/bin`) segfaults when `LC_ALL=C`. This makes sure that in travis, no matter from where the script is called, `LC_ALL` is left unset. Comment changed accordingly. Tree-SHA512: 86afa9247f2adbeefa75bf3d56a94766f8e8e1839f40b73763ff7b893a09c848ee64648fc06ce3e6bd0f650127365f508b37fdefb48d61e49f5d551c074cb16e
83c48d9 fix locale for lint-shell (Julian Fleischer) Pull request description: A piece of code from bitcoin#13816 which I am hereby splitting into smaller PRs. The `shellcheck` executable shipped with travis's trusty linux environment (contains shellcheck `0.3.1` in `/usr/local/bin` as opposed to the distros `0.3.3` in `/usr/bin`) segfaults when `LC_ALL=C`. This makes sure that in travis, no matter from where the script is called, `LC_ALL` is left unset. Comment changed accordingly. Tree-SHA512: 86afa9247f2adbeefa75bf3d56a94766f8e8e1839f40b73763ff7b893a09c848ee64648fc06ce3e6bd0f650127365f508b37fdefb48d61e49f5d551c074cb16e
Removing "Up for grabs" as we have left Travis and have a "native" macOS build via Cirrus. |
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # test/lint/lint-shell-locale.sh
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # test/lint/lint-shell-locale.sh
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # .travis/test_06_script.sh # test/lint/lint-shell-locale.sh
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # .travis/test_06_script.sh # test/lint/lint-shell-locale.sh
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # .travis/test_06_script.sh # test/lint/lint-shell-locale.sh
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # .travis/test_06_script.sh # test/lint/lint-shell-locale.sh
… `.travis/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3 # Conflicts: # .travis.yml # .travis/test_06_script.sh # test/lint/lint-shell-locale.sh
… `.travis/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
… `.travis/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
… `.travis/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
… `.travis/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
…s/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
… `.travis/` subject to shellcheck 4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d make script exit if a command fails (Julian Fleischer) 506890b move remaining travis build steps into individual files (Julian Fleischer) 272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e273 move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from bitcoin#13816 to make that one easier to review. It follows on bitcoin#13849 and bitcoin#13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
This pull requests enables building and running the project with
os: osx
, sort of natively on os x instead of cross-compiling and not running the tests.To achieve that the
before_install
,install
,before_script
, andscript
parts were externalized into.travis/before_install
etc. These scripts exist for bothlinux
(which runs everything in docker) andosx
(which runs everything directly).Having the steps externalized in individual scripts makes them more readable and subject to
shellcheck
(lint-shell.sh
).The
shellcheck
executable segfaults on me, which is why it's now being run via docker. This has a nice side effect, namely that a more recent version of shellcheck can be used. The runtime of the lint step is not affected to much by it (it's still around 1 minute as it was before).The newer shellcheck also comes with more lint rules of which I disabled some as I did not want to touch too much stuff in this single pull request, which is primarily about a reorganization of the travis build.