Commit Graph

57 Commits

Author SHA1 Message Date
UdjinM6
6f88c070d9
ci: treat all non-protected branches as pull requests 2024-12-09 12:31:56 +03:00
Kittywhiskers Van Gogh
7b0a1f2256
merge bitcoin#28622: use macOS 14 SDK (Xcode 15.0)
continuation of 9e80893a3 from dash#6150
2024-11-16 02:24:19 +00:00
Kittywhiskers Van Gogh
1592a0f92e
ci: update containers and CI to use Ubuntu 22.04 LTS (jammy) 2024-11-02 21:34:10 +00:00
Konstantin Akimov
970048d917
fix: missing changes from bitcoin#19267 - run multiprocess on CI
They run multiprocess build for ALL PRs in travis since that commit

```diff
-      if: type != pull_request OR commit_message =~ /depends:|multiprocess:/ # Skip on non-depends, non-multiprocess PRs
```
2024-07-24 20:06:12 +07:00
Konstantin Akimov
86dd0eabb4
chore: increase amount of build jobs from 4 to 8 for depends 2024-03-17 01:09:41 +07:00
Konstantin Akimov
5065f20655
build: disable multiprocess build in gitlab CI
There's no actual multiprocess code yet, that's just part related to build system.
To test build add an option --enable-multiprocess to configure

So far as there's no real multiprocessing yet, let's save CPU money - last commit in this PR disables gitlab's CI temporary
2024-01-16 09:34:28 -06:00
fanquake
098d0fd430
Merge #18677: Multiprocess build support
e2bab2aa162ae38b2bf8195b577c982402fbee9d multiprocess: add multiprocess travis configuration (Russell Yanofsky)
603fd6a2e708c04ef6c9880f89d0a4cbaa6fc7c5 depends: add MULTIPROCESS depends option (Russell Yanofsky)
5d1377b52bfcd4edf8553aaf332bfeb92fc554cc build: multiprocess autotools changes (Russell Yanofsky)

Pull request description:

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10).

  ---

  This PR consists of build changes only. It adds an `--enable-multiprocess` autoconf option (off by default and marked experimental), that builds new `bitcoin-node` and `bitcoin-gui` binaries. These currently function the same as existing `bitcoind` and `bitcoin-qt` binaries, but are extended in #10102 with IPC features to execute node, wallet, and gui functions in separate processes.

  In addition to adding the `--enable-multiprocess` config flag, it also adds a depends package and autoconf rules to build with the [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) library, and it adds new travis configuration to exercise the build code and run functional tests with the new binaries.

  The changes in this PR were originally part of #10102 but were moved into #16367 to be able to develop and review the multiprocess build changes independently of the code changes. #16367 was briefly merged and then reverted in #18588. Only change since #16367 has been dropping the `native_boost.mk` depends package which was pointed out to be no longer necessary in https://github.com/bitcoin/bitcoin/pull/16367#issuecomment-596484337 and https://github.com/bitcoin/bitcoin/pull/18588#pullrequestreview-391765649

ACKs for top commit:
  practicalswift:
    ACK e2bab2aa162ae38b2bf8195b577c982402fbee9d
  Sjors:
    tACK e2bab2aa162ae38b2bf8195b577c982402fbee9d on macOS 10.15.4
  hebasto:
    ACK e2bab2aa162ae38b2bf8195b577c982402fbee9d, tested on Linux Mint 19.3 (x86_64):

