Commit Graph

472 Commits

Author SHA1 Message Date
teor 65b0a8b6fa
fix(ci): split NU5 sync into two GitHub actions jobs (#4840)
* Split the NU5 job at block 1,740,000

* Fix the split regex

* Fix the lightwalletd sync to tip regex
2022-07-29 00:43:47 +00:00
teor 1cad4c5218
fix(ci): split canopy sync into a separate GitHub actions job (#4838)
* Split Canopy and NU5 sync jobs

* Look for cached state disks for this commit and branch first
2022-07-29 07:07:29 +10:00
teor 89a0410e23
fix(ci): fix hangs in lightwalletd tests by checking concurrent process output in different threads (#4828)
* Make code execution time logs shorter

* Do ZK parameter preloads in the lightwalletd tests that need them

* Try to re-launch `lightwalletd` when it hangs during sync tests

* Increase full sync timeout

* Clear the `zebrad` logs during `lightwalletd` tests, to avoid logging deadlocks

* Actually clear more than one line of logs

* Check zebrad and lightwalletd output in parallel threads, while waiting for zebrad

* Check zebrad and lightwalletd output in parallel threads, while waiting for lightwalletd

* Improve test logging

* Fix a log typo

* Only wait for lightwalletd once, because its logs stop after the initial sync

* Look for cached state disks for this commit and branch first

* Only copy the state once in the send transactions test

* Wait longer for lightwalletd gRPC server startup

* Add some function docs

* cargo fmt --all
2022-07-29 07:06:18 +10:00
teor a9fcde3ebf
1. add(ci): Add a Zebra cached state update test, fix lightwalletd tests (#4813)
* Fix clippy::let_and_return

* Increase lightwalletd test timeouts for zebrad slowness

* Add a `zebrad_update_sync()` test, that update syncs Zebra without lightwalletd

* Run the zebrad-update-sync test in CI

* Add extra zebrad time to workaround lightwalletd bugs
2022-07-26 08:13:25 +10:00
dependabot[bot] dc9da24c8b
build(deps): bump tj-actions/changed-files from 23 to 24 (#4807)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 23 to 24.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v23...v24)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-22 18:23:58 +00:00
Alfredo Garcia 21d3af4b8d
update release list with checkpoints bump (#4800) 2022-07-21 13:44:40 +10:00
teor cf4b2f7a67
feat(verify): Concurrently verify proof and signature batches (#4776)
* Initialize the rayon threadpool with a new config for CPU-bound threads

* Verify proofs and signatures on the rayon thread pool

* Only spawn one concurrent batch per verifier, for now

* Allow tower-batch to queue multiple batches

* Fix up a potentially incorrect comment

* Rename some variables for concurrent batches

* Spawn multiple batches concurrently, without any limits

* Simplify batch worker loop using OptionFuture

* Clear pending batches once they finish

* Stop accepting new items when we're at the concurrent batch limit

* Fail queued requests on drop

* Move pending_items and the batch timer into the worker struct

* Add worker fields to batch trace logs

* Run docker tests on PR series

* During full verification, process 20 blocks concurrently

* Remove an outdated comment about yielding to other tasks
2022-07-18 08:43:29 +10:00
teor a55262c3ac
Make the release checklist shorter and hide some details (#4712)
* Make the release checklist shorter and hide some details

* Ignore any `fastmod` updates to previous release notes in `CHANGELOG.md`

* Use recent versions in examples

* Fix markdown that doesn't render correctly

* Fix some weird line breaks

* Use capital letters to start list items

* Clarify `fastmod` and `CHANGELOG.md`

* Clarify version format by changing highlighting
2022-07-07 20:31:19 +00:00
teor c27166013d
Split out Canopy logs into a separate job (#4730) 2022-07-06 22:46:26 +00:00
teor 67dc26fbb5
fix(ci): Split Docker logs into sprout, other checkpoints, and full validation (#4704)
* Checkout zebra in each job to avoid warnings

But put TODOs where we might be able to skip checkouts

* Split log following into sprout checkpoints, sapling/orchard checkpoints, and full validation

* Make job IDs shorter

* Use /dev/stderr because docker doesn't have a tty

* remove pipefail

* Revert "remove pipefail"

This reverts commit a7ee37bebdc107a4215e7dd307b189d925969234.

* Make tee ignore errors writing to a grep pipe

* Avoid launching multiple docker instances for duplicate jobs

* Ignore broken pipe error messages and statuses

* fix(ci): docker wait not finding container

We had this issue before, I can't recall if this was a parsing error between GitHub Actions and gcloud `--command` parsing, but we had to change this into two pieces.

This implementation keeps it how we did it before 9b9578c999/.github/workflows/test.yml (L235-L243)

* docs: remove pending TODO

We can't remove  `actions/checkout` nor set `create_credentials_file` to `false` as next steps won't be able to authenticate to GCP.

We can surely remove `actions/checkout` and leave `create_credentials_file` as `true`, but this will raise a warning on each step, and there's no benefit of doing so.

* Show `docker wait` and `gcloud ssh` output

* If `docker wait` fails, get the exit code using `docker inspect`

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-06-30 10:33:01 +00:00
dependabot[bot] b29b4dbf6c
build(deps): bump reviewdog/action-actionlint from 1.26.0 to 1.27.0 (#4722)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: reviewdog/action-actionlint
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-29 23:56:01 +00:00
dependabot[bot] 37e83e44df
build(deps): bump reviewdog/action-actionlint from 1.25.1 to 1.26.0 (#4695)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.25.1 to 1.26.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.25.1...v1.26.0)

---
updated-dependencies:
- dependency-name: reviewdog/action-actionlint
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-28 04:01:48 +00:00
teor cbd703b3fc
refactor(ci): Split `docker run` into launch, `logs`, and `wait` (#4690)
* Put arguments to "docker run" on different lines

And update some comments.

* Split docker run into launch, logs, and wait

* Remove mistaken "needs state" condition on log and results job

* Exit the ssh and the job with the container test's exit status
2022-06-28 00:36:18 +00:00
teor b35ab67ef0
fix(ci): Split instance and volume creation out of the test job (#4675)
* Split full sync into checkpoint and full validation

* Sort workflow variables into categories and add descriptions

* Split Create instance/volume and Run test into separate jobs

* Copy initial conditions to all jobs in the series
2022-06-23 23:22:52 +00:00
teor 20850b4cb4
fix(ci): actually create a cached state image after running a sync (#4669)
* Actually create a cached state image

* fix(state): use same disk naming convention for all test instances

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-06-22 21:54:37 +00:00
teor 257f017382
fix(ci): Remove redundant build-chain-no-features job (#4656)
* Remove redundant build-chain-no-features

* Remove redundant job from patch file

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-06-22 11:41:45 +00:00
Gustavo Valverde d2d4f5a67e
fix(build): add `beta` rust to CI (#4637)
* fix(build): add `beta` rust to CI

* fix(ci): remove macos-latest with beta Rust combination
2022-06-22 04:35:18 +00:00
teor 4f4c9c42c9
fix(ci): update OS patch jobs for Rust & feature changes (#4668)
* Update OS patch jobs for Rust & feature changes

* Restore a patch job that is actually deleted in another PR
2022-06-22 01:18:49 +00:00
Gustavo Valverde b6a59a9f66
feat(ci): build each crate individually (#4640)
* feat(ci): build each crate individually

* fix(ci): use valid names for each job

* feat(ci): builds and checks with and without all features

* refactor(ci): build job matrix dinamically

* fix: use a JSON_CRATES variable with resulting values

* test: check-matrix

* fix(ci): use "crate" in singular for reference

* imp(ci): use a matrix for feature build arguments

* fix(ci): use correct naming and includes

* fix(ci): implement most recommendations given in review

* fix(ci): use simpler shell script

* fix: typo

* fix: add string to file, not cmd

* fix: some shellchecks

* fix(ci): remove warnings and errors from shellcheck

* imp(ci): add patch file for `Build crates individually` workflow

* Remove unused configs in patch job

Co-authored-by: teor <teor@riseup.net>
2022-06-21 02:30:45 +00:00
teor 961fcb621e
Add a "Rust doc" patch job (#4654) 2022-06-21 09:30:48 +10:00
Gustavo Valverde 3b3b59f71a
ci(docs): test `cargo doc` warnings and errors (#4635)
* ci(docs): test `cargo doc` warnings and errors

* ci(docs): remove minimal profile

* ci(docs): revert minimal and fix component name

* ci(docs): try cargo doc alone
2022-06-20 02:10:13 +00:00
Gustavo Valverde e1a7a305d2
imp(docs): manage`cargo-mdbook` as a GitHub action (#4636)
* imp(docs): manage`cargo-mdbook` as a GitHub action

* fix(docs): keep mdbook-mermaid
2022-06-17 05:29:50 +00:00
Gustavo Valverde 8160b4c35a
feat(actions): delete old GCP resources (#4598)
* feat(actions): delete old GCP resources

* fix(ci): delete old instances templates

* fix(actions): use correct date arguments and conversion

* fix(actions): missing command in gcloud

* fix(gcp): if an instance can't be deleted, continue

* refacor(action): cleanup and execute monthly
2022-06-15 21:59:55 +00:00
Gustavo Valverde 3ec6bd4c29
ci(lightwalletd): Zebra's Dockerfile needs `latest` lwd image (#4599)
We need to add this condtion to lightwalletd docker build, to always create a `latest` tag when merging to the default branch: `main`
2022-06-13 21:38:18 +00:00
Marek 64ac9e4cc2
Change the order of instructions for creating a release (#4595) 2022-06-13 21:26:58 +00:00
Conrado Gouvea e016bbe8e3
increase lightwalletd timeout, remove testnet tests (#4584)
* increase lightwalletd timeout

* switch back to aditya's fork

* manually point to new aditya's lightwalletd image

* disable sync_one_checkpoint_testnet test

* disable restart_stop_at_height in testnet

* rever to 'latest' lightwalletd image
2022-06-13 20:13:30 +00:00
dependabot[bot] bbf77e53e4
build(deps): bump w9jds/firebase-action from 2.2.0 to 2.2.2 (#4592)
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from 2.2.0 to 2.2.2.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v2.2.0...v2.2.2)

---
updated-dependencies:
- dependency-name: w9jds/firebase-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-13 17:24:46 +00:00
dependabot[bot] 45c3d73277
build(deps): bump tj-actions/changed-files from 22 to 23 (#4593)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 22 to 23.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v22...v23)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-13 17:24:27 +00:00
dependabot[bot] 3985bd151e
build(deps): bump w9jds/firebase-action from 2.1.2 to 2.2.0 (#4588)
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from 2.1.2 to 2.2.0.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v2.1.2...v2.2.0)

---
updated-dependencies:
- dependency-name: w9jds/firebase-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-10 19:46:19 +00:00
Marek e31449ecdd
Update `release-checklist.md` (#4568) 2022-06-04 00:59:42 +00:00
Gustavo Valverde 8d6957f39b
ci(mergify): do not create draft PRs if not needed (#4540)
* fix(ci): do not create draft PRs if not needed
2022-06-01 14:40:56 -04:00
teor 61afd02a98
fix(ci): test RPCs with zcash/lightwalletd, to fix post-NU5 failures in adityapk00/lightwalletd (#4553)
* Remove a duplicate lightwalletd error message

* Reactivate some error messages that have been fixed

* Fix confusing lightwalletd cached state path logs

* Add the gRPC tests to the lightwalletd test suite function

* Make test regexes compatible with zcash/lightwalletd

* Add logging to gRPC tests

* Switch to zcash/lightwalletd for testing
2022-06-01 07:36:59 -04:00
dependabot[bot] a92bce352e
build(deps): bump tj-actions/changed-files from 21 to 22 (#4541)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 21 to 22.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v21...v22)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 11:30:42 +00:00
teor ca0520b2e8
change(deps): Upgrade tracing-subscriber and related dependencies (#4517)
* Upgrade tracing and related dependencies

```sh
cargo upgrade --workspace
tracing-error
tracing-subscrber

color-eyre

tracing-flame
tracing-journald

sentry
sentry-tracing

metrics
metrics-exporter-prometheus
reqwest
```

* Update duplicate dependency checks

* Enable the tracing/env-filter feature

* Fix type inference for metrics

Manual changes, plus:
```sh
fastmod "as _" "as f64"
```

* Tidy up some unrelated test code

* Update metrics-exporter-prometheus API

And make unused dependencies optional.

* Adjust test regexes to new tracing format

Also fix some regex bugs, and refactor to simplify.

* Disable color-eyre span traces and track caller in release builds

* Add a feature that enables extra debugging in release builds

* Clean up some redundant features

* Increase a test timeout
2022-06-01 13:53:51 +10:00
dependabot[bot] bfa319de10
build(deps): bump tj-actions/changed-files from 20 to 21 (#4510)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 20 to 21.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v20...v21)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-05-30 21:59:49 +00:00
Dimitris Apostolou b4eb7b9509
Fix typo (#4527) 2022-05-30 11:59:34 +10:00
teor c50ee7e478
fix(ci): Add lightwalletd gRPC, clippy, rustfmt patch jobs (#4518)
* Add lightwalletd-grpc-test patch job

* Patch Clippy and Rustfmt CI jobs

* Only run docker always patches on PRs

* Only run docker patches on PRs
2022-05-27 14:49:22 +10:00
Alfredo Garcia 49997621ea
feat(ci): add grpc tests to CI (#4453)
* add CI for `lightwalletd_wallet_grpc_tests`

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-26 11:38:00 +00:00
Gustavo Valverde 374fb7b34f
refactor(ci): allow more time for tests to end gracefully (#4469)
* refactor(ci): keep tests jobs under the 6 hour timeout

When running a full sync or any other test which takes almost 5 hours, having those jobs running with other actions that might take several minutes, also reduces the overall time from the job_id.

We use a separate job for image creation and deletion to handle this cases.

* fix(ci): instance deletion can't run on non finished tests

* fix(ci): tests without a cached state might save to disk

* fix(ci): ignore failures when deleting an instance

* fix(ci): remove delete step `needs` redundancy

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-05-26 06:12:45 +00:00
Deirdre Connolly 9e590839ff
change(ci): run coverage on stable (#4465)
* Run coverage on stable

* Update .github/workflows/coverage.yml

Co-authored-by: teor <teor@riseup.net>

* fix(ci): sync patch file

* fix(ci): timeout and docs

Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-05-26 00:28:02 +00:00
Gustavo Valverde 0e2831dfb1
feat(ci): add a codespell linting action (#4482)
* feat(ci): add a codespell linting action

* fix(ci): run this job if the lint workflow is changed

* ci(codespell): add configuration file

* ci(codespell): exclude mermaid.min.js

* fix: wrong mermaid.min.js location

* ci(codespell): Sur from "Big Sur" is being considered as misspelled

* ci(codespell): make warning the max level

This won't restrict PRs from merging

* ci(codespell): lint on every push

* test: create a misspelling

* Revert "test: create a misspelling"

This reverts commit a2c91cda1e.
2022-05-26 00:27:44 +00:00
teor a6aa4398f4
Always run patch jobs that depend on cached cloud disks (#4496) 2022-05-25 22:19:40 +00:00
Gustavo Valverde abef3842ce
fix(ci): mount the lwd-cache dir to the `lightwalletd-full-sync` (#4486)
* fix(ci): allow for the lightwalletd-full-sync to mount the lwd-cache dir

* fix(ci): compare with a string

* imp(ci): run a lightwalletd tip if there's no lwd tip disk available

* docs(ci): add TODO explaining this is a  temporal condition
2022-05-25 11:39:03 -04:00
dependabot[bot] e4ca6c358e
build(deps): bump reviewdog/action-actionlint from 1.25.0 to 1.25.1 (#4479)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.25.0 to 1.25.1.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.25.0...v1.25.1)

---
updated-dependencies:
- dependency-name: reviewdog/action-actionlint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-24 19:16:31 +00:00
dependabot[bot] 703e621734
build(deps): bump google-github-actions/auth from 0.7.3 to 0.8.0 (#4478)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.7.3 to 0.8.0.
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/auth/compare/v0.7.3...v0.8.0)

---
updated-dependencies:
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-24 19:16:18 +00:00
Gustavo Valverde 9335f68409
fix(ci): set a network env variable to be used in `get-available-disks` (#4477)
* fix(ci): set a network env variable to be used in `get-available-disks`

* docs(ci): improve comment
2022-05-24 14:59:31 -04:00
teor 92736807a2
Increase clippy timeout (#4472) 2022-05-24 09:03:56 +00:00
teor 49406f3132
fix(ci): Temporarily finish full sync at 99% (#4457)
* Finish full sync at 99.5%

* Finish full sync test harness at 99.5%

* Try 99.2% instead

* Try 99%
2022-05-24 17:59:09 +10:00
teor c006772180
fix(ci): Make reusable workflow job names match patch job names (#4466)
* Add blank names to reusable workflow jobs

* Give each job a proper name

* Update patch job names

* Remove unnecessary quotes
2022-05-24 03:10:53 +00:00
teor 878875cca1
fix(ci): Update docker patch jobs for recent changes (#4460)
* Update continous-integration-docker.patch for recent changes

* Remove trailing whitespace
2022-05-23 10:04:07 +00:00