Tree-SHA512: b5a76eab5abf63d9d8b6d628cbdff4cc1888eef15cafa0a5d56369e2f9d02595fed623f4b74b2cf2830c42c05a774f0943e700f9c768a82d9d348cad199e135c
2024-01-16 09:34:26 -06:00
UdjinM6
affcacaa10 feat: cache downloaded releases 2023-09-19 08:54:12 -05:00
UdjinM6
8c4fb2ad3b
ci: set CCACHE_SIZE to 400M for Gitlab (#5547)
## Issue being fixed or feature implemented
Make CI builds faster.

We have this
https://github.com/dashpay/dash/blob/develop/ci/dash/build_src.sh#L18
but by that time `CCACHE_SIZE` is set to 100M via
https://github.com/dashpay/dash/blob/develop/ci/test/00_setup_env.sh#L51
already.

## What was done?
set `CCACHE_SIZE` variable in `.gitlab-ci.yml`, drop confusing and
useless lines from `ci/dash/build_src.sh` (`CCACHE_SIZE` and
`CCACHE_COMPRESS` defaults are handled by `ci/test/00_setup_env.sh`)

## How Has This Been Tested?
I set `CCACHE_SIZE` to 400M yesterday via Gitlab UI to test it.

results:
before, trivial doc change, 100M:
https://gitlab.com/dashpay/dash/-/jobs/4931233566#L59 (~17 minutes)
after, trivial code change, 400M:
https://gitlab.com/dashpay/dash/-/jobs/4935764148#L80 (~12 minutes)

Removed it from Gitlab UI now but it should still say `Set cache size
limit to 400.0 MB` in logs for this PR.

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-08-27 16:15:53 -05:00
Kittywhiskers Van Gogh
66e1541808 merge bitcoin#21851: support cross-compiling for arm64-apple-darwin 2023-06-29 12:31:03 -05:00
Kittywhiskers Van Gogh
ab8c26a533 merge bitcoin#23585: Drop Darwin version for better maintainability 2023-06-29 12:31:03 -05:00
Konstantin Akimov
844ede2eb2 fix: disable ASAN because currently it fails with unknown memory leaks
```
********* Finished testing of TrafficGraphDataTests *********
~BitcoinApplication : Stopping thread
~BitcoinApplication : Stopped thread
==28475==WARNING: invalid path to external symbolizer!
==28475==WARNING: Failed to use and restart external symbolizer!
=================================================================
==28475==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 520 byte(s) in 13 object(s) allocated from:
    #0 0x55fc08e2353d  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0x779153d)
    #1 0x7f7a7724bd85  (<unknown module>)
Direct leak of 432 byte(s) in 2 object(s) allocated from:
    #0 0x55fc08e2353d  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0x779153d)
    #1 0x55fc0dc63b63  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0xc5d1b63)
    #2 0x8604597ff0e8feff  (<unknown module>)
Direct leak of 176 byte(s) in 2 object(s) allocated from:
    #0 0x55fc08e52cad  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0x77c0cad)
    #1 0x55fc0d822372  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0xc190372)
Direct leak of 66 byte(s) in 3 object(s) allocated from:
    #0 0x55fc08e2353d  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0x779153d)
    #1 0x7f7a77243633  (<unknown module>)
Direct leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55fc08e2353d  (/builds/dashpay/dash/build-ci/dashcore-linux64_asan/src/qt/test/test_dash-qt+0x779153d)
    #1 0x7f7a77245449  (<unknown module>)
```
2023-06-07 01:50:18 -05:00
Konstantin Akimov
a3c59cc77a partial merge bitcoin#14794: Add AddressSanitizer (ASan) Travis build 2023-06-07 01:50:18 -05:00
MarcoFalke
3d141a8663 Merge #18899: travis: Remove valgrind
fa082d0a57afedca9122fac4aecd6a3070f06b04 travis: Remove valgrind (MarcoFalke)

Pull request description:

  When the valgrind run was added, it took 2 hours. Travis kindly raised the timeout limit to the maximum possible of 3 hours.

  Today, a full build of Bitcoin Core with all tests takes more than three hours. Thus, it is impossible to run all tests on travis.

  Moreover, the feedback loop for developers that create a pull request takes at least 2 hours, but in some cases (when the travis queue is full) until the next day. This is unacceptable.

  Fix both issues by removing the build from travis.

  Please note that the `ci/test/` configurations are *not* removed. They will stay in the repo and can be executed anywhere (just not on travis).

ACKs for top commit:
  jamesob:
    ACK fa082d0a57
  jnewbery:
    utACK fa082d0a57afedca9122fac4aecd6a3070f06b04

Tree-SHA512: 9acaa0e2d3926014fadb7dd2e86c4e01df382e9399f6ae99f989fa609da66a77bdd1b75d6ff42d2686f38f730b8564e6dc722aa597a473290c9d30c2abe7ef0f
2023-06-07 01:50:18 -05:00
MarcoFalke
86094b631e Merge #17725: ci: Add valgrind run
facb416ad5ba47b01ee52c273a5c5e3709f06f07 ci: Add valgrind run (MarcoFalke)

Pull request description:

  Fixes #17460

ACKs for top commit:
  practicalswift:
    ACK facb416ad5ba47b01ee52c273a5c5e3709f06f07

Tree-SHA512: 55396e548a76f976d7b7170b68bc5f93cfd44656162267172f66db7eb549699a2a22d3b1bb0d5f180fe0697931939e652c8cdb86b435e81e7ce572485798009d
2023-06-07 01:50:18 -05:00
UdjinM6
0cbf85a6d2
fix(ci): only run jobs when their ancestors on prevoius stages succeeded (#5412)
## Issue being fixed or feature implemented
We should not be running jobs if their ancestors failed. This was broken
with the introduction of `FAST_MODE`/`.skip-in-fast-mode-template` I
think (via #3635).

## What was done?
Adjust ci rules, make them explicit.

## How Has This Been Tested?
Compare `test` stages:
https://gitlab.com/dashpay/dash/-/pipelines/888510672 (note: some of
`test` stage jobs were started, even though all related jobs from
`build` stage have failed)
vs
https://gitlab.com/UdjinM6/dash/-/pipelines/888923382 (note: none of
`test` stage jobs were started)


## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-06 11:54:29 +03:00
Kittywhiskers Van Gogh
0b6ad25239 ci: add substitute linux64 ubsan runner 2023-05-31 11:06:40 -05:00
Kittywhiskers Van Gogh
ca564f40f2 ci: drop i686 from GitLab CI runs 2023-05-31 11:06:40 -05:00
Kittywhiskers Van Gogh
8b054d49c7 ci: harmonize parent images, use focal consistently 2023-05-11 09:18:48 -05:00
UdjinM6
f4eaf5a782
fix(ci): skip more jobs in "FAST_MODE" (#5311)
## Issue being fixed or feature implemented
CI should not be running that many jobs in "FAST_MODE"
https://github.com/dashpay/dash/blob/develop/.gitlab-ci.yml#L5

## What was done?
assign `.skip-in-fast-mode-template` template to more jobs

## How Has This Been Tested?
ran CI in my repo
before: https://gitlab.com/UdjinM6/dash/-/pipelines/832175740
after: https://gitlab.com/UdjinM6/dash/-/pipelines/832176325

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation

**For repository code-owners and collaborators only**
- [ ] I have assigned this pull request to a milestone
2023-04-14 16:56:40 -05:00
Kittywhiskers Van Gogh
daa40ea8c6 ci: add sqlite-only linux64 test build 2023-02-17 14:21:19 -06:00
Kittywhiskers Van Gogh
e74c41bf80
ci: bump docker and docker-dind to 20.10.20 for gitlab (#5045) 2022-11-02 10:28:18 -05:00
UdjinM6
8b37fd616a
fix(ci): disable --tls explicitly (#5068)
see https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27300#note_621025442
2022-10-31 13:08:46 -05:00
Kittywhiskers Van Gogh
c52992aaa4 ci: reconcile differences between ci setups 2022-07-01 09:04:01 +05:30
Kittywhiskers Van Gogh
eb52580c0b ci: remove redundant "release" build fulfilled by qt 2022-07-01 09:02:53 +05:30
Kittywhiskers Van Gogh
9dc1c8ebf9 ci: exclude fuzzing harnesses from resulting build artifact archive 2022-03-25 01:46:55 +05:30
Kittywhiskers Van Gogh
8f14c3e2e2 fuzz: add gitlab build support, use clang 2022-03-17 19:23:55 +05:30
gabriel-bjg
f73fce7782
ci: Enable tsan on linux64 build (#4563)
Make fMixing atomic as it has concurrent access
Add tsan suppression for zmq namespace
Suppress deadlock false positive in ConnectTip
Switch ubsan target to linux32
Add new test job for linux64_cxx17 target without any sanitizers
Increase rpc time out for block reward reallocation test
Fix heap use after free in CConnman::GetExtraOutboundCount()
Different builds for linux32 and linux64 tsan and ubsan
Increase timeout for llmq_signing functional test
2022-01-10 11:31:45 -06:00
Kittywhiskers Van Gogh
06b595b6ee build: relocate dash-specific CI scripts to its own directory 2021-12-19 14:04:16 +05:30
Kittywhiskers Van Gogh
607707f9f9 build: relocate CI docker container to dedicated directory 2021-12-19 14:04:13 +05:30
PastaPastaPasta
683be4086e
build: enable experimental Cxx20 support (#4600)
* build: Add optional c++20 compilation option

* build: update ax_cxx_compile_stdcxx.m4 to be compatible with c++20

* fix: fix c++20 build error for undefined identifier

* ci: enable c++20 build during ci

* cxx17 -> cxx20

Signed-off-by: pasta <pasta@dashboost.org>
2021-12-12 01:14:17 +03:00
UdjinM6
7b94386da3
ci: Drop excessive $CI_PROJECT_DIR (#4485)
Paths are relative to `$CI_PROJECT_DIR`:
https://docs.gitlab.com/ee/ci/yaml/index.html#cachepaths
https://docs.gitlab.com/ee/ci/yaml/index.html#artifactspaths
2021-10-05 19:58:19 +03:00
PastaPastaPasta
07b1d52b03
Merge pull request #4477 from kittywhiskers/dependsbp
merge bitcoin#19817, bitcoin#20470, bitcoin#22993: macOS C++17 bump
2021-10-05 12:05:35 -04:00
Kittywhiskers Van Gogh
5856f2c124 merge bitcoin#22993: set OSX_MIN_VERSION to 10.15 2021-10-05 08:04:26 +05:30
Kittywhiskers Van Gogh
091477d853 merge bitcoin#19817: macOS toolchain bump 2021-10-05 08:04:26 +05:30
UdjinM6
3c4d02a85f
ci: Generate new cache key when ci/Dockerfile.builder changes (#4483)
See https://docs.gitlab.com/ee/ci/yaml/index.html#cachekeyfiles
2021-10-05 02:43:42 +03:00
UdjinM6
75d176629e
ci: Exclude some less important binaries to reduce the size of the artifacts (#4441) 2021-09-19 00:30:07 +03:00
Kittywhiskers Van Gogh
d451833380 merge #20419: set minimum supported macOS to 10.14 2021-09-03 21:35:53 +05:30
Kittywhiskers Van Gogh
6349b7e401 merge #19240: macOS toolchain simplification and bump 2021-09-03 17:49:55 +05:30
Wladimir J. van der Laan
07a7fda225
Merge #15939: gitian: Remove Windows 32 bit build
fa193dc8e6f3b96fa2dba2f1c1668f7720fed320 doc: Remove win32 from the release process (MarcoFalke)
faf666f8148eeb305a9c4f78459aff2c7268016b Remove Windows 32 bit build (MarcoFalke)

Pull request description:

  The Windows 32 bit build has been removed from https://bitcoincore.org/en/download/, so unless there are complaints, we don't need to build it even

ACKs for commit fa193d:
  fanquake:
    utACK fa193dc8e6

Tree-SHA512: d6f2976a2e0c407698f720b00ac23ec4056626de4eff8621f4c5581120af0460afd1bdef72329cc0e7d92afca48d94ae5fce6777cb36bfabb60b8034ff08fd88
2021-09-02 22:27:58 +03:00
Kittywhiskers Van Gogh
a358d2e593 merge #16392: macOS toolchain update 2021-09-02 01:55:01 +05:30
Kittywhiskers Van Gogh
ced48380b8 partial merge #17550: set minimum supported macOS to 10.12 2021-08-31 11:16:04 +05:30
UdjinM6
704d34b2e4
bls|ci: Fix C++17 build, add it to CI (#4055)
* ci: Add C++17 build

* bls: Add explicit CBLSSecretKey copy ctor and operator=
2021-04-28 16:44:01 +02:00
dustinface
2ec8f21c4a
gitlab: Typo nowalet -> nowallet (#4004) 2021-02-17 21:13:33 +01:00
MarcoFalke
39ff085409
Merge #13617: release: require macOS 10.10+
3828a79711 scripted-diff: prefer MAC_OSX over __APPLE__ (fanquake)
fa6e841e89 gui: remove macOS ProgressBar workaround (fanquake)
68c272527f gui: remove SubstituteFonts (fanquake)
6c6dbd8af5 doc: mention that macOS 10.10 is now required (fanquake)
84b0cfa8b6 release: bump minimum required macOS to 10.10 (fanquake)
26b15df99d depends: set OSX_MIN_VERSION to 10.10 (fanquake)

Pull request description:

  Closes #13362

  d99abfddb0c8f2111340a6127e77cc686e0043d8
  This workaround should no longer be required, as it should have only been in use when compiled with the 10.7 SDK, which we haven't been building with for a while now.

  5bc5ae30982a0f0f6a9804b05d99434af770c724
  The bugreport linked with this code is for an unrelated? issue, however from what I can tell the correct QTBUG is this one https://bugreports.qt.io/browse/QTBUG-20880. Reading though the discussion there, it seems that the way progress bars are animated changed in macOS 10.10.
  Qt was patched [here (5.5+)](https://codereview.qt-project.org/#/c/112379/):
  > Disable progress bar animations on 10.10 Yosemite and higher - the native style does not animate them any more. Keep the indeterminate progress bar animation.

  Given all of that, I don't think this is worth keeping around, as it would seem to only be useful in the case that a macOS user is compiling with a Qt < 5.5. That should be pretty unlikely, as we don't support downloaded Qt binaries, and brew currently provides [5.11.1](571b46213c/Formula/qt.rb).

Tree-SHA512: 4278cb30cc9bcb313e166129ecf032c808995f8b51a3123637c47860a0010ac88f86f82ec44792153b6b1e5cca595f25013b2eaeae80194647b9ce4f7eaf32c1
2020-12-18 01:14:34 +03:00
UdjinM6
62551a220a
ci: Add workflow:rules to fix Gitlab warnings (#3679) 2020-08-30 17:24:26 +03:00
PastaPastaPasta
95625df193
ci: Introduce FAST_MODE Gitlab variable (#3635)
* Introduce FAST_MODE Gitlab variable

Default: "false". When "true", only run linter on arm and unit/functional tests on linux64, skip everything else.

* fix ordering I accidentially somehow changed

Signed-off-by: pasta <pasta@dashboost.org>

* remove x86_64-unknown-linux-gnu

Signed-off-by: pasta <pasta@dashboost.org>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-08-01 23:03:35 +03:00
PastaPastaPasta
b07a7b810c
Backport 11796 + 11774 (#3612)
* Merge #11796: [tests] Functional test naming convention

5fecd84 [tests] Remove redundant import in blocktools.py test (Anthony Towns)
9b20bb4 [tests] Check tests conform to naming convention (Anthony Towns)
7250b4e [tests] README.md nit fixes (Anthony Towns)
82b2712 [tests] move witness util functions to blocktools.py (John Newbery)
1e10854 [tests] [docs] update README for new test naming scheme (John Newbery)

Pull request description:

  Splitting #11774 into two parts -- this part updates the README with the proposed naming convention, and adds some checks to test_runner.py that the number of tests violating the naming convention doesn't increase too much. Idea is this part of the change should not introduce merge conflicts or require much rebasing, so reviews of the complicated bits won't become invalidated too often; while the second part will just be file renames, which will require regular rebasing and will introduce merge conflicts with pending PRs, but can be merged later, and should also be much easier to review, since it will only include relatively trivial changes.

Tree-SHA512: b96557d41714addbbfe2aed62fb5a48639eaeb1eb3aba30ac1b3a86bb3cb8d796c6247f9c414c4695c4bf54c0ec9968ac88e2f88fb62483bc1a2f89368f7fc80

* update violation count

Signed-off-by: pasta <pasta@dashboost.org>

* Merge #11774: [tests] Rename functional tests

6f881cc880 [tests] Remove EXPECTED_VIOLATION_COUNT (Anthony Towns)
3150b3fea7 [tests] Rename misc functional tests. (Anthony Towns)
81b79f2c39 [tests] Rename rpc_* functional tests. (Anthony Towns)
61b8f7f273 [tests] Rename p2p_* functional tests. (Anthony Towns)
90600bc7db [tests] Rename wallet_* functional tests. (Anthony Towns)
ca6523d0c8 [tests] Rename feature_* functional tests. (Anthony Towns)

Pull request description:

  This PR changes the functional tests to have a consistent naming scheme:

      tests for individual RPC methods are named rpc_...
      tests for interfaces (REST, ZMQ, RPC features) are named interface_...
      tests that explicitly test the p2p interface are named p2p_...
      tests for wallet features are named wallet_...
      tests for mining features are named mining_...
      tests for mempool behaviour are named mempool_...
      tests for full features that aren't wallet/mining/mempool are named feature_...

  Rationale: it's sometimes difficult for new contributors to know what's already covered by existing tests and where new tests should be added. Naming in a consistent fashion makes it easier to see what's already covered at a glance.

Tree-SHA512: 4246790552d42bbd95f6d5bdf67702b81b3b2c583ce7eaf1fe6d8e254721279b47315973c6e9ae82dad6e4c747f12188160764bf2624c0f8f3b4d39330ec8b16

* rename tests and edit associated strings to align test-suite with test name standards

Signed-off-by: pasta <pasta@dashboost.org>

* fix grammar in test/functional/test_runner.py

Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>

* ci: Fix excluded test names

* rename feature_privatesend.py to rpc_privatesend.py

Signed-off-by: pasta <pasta@dashboost.org>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
2020-07-17 02:44:20 +03:00
UdjinM6
36e18d9b48
Add INTEGRATION_TESTS_ARGS gitlab-ci variable (#3605)
This allows tweaking integration tests params on the fly (in Gitlab GUI https://docs.gitlab.com/ee/ci/variables/#create-a-custom-variable-in-the-ui).
2020-07-14 16:12:54 +03:00
UdjinM6
397630a82c
CI: Fix Gitlab nowallet and release builds (#3491) 2020-05-18 15:26:53 +03:00