Commit Graph

622 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
Conrado Gouvea bae470b5ba
change(doc): add item to release checklist to update dependencies in the README (#4449)
* change(doc): add item to release checklist to update dependencies in the README

* Update .github/PULL_REQUEST_TEMPLATE/release-checklist.md

Co-authored-by: Marek <mail@marek.onl>

Co-authored-by: Marek <mail@marek.onl>
2022-05-20 19:19:51 +00:00
teor 712ef40438
3. Require network names in cached state disk names (#4392)
* Require a cached state rebuild if the state version changes

* Find cached state disks with the same state version

And prefer `main` to other branches.

* Tweak filters to make them more specific

* Try adding inner quotes

* Try brackets instead

* Try two filters, rather than three

* Use Mainnet as the default network, remove duplicate env var

* Match the exact disk name format in one regular expression

* Log the exact expected disk name, including the network

* Consistently use CACHED_DISK_NAME as the env var name

* Temporary allow missing $NETWORK in disk names

* Print the exact search string

* Debug log the search string

* Use a generic alphabetical pattern rather than a regex group

Google Cloud doesn't seem to support regex groups.

* Add network name to disk match docs

* Fix the logged network name

* Make jobs that use cached state wait for state rebuilds

* Run jobs that need cached state even if the rebuild was skipped

* Fix missing dependencies

And update a TODO

* Revert "Use a generic alphabetical pattern rather than a regex group"

This reverts commit 970afe7b17.

* Revert "Temporary allow missing $NETWORK in disk names"

This reverts commit f1f66500c3.

* Make jobs that use cached state wait for state rebuilds

* Run jobs that need cached state even if the rebuild was skipped

* Fix missing dependencies

And update a TODO

* refactor(ci): look for available disks instead of files changed

This ensure that if the constants.rs file was changed, we search for disks available in the whole repository with the same state.

If there's no disk available a rebuild is triggered depending the missing disk. And if there's a disk available, tests are run with this one.

* fix(ci): lwd syncs needs to wait for zebra disk rebuild

* docs(ci): use better comments on integration tests

* fix(ci): we must authenticate to GCP to find disks

* fix(ci): add needed permissions for google auth

* fix(ci): the output needs to be echoed

* imp(ci): reduce diff with main

* fix(ci): remove redundant dependency

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

* fix(ci): also add `false` to the JSON object output

* fix(ci): hasty copy/paste

* fix(ci): standardize comments

* fix(ci): run disk rebuilds if no disk was found

* fix(ci): build on any event if a cached disk is not found

* fix(ci): reduce diff with main

* docs(ci): reduce main diff

* fix(ci): sync .patch file with changes on the workflow

* fix(ci): consider network changes in new get-available-disks

* force GHA trigger

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-20 00:44:11 +00:00
dependabot[bot] 1c10f40b29
build(deps): bump w9jds/firebase-action from 2.1.0 to 2.1.2 (#4431)
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from 2.1.0 to 2.1.2.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v2.1.0...v2.1.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-05-19 23:55:48 +00:00
dependabot[bot] 776e018ab4
build(deps): bump reviewdog/action-actionlint from 1.24.0 to 1.25.0 (#4432)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.24.0 to 1.25.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.24.0...v1.25.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-05-19 23:55:37 +00:00
teor e2890636a9
1. fix(ci): rebuild cached state before running cached state tests (#4385)
* Make jobs that use cached state wait for state rebuilds

* Run jobs that need cached state even if the rebuild was skipped

* Fix missing dependencies

And update a TODO

* refactor(ci): look for available disks instead of files changed

This ensure that if the constants.rs file was changed, we search for disks available in the whole repository with the same state.

If there's no disk available a rebuild is triggered depending the missing disk. And if there's a disk available, tests are run with this one.

* fix(ci): lwd syncs needs to wait for zebra disk rebuild

* docs(ci): use better comments on integration tests

* fix(ci): we must authenticate to GCP to find disks

* fix(ci): add needed permissions for google auth

* fix(ci): the output needs to be echoed

* imp(ci): reduce diff with main

* fix(ci): remove redundant dependency

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

* fix(ci): also add `false` to the JSON object output

* fix(ci): hasty copy/paste

* fix(ci): standardize comments

* fix(ci): run disk rebuilds if no disk was found

* fix(ci): build on any event if a cached disk is not found

* fix(ci): sync .patch file with changes on the workflow

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-19 23:07:28 +00:00
teor 5702b4cc99
Update Cargo.lock check in continous-integration-os.patch.yml (#4428) 2022-05-19 02:43:08 +00:00
dependabot[bot] 2d7b7c2c5b
build(deps): bump google-github-actions/auth from 0.7.2 to 0.7.3 (#4419)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.7.2 to 0.7.3.
- [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.2...v0.7.3)

---
updated-dependencies:
- dependency-name: google-github-actions/auth
  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-18 21:38:39 +00:00
dependabot[bot] acccb9896c
build(deps): bump google-github-actions/auth from 0.7.1 to 0.7.2 (#4404)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.7.1 to 0.7.2.
- [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.1...v0.7.2)

---
updated-dependencies:
- dependency-name: google-github-actions/auth
  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-17 20:28:38 +00:00
dependabot[bot] ce84cdaada
build(deps): bump tj-actions/changed-files from 19 to 20 (#4403)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 19 to 20.
- [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/v19...v20)

---
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-05-17 20:28:20 +00:00
dependabot[bot] 2f636bf046
build(deps): bump w9jds/firebase-action from 2.0.0 to 2.1.0 (#4402)
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v2.0.0...v2.1.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-05-16 22:14:21 +00:00
Dimitris Apostolou 59ae77d04b
Fix typos (#4397) 2022-05-16 05:33:08 +00:00
teor 434044206c
Revert "Temporarily use an earlier lightwalletd version" (#4398)
This reverts commit f71a1f5d19.
2022-05-15 23:16:10 -04:00
teor 94ba4b46a2
change(test): Require cached lightwalletd state for the send transaction tests (#4303)
* Revert "Temporarily stop requiring cached lightwalletd state for the send transaction tests"

This reverts commit f6b29b151e.

* fix(ci): add a lightwalletd cached state to the test

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-13 23:01:31 +00:00
Gustavo Valverde 77529a8cbd
feat(ci): add `lightwalletd_update_sync` test to CI (#4269)
* fix(ci): lwd state condition

* fix(ci): differentiate tests that need a lwd cached state

* fix(ci): use the right state and save name for each test

* docs(ci): minor comment fixes

* docs(ci): better input description

* fix(ci): end `if` condition correctly

* fix(images): pass the state version to following steps

* fix(ci): $needs_lwd_state condition was inverted

* fix(ci): reduce disk selection code

* docs(ci): better disk search conditional explanation

* fix(ci): end if condition correctly

* fix(ci): evaluate $needs_zebra_state correctly

* fix(ci): use nested condition for readability

* fix(ci): disk search was using the wrong variable
2022-05-13 18:02:05 -04:00
Gustavo Valverde e3a65d86e0
feat(ci): add `lightwalletd_full_sync` test to CI (#4268)
* Temporarily use an earlier lightwalletd version

This checks if commit
e146dbf5c2
contains a mempool refresh deadlock bug.

* Actually rebuild the lightwalletd image

* Delete an unfinished comment

* Remove duplicate test in entrypoint.sh

* Keep a recent change to make tests consistent

* fix(ci): remove not used variable `lwd_state_dir`

* fix(ci): state wast not being added to the image name

* fix(ci): mount a docker volume with lightwalletd dir

If the volume doesn't mount this lwd cached state dir, the content won't be saved to the mounted disk in the VM

* fix(ci): lwd state condition

* docs(ci): explain disk mounting logic

* docs(ci): explain disk mounting decision better

* docs(ci): add a description for confusing input names

Co-authored-by: teor <teor@riseup.net>
2022-05-13 15:20:17 +00:00
teor d0ef9b3dc0
0. fix(ci): only use cached state disks with the same state version (#4391)
* Require a cached state rebuild if the state version changes

* Find cached state disks with the same state version

And prefer `main` to other branches.

* Tweak filters to make them more specific

* Try adding inner quotes

* Try brackets instead

* Try two filters, rather than three

* Use Mainnet as the default network, remove duplicate env var

* Match the exact disk name format in one regular expression

* Log the exact expected disk name, including the network

* Consistently use CACHED_DISK_NAME as the env var name

* Temporary allow missing $NETWORK in disk names

* Print the exact search string

* Debug log the search string

* Use a generic alphabetical pattern rather than a regex group

Google Cloud doesn't seem to support regex groups.

* Add network name to disk match docs

* Fix the logged network name

* imp(ci): remove gcp verbose log

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-13 03:07:37 +00:00
teor f789f8aaa7
fix(ci): make test selection and logging consistent (#4375)
* fix(ci): sentry is not longer being activated in test builds

This removes sentry from all the test execution, as some tests might fail as sentry wasn't initially built, or it might take more time to build as it will have to build with sentry.

* fix(build): workaround the failed to fetch oauth token error

* Drop sentry dependencies when enable-sentry feature is disabled

* Make lightwalletd gRPC tests depend on a new lightwalletd-grpc-tests feature

* fix(ci): remove enable-sentry feature from tests

* Add lightwalletd-grpc-tests feature for functionality or efficiency

And document where it is just used to stop re-compilations.

* Remove redundant `cmake` and `protobuf-compiler` dependencies

* Document Zebra's optional production and test feature flags

* Minimise dependencies in zcash-params/Dockerfile

* Minimise dependencies in docker/Dockerfile

* Add a workflow TODO

* Catch more errors in entrypoint.sh

Also makes entrypoint.sh compatible with more distributions

* Remove unnecessary quoting in entrypoint.sh

* Use exactly the same arguments to call CI tests

* Remove a redundant CI build

* Rename Cargo.lock check job

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-11 23:41:33 +00:00
teor f7a3a0f6bc
fix(build): put gRPC tests behind an optional feature flag to fix production build issues (#4369)
* fix(ci): sentry is not longer being activated in test builds

This removes sentry from all the test execution, as some tests might fail as sentry wasn't initially built, or it might take more time to build as it will have to build with sentry.

* fix(build): workaround the failed to fetch oauth token error

* Drop sentry dependencies when enable-sentry feature is disabled

* Make lightwalletd gRPC tests depend on a new lightwalletd-grpc-tests feature

* fix(ci): remove enable-sentry feature from tests

* Add lightwalletd-grpc-tests feature for functionality or efficiency

And document where it is just used to stop re-compilations.

* Remove redundant `cmake` and `protobuf-compiler` dependencies

* Document Zebra's optional production and test feature flags

* Minimise dependencies in zcash-params/Dockerfile

* Minimise dependencies in docker/Dockerfile

* Add a workflow TODO

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-05-11 14:06:58 +00:00
Gustavo Valverde 06f58fba95
fix(ci): allow builds over 1 hour and tests without the sentry feature (#4370)
* fix(ci): sentry is not longer being activated in test builds

This removes sentry from all the test execution, as some tests might fail as sentry wasn't initially built, or it might take more time to build as it will have to build with sentry.

* fix(build): workaround the failed to fetch oauth token error
2022-05-11 02:26:39 +00:00
Gustavo Valverde 93e158936e
refactor(build): deprecate gcr.io as a registry and build faster (#4298)
* refactor(build): use better stage naming and document it

* refactort(build): use multiple cache sources

* docs(build): add a comment for cache

* fix(build): remove gcr.io as it does not supports OCI images
2022-05-10 17:00:09 -04:00
Gustavo Valverde 7262211bdf
fix(ci): wrong file being referenced by CI (#4364) 2022-05-10 03:28:07 +00:00
Conrado Gouvea a3eed2daad
fix(doc): add support for Mermaid to render graphs (#4359) 2022-05-09 20:29:49 +00:00
Gustavo Valverde 228f16be50
refactor(actions): rename workflow files (#3941)
* refactor(actions): rename workflow files

* refactor(worflows): change files according new approach
2022-05-09 15:54:16 -04:00
dependabot[bot] 7fccd6b9ee
build(deps): bump docker/setup-qemu-action from 1 to 2 (#4347)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  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-05-06 11:37:46 -04:00
dependabot[bot] 34dfc30910
build(deps): bump docker/login-action from 1.14.1 to 2.0.0 (#4346)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.14.1 to 2.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.14.1...v2.0.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  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-05-06 11:37:37 -04:00
dependabot[bot] 4976886a49
build(deps): bump docker/build-push-action from 2.10.0 to 3.0.0 (#4345)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  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-05-06 11:37:22 -04:00
dependabot[bot] a31c23432d
build(deps): bump docker/setup-buildx-action from 1 to 2 (#4344)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  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-05-06 11:37:06 -04:00
dependabot[bot] 91c0393727
build(deps): bump docker/metadata-action from 3.8.0 to 4.0.1 (#4319)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3.8.0 to 4.0.1.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v3.8.0...v4.0.1)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  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-05-06 10:06:13 -04:00
Gustavo Valverde 9226adea97
feat(ci): add `sending_transactions_using_lightwalletd` test to CI (#4267)
* feat(ci): add lightwalletd_*_sync tests to CI

* feat(ci): add lightwalletd RPC call test

* feat(ci): add send transactions test with lwd to CI

* fix(ci): create a variable to run transactions test

* refactor(ci): use docker in docker

This is a workaround for an issue related to disk partitioning, caused by a GCP service called Konlet, while mounting the cached disks to the VM and then to the container

* fix(build): persist docker login credentials

* fix(ci): get sync height from docker logs instead of gcp

* try: use gha cache for faster building

* fix(ci): mount disk in container to make it available in vm

* fix(build): do not invalidate cache between images

* try(docker): invalidate cache as less as possible

* fix(ci): GHA terminal is not a TTY

* fix(build): do not ignore entrypoint.sh

* fix

* fix(ci): mount using root priveleges

* fix(ci): use existing disk as cached state

* fix(ci): wait for disks to get mounted

* force rebuild

* fix failed force

* fix failed commit

* WIP

* fix(ci): some tests does not use a cached state

* wip

* refactor(ci): disk names and job segregation

* fix(ci): do not name boot and attached disk the same

* fix(ci): attach a disk to full sync, to snapshot the state

* fix(ci): use correct disk implementations

* fix(ci): use different disk name to allow test concurrency

* feat(ci): add lightwalledt send transaction test

* cleanup(ci): remove extra tests

* fix(ci): allow disk concurrency with tests

* fix(ci): add considerations for different tests

* fix(reusable): last fixes

* feat(ci): use reusable workflow for tests

* fix(rw): remove nested worflow

* fix(rw): minor fixes

* force rebuild

* fix(rw): do not use an input as job name

* fix(rw): remove variable id

* fix(ci): remove explicit conditions and id

* fix(ci): docker does not need the variable sign ($) to work

* fix(ci): mount typo

* fix(ci): if a sync fails, always delete the instance

This also reduces the amount of jobs needed.

* refactor(ci): make all test depend on the same build

* fix(ci): some tests require multiple variables

* fix(docker): variable substitution

* fix(ci): allow to run multiple commits from a PR at once

* fix(docker): lower the NETWORK env var for test names

* reduce uneeded diff

* imp(keys): use better naming for builds_disks

* imp(ci): use input defaults

* imp(ci): remove test_name in favor of test_id

* fix(ci): better key naming

* fix(ci): long disk names breaks GCP naming convention

* feat(ci): validate local state version with cached state

* fix(ci): add condition to run tests

* fix: typo

* fix: app_name should not be required

* fix: zebra_state_path shouldn't be required

* fix: reduce diff

* fix(ci): checkout to grep local state version

* Update .github/workflows/test.yml

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

* revert: merge all tests into a single workflow

* Remove unused STATE_VERSION env var

* fix: minor fixes

* fix(ci): make test.patch the same as test

* fix(ci): negate the input value

* imp(ci): better cached state conditional handling

* imp(ci): exit code is captured by `docker run`

* fix(deploy): mount disks with better write performance

* fix(ci): change sync id to a broader id name

* fix(ci): use correct input validation

* fix(ci): do not make test with cached state dependant on other

* imp(ci): organiza keys better

* fix(ci): use appropiate naming

* fix(ci): create docker volume before mounting

* fix(lint): do not fail on all new changes

* imp(ci): do not report in pr review

* fix(ci): partition clean disks

* fix: typo

* fix: test called the wrong way

* fix(build): stop using gha cache

* ref(ci): validate run condition before calling reusable workflow

* fix(ci): use a better filesystem dir and fix other values

* fix: linting errors

* fix(ci): typo

* Revert "fix(build): stop using gha cache"

This reverts commit a8fbc5f416.

Cache expiration is a lesser evil than not using caching at all and then failing with a 401

* imp(ci): do not set a default for needs_zebra_state

* Update .github/workflows/test.yml

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

* fix(deps): remove dependencies

* force build

* Update .github/workflows/test.yml

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

* fix(docker): add RUST_LOG as an ARG and ENV

* fix(test): add `#[ignore]` to send transactions test

This test needs state then it should be marked as #[ignore]

* fix(ci): differentiate between root cache path and its dir

* Remove extra `state` directory

That was a workaround for an issue that has been fixed.

* imp(docs): use better test descriptions

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

* fix: reduce unwanted diff with main

* fix(ci): make lwd conditions consistent

* Remove another extra `state` directory

Was also part of a workaround for an issue that has been fixed.

* fix(ci): use better conditionals to run test jobs

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

* Tweak to support different lightwalletd versions

Some versions print `Waiting for block`, and some versions print
`Ingestor waiting for block`.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>
2022-05-06 05:30:38 +00:00
teor b008509a9e
Skip tests when doing a manual full sycn (#4333)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-05-06 02:08:41 +00:00
teor da232ec224
Update cached state conditions and docs (#4332) 2022-05-06 07:52:56 +10:00
Gustavo Valverde 322f68d81a
fix(ci): run tests according to the right conditions (#4313) 2022-05-05 18:04:51 +00:00
Gustavo Valverde 55a73c554c
fix(lint): stop actionlint from failing in main (#4317) 2022-05-05 07:18:27 -04:00
Gustavo Valverde e72260db52
fix(ci): add cached state version to disk images (#4314) 2022-05-05 07:10:50 -04:00
Gustavo Valverde 9856e2ad17
refactor(lint): check specific files for each job (#4311)
* refactor(lint): check specific files for each job

* refactor(lint): use an approach which requires less code

* fix(lint): validate against true string not boolean
2022-05-05 07:09:21 -04:00
Gustavo Valverde a23420be88
feat(ci): add `fully_synced_rpc_test` test to CI (#4223)
* feat(ci): add lightwalletd RPC call test

Co-authored-by: teor <teor@riseup.net>
2022-05-05 05:27:07 -04:00
Gustavo Valverde 9c94c0d6e4
feat(ci)!: add a reusable workflow for deployable integration tests (#4271)
Co-authored-by: teor <teor@riseup.net>
2022-05-04 18:55:02 -04:00
Deirdre Connolly 239230989d
feat(ci): clarify lint workflow names (#4279)
* Lint workflow names

* Rename lint.patch.yml display name to Lint, add stub for Actionlint
2022-05-03 17:17:58 +00:00
Gustavo Valverde 8b68651ba8
fix(build): avoid docker cache contamination and invalidation (#4254)
* imp(build): reduce docker cache invalidation

Use scoped caching and more file ignores to reduce cache invalidation

* fix(build): add entrypoint.sh as a required file

* fix(build): do not logout if the build takes too long

* Add 'doc comment' about .dockerignore

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2022-05-03 10:13:28 -04:00
Gustavo Valverde 93f40fd0ba
fix(ci): typo causing docker run command to split (#4277) 2022-05-03 08:00:10 -04:00
Gustavo Valverde 6331722c12
fix(ci): use debian for faster mounting, and increase timeout (#4276) 2022-05-03 06:49:24 -04:00
Gustavo Valverde 9b9578c999
refactor(ci): use docker instead of Konlet for GCP deployments in CI (#4252)
* refactor(ci): use docker in docker

This is a workaround for an issue related to disk partitioning, caused by a GCP service called Konlet, while mounting the cached disks to the VM and then to the container

* fix(build): persist docker login credentials

* fix(ci): get sync height from docker logs instead of gcp

* try: use gha cache for faster building

* fix(ci): mount disk in container to make it available in vm

* fix(build): do not invalidate cache between images

* try(docker): invalidate cache as less as possible

* fix(ci): GHA terminal is not a TTY

* fix(build): do not ignore entrypoint.sh

* fix

* fix(ci): mount using root priveleges

* fix(ci): use existing disk as cached state

* fix(ci): wait for disks to get mounted

* force rebuild

* fix failed force

* fix(ci): some tests does not use a cached state

* fix(ci): do not name boot and attached disk the same

* fix(ci): attach a disk to full sync, to snapshot the state

* fix(ci): use appropiate grep text depending on the test

* reduce diff

* fix(ci): use correct GCP disk source attribute

* imp(ci): reduce diff

* fix(ci): revert wrong deletion

* fix: revert uneeded changes

* fix: reduce main diff

* fix

* fix(ci): reduce diff
2022-05-03 02:47:04 +00:00
Gustavo Valverde fe97e14fe8
fix(ci): create a full sync disk with cached state inside (#4266) 2022-05-02 21:28:33 -04:00
Gustavo Valverde b3bccd6655
fix(ci): garbage collect instances no matter previous steps status (#4255)
* fix(ci): garbage collect instances no matter the status

As we're not going to reuse test instances, the safest method to apply is to always delete this instances if they fail, get skipped or succeed running a workflow

* Apply suggestions from code review

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* docs(ci): imrpove comment

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2022-05-01 16:52:57 +00:00
teor 23ff00b246
Increase deploy docs job timeout (#4246) 2022-04-28 22:01:23 +00:00
dependabot[bot] a922688947
build(deps): bump docker/metadata-action from 3.7.0 to 3.8.0 (#4241)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: docker/metadata-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-04-28 17:54:48 +00:00
dependabot[bot] 646bedbdb6
build(deps): bump tj-actions/changed-files from 18.7 to 19 (#4240)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 18.7 to 19.
- [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/v18.7...v19)

---
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-04-28 17:54:28 +00:00
Gustavo Valverde 83d26890f5
feat(ci)!: implement reusable workflows for image building (#4173)
* refactor(ci): test building in a separate workflow

* force a change

* force a change

* fix(ci): send the correct variables to the reusable build

* fix(ci): variables are not allowed

* fix(ci): conditions are not allowed as input

* fix(ci): use expected value

* refactor(build): simplify the use of other dockerfiles

* fix(cd): depend on docker build yml

* fix(cd): use main branch as image name

* imp(actions): remove uneeded variable repetition

* imp(build): remove unused variables

* imp(actions): rename the image building workflow

Not all images are for zebra execution as we also have one for zcash-params

* fix(ci): add dependable workflow in paths filters

* docs(ci): remove TODO as this won't be needed at least an issue arises

* docs(ci): CARGO_INCREMENTAL can decrease build time when running from a cache

* fix: revert forced changes

* fix(build): remove unused build inputs in zcash-params

* imp(cd): as this is the production image, use the executable name

* imp(ci): reduce log level to improve speed

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

* imp(ci): use the correct name for the workflow

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

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: teor <teor@riseup.net>
2022-04-28 08:13:35 +00:00
Gustavo Valverde 46642eb487
fix(ci): do not delete instances from `main` branch on merge (#4206)
* fix(ci): do not delete instances from `main` branch on merge

* fix(ci): do not delete instances on merge

This was creating an unintended behavior, and so far instances are being cleaned up in its corresponding workflow.
2022-04-26 23:14:13 +00:00
teor 4f92df42b0
fix(ci): Retry after docker log follow ssh failures (#4198)
* Retry after log ssh failures in full sync test

* Retry after log failures in other docker tests
2022-04-26 21:01:24 +00:00
dependabot[bot] 6c073a9017
build(deps): bump google-github-actions/auth from 0.7.0 to 0.7.1 (#4188)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.7.0 to 0.7.1.
- [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.0...v0.7.1)

---
updated-dependencies:
- dependency-name: google-github-actions/auth
  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-04-25 21:47:13 +00:00
dependabot[bot] e90c22917d
build(deps): bump reviewdog/action-actionlint from 1.23.0 to 1.24.0 (#4161)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.23.0 to 1.24.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.23.0...v1.24.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-04-22 12:03:27 +00:00
dependabot[bot] 83636f7c27
build(deps): bump codecov/codecov-action from 2.1.0 to 3.1.0 (#4162)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  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-04-22 03:00:08 +00:00
dependabot[bot] a613fb1682
build(deps): bump actions/checkout from 3.0.1 to 3.0.2 (#4163)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  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-04-22 03:00:02 +00:00
teor 5575b7a40e
fix(ci): share GitHub runner caches between branches (#4149)
* Use shared caches for the CI job

* Fix shared lint Rust caches
2022-04-21 00:33:08 +00:00
teor 32556b8b6b
fix(ci): increase the Zcash parameter fetch timeout (#4148)
* fix(ci): increase the Zcash parameter fetch timeout

* Also increase the coverage workflow timeout
2022-04-20 00:58:55 +00:00
dependabot[bot] 90a8401308
build(deps): bump actions/checkout from 3.0.0 to 3.0.1 (#4126)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  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-04-16 02:01:20 +00:00
dependabot[bot] 01e7382809 build(deps): bump reviewdog/action-actionlint from 1.22.0 to 1.23.0
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.22.0 to 1.23.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.22.0...v1.23.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>
2022-04-15 19:08:29 -04:00
Gustavo Valverde 4823df346d
fix(ci): give enough time to zebra before reading logs (#4123)
* fix(ci): give enough time to zebra before reading logs

* imp(ci): add sleep comment reason
2022-04-14 19:39:26 +00:00
teor 2041d69312
ci(Mergify): Fix invalid mergify config on main branch (#4120)
Signed-off-by: teor <teor@riseup.net>
2022-04-14 17:15:57 +10:00
Gustavo Valverde 04d52bfa3b
feat(ci): run cached state rebuilds in main branch (#4107)
* feat(ci): run cached state rebuilds in main branch

* fix(ci): allow the PR/branch name in the disk name

Move the hight information to the disk description, to reduce the name length

* fix(ci): add missing SHA

* fix(ci): regenerate chekpoint cached state on main

This will automatically regenerate the disk when a merge is completed on main

* tmp(ci): do not duplicate sync test at/after merge

This temporarily ensure the test just runs in the main branch, ensuring we can track it easier
2022-04-13 21:44:39 -04:00
Gustavo Valverde 970f06d332
refactor(queue)!: improve mergify merge throughput (#4094)
* refactor(ci)!: rename queues and reassign labels

* imp(ci:) allow a bigger throughput for merge trains

* imp(ci): allow mergify to interrupt queues that are not a hotfix

* imp(ci): add a bigger timeout before creating speculative checks

* Update .github/mergify.yml

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

* Update .github/mergify.yml

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

* Apply suggestions from code review

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

Co-authored-by: teor <teor@riseup.net>
2022-04-14 10:17:16 +10:00
teor 9055f0f3a1
ci(Mergify): configuration update (#4105)
Signed-off-by: teor <teor@riseup.net>
2022-04-13 10:28:03 +10:00
Gustavo Valverde 90c6980630
imp(ci): use GitHub Branch Protection checks instead of Mergify (#4103) 2022-04-13 09:43:58 +10:00
dependabot[bot] 8aa1908049
build(deps): bump reviewdog/action-actionlint from 1.21.0 to 1.22.0 (#4099)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.21.0 to 1.22.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.21.0...v1.22.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-04-12 17:53:31 +00:00
Gustavo Valverde 47c1c01fcf
refactor(ci): use distinctive names for cached state disks (#4073)
* fix(ci): correctly use lowered network caps

In the Test workflow we were using a different approach than the one being used in the Full sync test.

Also, in the Full sync test the variable was LOWER_NET_NAME, but NETWORK was being used in the disk name, with caps.

* imp(ci): get state version from local constants.rs

* imp(ci): use the same get name approach

* fix(ci): use the correct name for state version variable

* imp(ci)!: use different disk names for cached states

Disk states synced to canopy and synced to the chain tip should have different names to reference correctly on actual and coming tests the needed disk.

* imp(ci): test-stateful-sync no longer depends on regenerate-stateful-disks

* Apply suggestions from code review

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* fix(ci): use a better name for network string conversion

* Revert "Apply suggestions from code review"

This reverts commit cbbfaf4e9c.

* fix: do not get log information if sync was skipped

* fix(ci): do not lower the variable name

* fix(ci): use the same lowering case for network everywhere

* test: more .dockerignore conditions

* fix: use the right approach to lower caps

* remove extra .dockerignore

* trigger a change for stateful disk regeneration

* imp(ci): use `checkpoint` as the disk reference

* revert wrong delete

* fix(ci): add INSTANCE_ID and correct logging message

* imp(ci): add `v` prefix to state version number

* fix(ci): remove typo from logging message to get the height

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2022-04-12 05:34:15 +00:00
Gustavo Valverde 831a2009bd
style(ci): lint and standardize the actions structure (#3940)
* style(ci): comply with https://json.schemastore.org/github-workflow.json

Some substituions were harder to make as files were not standardized

* fix(mergify): use correct name for macos

* style(actions): revert to single quotes

* style: lint dependabot and mergify conf files

* style: remove conditions with missing context

* imp(lint): automate GH Actions linting

* fix(lint): some actions need to be triggered by PR event

* fix(lint): consider all workflow YAMLs

* Use the same paths in the patch file

* revert: keep condition as is

* add TODO

* fix: add missing checkpoint_sync input

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-04-12 15:06:37 +10:00
dependabot[bot] 73aea46458
build(deps): bump tj-actions/changed-files from 18.6 to 18.7 (#4065)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 18.6 to 18.7.
- [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/v18.6...v18.7)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  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-04-09 19:55:07 +00:00
Gustavo Valverde 23e8a432f6
fix(ci): use correct machine names for exit codes (#4069) 2022-04-09 14:27:53 -04:00
teor 7e8194c63f
3. change(db): Store UTXOs by transaction location rather than transaction hash (#3978)
* Change OutputLocation to contain a TransactionLocation

* Change OutputLocation reads from the database

* Update some doc comments

* Update some TODOs

* Change deleting spent UTXOs and updating spent balances

* Change adding new UTXOs and adding their values to balances

* Disable dead code warnings

* Update snapshot test code

* Update round-trip tests for OutputLocations

* Update snapshot test data

* Increment the database format version

* Remove a redundant try_into()

Co-authored-by: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>

* Refactor redundant code

Co-authored-by: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>

* ci: attempt at fixing 'Regenerate stateful disks'

Co-authored-by: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2022-04-08 22:42:05 +00:00
Gustavo Valverde 44cb35c320
fix(ci): validate tests exit code after reading the container logs (#3968)
* fix(ci): validate exit code

* fix(ci): use a single step

* fix: run from gcp command

* fix: remove variable substitution

* fix: escaping characters

* fix: handle bash issues with variable expansion

* fix: seggregate execution into multiple steps

* fix: the command is a string

* fix: move docker ignore to use caching

* revert panic

* fix: add panic and fix exit code command

* revert: remove panic

* fix: apply the exit code to all gcp tests

* imp(ci): use single line exit

* Clean up the CODEOWNERS file

We moved the dockerignore file into the docker directory,
so it doesn't need a separate entry any more.

Co-authored-by: teor <teor@riseup.net>
2022-04-07 23:16:40 +00:00
Deirdre Connolly 1a4f8f6573
feat(ci): create disk image after a successful full sync test (#3986)
* Create disk image after a successful full sync test

* Extract full sync height and name zebrad cached state with it

* Read 500 lines to extract sync height

* Restrict log query to just the container output and fix regex syntax for ubuntu

* Explicitly search logs in descending time

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-04-06 16:57:45 -04:00
dependabot[bot] b0304c5882
build(deps): bump docker/metadata-action from 3.6.2 to 3.7.0 (#4049)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3.6.2 to 3.7.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v3.6.2...v3.7.0)

---
updated-dependencies:
- dependency-name: docker/metadata-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-04-06 20:51:01 +00:00
dependabot[bot] 47c77f57d1
build(deps): bump google-github-actions/auth from 0.6.0 to 0.7.0 (#4050)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.6.0 to 0.7.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.6.0...v0.7.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-04-06 19:28:39 +00:00
teor 13c216cd3c
1.0.0-beta.7 Release (#4039)
* Update changelog for v1.0.0-beta.7

* Increment all crate versions

* Remove redundant release test that is now covered by CI

* Remove completed NU5 README check task from the release template

* Add Merge Freeze tool to the release checklist

* Simplify release checklist by removing unused steps
2022-04-05 18:06:46 +00:00
dependabot[bot] fa8d1a7074
build(deps): bump tj-actions/changed-files from 18.4 to 18.6 (#4002)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 18.4 to 18.6.
- [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/v18.4...v18.6)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  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-04-04 20:44:19 +00:00
teor eeff71d0bd
Increase test coverage of state rebuild (#4020)
Only run the state rebuild job if the database format version has (likely) changed.

If we have accidentally changed the format, but not changed the version,
we want to run with the old cached state, so this job fails.

If we change the state path without changing the version,
this job will take a few hours, because it will do a full rebuild.
2022-04-01 16:02:55 +00:00
Gustavo Valverde 75ae05b257
imp(ci): do not invalidate cache between PRs (#3996)
When a PR is created and an image is built in a branch, the cache is also pushed to a `buildcache` tag.

As all PRs are using the same tag, sometimes the cache for a specific branch gets invalidated and makes it take longer on further pushes.

This fix might make the first commit take longer, but further ones will be faster if no changes in the code are applied.
2022-03-31 01:34:12 +00:00
Deirdre Connolly 3552eafbb8
Add a job to ci.yml that does `cargo install --locked --path ./zebrad/ zebrad` (#3998)
* Add a job to ci.yml that does cargo install --locked --path . zebrad

* Update .github/workflows/ci.yml

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

* Update .github/workflows/ci.patch.yml

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

* Update .github/workflows/ci.yml

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>

* Update .github/workflows/ci.patch.yml

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>

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-03-30 21:53:57 +00:00
Deirdre Connolly dcade546c0
Update test.patch.yml with lightwalletd job (#3970)
* Update test.patch.yml with lightwalletd job

* Remove a workflow condition that will always be false

In general, patch workflows need the
opposite conditions to the original workflow.

But in this case, we know the result of the
condition will always be true, so we can just delete it.

Co-authored-by: teor <teor@riseup.net>
2022-03-27 22:40:53 +00:00
Conrado Gouvea ed5e85f8ae
fix syntax in some yml workflows (#3957) 2022-03-24 22:39:16 +00:00
dependabot[bot] 5d7f986183
build(deps): bump tj-actions/changed-files from 18.3 to 18.4 (#3917)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 18.3 to 18.4.
- [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/v18.3...v18.4)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  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-03-23 11:57:55 -04:00
dependabot[bot] de59fc6aa0
build(deps): bump actions/cache from 2 to 3 (#3918)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  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-03-21 23:08:25 +00:00
Gustavo Valverde 39765534f1
fix(actions): use a specific shortening length for SHAs (#3929)
* fix(actions): use a specific shortening length for SHAs

The rlespinasse/github-slug-action now works without checking out the code, reduce time and improving security with following actions.

This requires to specify the GITHUB_SHA_SHORT variable length, as git uses 8 by default, but docker uses 7 by default.

* fix(actions): target correct rlespinasse/github-slug-action version

* fix(actions): just use major version

* fix(actions): github-slug-action is not being correctly referenced
2022-03-21 23:07:01 +00:00
Gustavo Valverde e1eb916b6d
refactor(ci): use improved OIDC for gcloud authentication (#3885)
* refactor(ci): use improved OIDC authentication

* fix(ci): standardize OIDC on all required jobs

* fix: wrong indentation

* fix(ci): remove non existing depency in clean job
2022-03-18 21:25:35 +00:00
dependabot[bot] 84ee78dee4
build(deps): bump tj-actions/changed-files from 18.1 to 18.3 (#3895)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 18.1 to 18.3.
- [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/v18.1...v18.3)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  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-03-18 10:09:56 +00:00
Janito Vaqueiro Ferreira Filho 57dba9fd17
Add `--nocapture` to lightwalletd integration test (#3859)
Print lightwalletd's output in CI.
2022-03-18 04:31:29 +00:00
teor 413f7fbb1d
fix(ci): remove coverage from mergify because nightly fails (#3886) 2022-03-16 00:07:04 -04:00
dependabot[bot] bf1f7aa973
build(deps): bump tj-actions/changed-files from 17.3 to 18.1 (#3876)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 17.3 to 18.1.
- [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/v17.3...v18.1)

---
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-03-16 03:18:33 +00:00
dependabot[bot] c66d6bfa38
build(deps): bump docker/build-push-action from 2.9.0 to 2.10.0 (#3878)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.9.0...v2.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-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-03-15 22:35:18 +00:00
teor 5950083006
fix(ci): path format for cached state rebuild (#3873) 2022-03-15 09:13:31 +00:00
Deirdre Connolly fcfdc5493e
s/pd-extreme/pd-ssd/ to avoid quotas (#3823) 2022-03-10 22:10:59 +00:00
dependabot[bot] 6f3885d126
build(deps): bump tj-actions/changed-files from 17.2 to 17.3 (#3796)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 17.2 to 17.3.
- [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/v17.2...v17.3)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  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-03-10 04:01:31 +00:00
dependabot[bot] b0a4e7d487
build(deps): bump google-github-actions/setup-gcloud from 0.5.1 to 0.6.0 (#3814)
Bumps [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) from 0.5.1 to 0.6.0.
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/setup-gcloud/compare/v0.5.1...v0.6.0)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  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-03-10 04:01:20 +00:00
Gustavo Valverde d8d3f6407c
build(cache): do not use GHA cache for images (#3794)
GitHub's GHA cache gets invalidated at 10Gb, which is very easy to hit when we're building multiple times a day with several commits.

Instead use the registry, which won't get invalidated until a change is identified in the build process.
2022-03-10 01:12:34 +00:00
Conrado Gouvea bbef390944
change(ci): remove Windows support (#3819)
* ci: remove Windows support

* address comments
2022-03-10 10:50:12 +10:00
Gustavo Valverde 03d123b428
refactor(test): cleanup GCP instances on a single PR (#3766)
* refactor(test): reuse same GCP instance on a single PR

This also ensures the deployments are faster, and we only delete the instance when merging or closing the PR, instead of doing it on each push to the PR

* fix(deploy): add zone to updates

* fix: typo

* fix(ci): improve conditions for updates

* fix(deploy): delete old deployments instead of reusing it

* fix(deploy): keep delete command after run

* fix(deploy): always create an instance

* fix(deploy): delete disks on every delete command.

* imp(ci): use better id name

* Update .github/workflows/test.yml

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* imp: handle errors correctly on deletion

* fix: do not hide valid errors

* fix: edge case where the container is not ready yet

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2022-03-09 17:10:05 -04:00
teor e4e6275983
fix(ci): test full sync syntax 2022-03-09 18:03:25 +10:00
teor ba5c641c85
fix(ci): re-enable manual dispatch for test full sync (#3812) 2022-03-09 18:00:58 +10:00
Conrado Gouvea 0d2c7154ea
build(deps): bump actions/checkout from 2.4.0 to 3.0.0 (#3806) 2022-03-09 03:38:38 +00:00
Gustavo Valverde ce0727e306
build(docker): revert supporting arm64 (#3791)
Building crates it's taking too much time and timing out on GitHub's Action.
2022-03-08 15:22:03 +00:00
Gustavo Valverde 3923c3de9e
imp(test): turn on full backtraces and disable frame filtering (#3763)
* imp(test): turn on full backtraces and disable frame filtering

* imp(verbosity): add RUST_LIB_BACKTRACE

We also need `RUST_LIB_BACKTRACE` as stated in:
https://docs.rs/color-eyre/latest/color_eyre/#multiple-report-format-verbosity-levels
https://doc.rust-lang.org/std/backtrace/index.html#environment-variables

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

* fix(verbosity): add missing instances for RUST_BACKTRACE, RUST_LIB_BACKTRACE and COLORBT_SHOW_HIDDEN

Co-authored-by: teor <teor@riseup.net>
2022-03-08 15:09:41 +00:00
dependabot[bot] cee770fe2c
build(deps): bump docker/login-action from 1.13.0 to 1.14.1 (#3761)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.13.0 to 1.14.1.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.13.0...v1.14.1)

---
updated-dependencies:
- dependency-name: docker/login-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-03-08 09:14:10 +00:00
teor f1123e0386
2. refactor(db): split the raw disk serialzation format into modules (#3717)
* doc(db): fix some comments

* refactor(db): split disk serialization types into their own module

* refactor(db): split the disk format into modules

* doc(db/test): explain the RON serialization format
2022-03-08 07:59:41 +00:00
Gustavo Valverde 4a5f0c25ce
refactor: use gcloud to search for cached disk state (#3775) 2022-03-07 22:19:04 -05:00
teor c724c354d7
fix(ci): only run the full sync test on mergify queue PRs (#3773)
* fix(ci): only run the full sync test on mergify queue PRs

* fix inconsistent indenting and syntax

* Update .github/workflows/test-full-sync.yml

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-03-08 02:46:12 +00:00
teor d86896b841
fix(ci): revert a test job name change (#3774) 2022-03-07 22:16:48 -04:00
teor 699c0625f3
fix(test/full-sync): ignore snapshot test file changes (#3756) 2022-03-06 21:22:46 -04:00
dependabot[bot] 26d6ef9aa0
build(deps): bump docker/login-action from 1.12.0 to 1.13.0 (#3570)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.12.0...v1.13.0)

---
updated-dependencies:
- dependency-name: docker/login-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>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-03-05 17:34:54 +00:00
Conrado Gouvea 2f6a48bed8
fix(tests): use TEST_FAKE_ACTIVATION_HEIGHTS at runtime and fix tests (#3749)
* fix: check TEST_FAKE_ACTIVATION_HEIGHTS at runtime

* fix(tests): add TEST_FAKE_ACTIVATION_HEIGHTS variable

This variable ensures the test is activated in the `test-fake-activation-heights` step

* fix(docker): do not run specific tests by default in entrypoint.sh

* fix(test): remove extra TEST_FULL_SYNC argument

* imp(timeout): wait for an average build time

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-03-05 13:32:46 -04:00
Deirdre Connolly 3238ddffa7 Extra $ 2022-03-04 16:40:19 -05:00
Deirdre Connolly f875742766 Fix CD 'Deploy mainnet nodes' job conditional 2022-03-04 16:40:19 -05:00
teor 4cb0f36ae5
doc(ci): explain the different ways .txt files are used (#3743) 2022-03-04 15:55:49 -04:00
Gustavo Valverde d9a0f9d657
fix(build, deployment): missing job key and timeout bump for build (#3744)
* fix: add missing job key

* fix(arm64): bump timeout to build without cache

* fix(deployment): apply changes made in 5004c4d3a1

* fix: remove uneeded condition

* refactor(tests):  make vm names refer the test name

This also adds a build step for full sync, as there won't be a reference image when using workflow_dispatch

* fix(deployment): testing depends on the built image
2022-03-04 15:55:32 -04:00
Gustavo Valverde 15949c8c37
refactor(test): decouple full sync from other tests (#3735)
* refactor(test): decouple full sync from other tests

As the full sync requires to be run just once and isolated, we're running this test in a separate workflow, after a PR has been approved.

* fix: revert to previous conditions in job regenerate-stateful-disks

* fix(condition): get disk sha if regeneration is not executed

* fix: typo

* Update .github/workflows/test-full-sync.yml

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>

* fix(build): bump build time for arm64

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2022-03-04 08:12:22 +00:00
Gustavo Valverde c822f0ab0c
fix(build): arm64 add extra time when building from scratch (#3738) 2022-03-04 07:27:36 +00:00
Gustavo Valverde 5004c4d3a1
refactor(build): use OCI Image Format Specification for labels (#3728)
* refactor(build): use OCI Image Format Specification for labels

This should also fix when an image gets built multiple times using the cache, as each image differs in labels

* refactor(tags): use PR context sha and ref

Remove the needed of PR Head SHA and Ref, as those can cause conflict depending on how the branch name has been established
2022-03-04 02:33:29 -04:00
teor e7af51db3a
fix(deps): remove an outdated dependabot ignore rule (#3719)
We can use dependabot commands instead.
2022-03-03 13:04:25 +00:00
teor 9ce3a9a62f
fix(ci): check for adityapk00/lightwalletd behaviour in test harness (#3705)
* fix(ci): remove an unused trigger path

* doc(ci): explain lightwalletd trigger paths

* fix(test): check for adityapk00/lightwalletd behaviour in test harness

* fix(ci): work around buildx command error

* fix(ci): revert the workaround
2022-03-03 13:03:06 +00:00
teor 5cc7f46200
fix(codeowners): avoid multiple reviewer assignments (#3718)
Assign more code to the largest review team, to avoid multiple reviewer assignments.
2022-03-03 12:50:10 +00:00
Gustavo Valverde c176e2a423
feat(build): add arm64 support with cross-compilation (#3678)
* add(actions): lightwalletd continous integrations

* refactor(actions): build lightwalletd and reuse it in zebra

- Download lightwalletd source code
- Create a new Dockerfile for lightwalletd
- Use lightwalletd binary in Zebra's image
- Create a specific step to build/update lightwalletd
- Add lightwalletd integration test to the test suite
- Remove lightwalletd.yml, as it was harder to control

* refactor(docker): organize Dockerfiles and remove unused

Fixes: #3344

* feat(build): add arrm64 support

* fix(build): do not install google-compute-engine in arm64

This package is not available for this platform

* fix(build): do not build arm64 for tests

* fix(condition): indent for better visibility

* fix(condition): wrong use of operators
2022-03-03 00:39:41 +00:00
teor 30b5468f2f
fix(review): only assign one reviewer to general Rust reviews (#3708)
If we assign two teams, GitHub assigns two reviewers.
2022-03-02 23:07:20 +00:00
Gustavo Valverde dcbf8ba545
fix(build): use the right multistage target (#3700) 2022-03-02 16:53:12 +00:00
teor 6b31f5b454
fix(ci): update CI job path triggers (#3692)
* ci(test): re-run tests when snapshot data changes

* fix(ci): rebuild state when disk format changes

* fix(ci): rebuild rust docs when code or dependencies change

* doc(ci): explain why we run jobs when files change

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-03-02 14:23:05 +00:00
Gustavo Valverde db966f27fa
feat(actions)!: add full sync test (#3582)
* add(tests): full sync test

* fix(test): add build

* fix(deploy): escape double dashes '--' correctly

* fix(test): remove unexpected --no-capture arg

error: Found argument '--nocapture' which wasn't expected, or isn't valid in this context

* refactor(docker): use default executable as entrypoint

* refactor(startup): add a custom entrypoint

* fix(test): add missing TEST_FULL_SYNC variable

* test(timeout): use the biggest machine

* fix

* fix(deploy): use latest successful image

* typo

* refactor(docker): generate config file at startup

* revert(build): changes were made to docker

* fix(docker): send variables correctly to the entrypoint

* test different conf file approach

* fix(env): add RUN_TEST env variable

* ref: use previous approach

* fix(color): use environment variable

* fix(resources): use our normal machine size

* fix(ci): double CPU and RAM for full sync test

* fix(test): check for zebrad test output in the correct order

The mempool is only activated once, so we must check for that log first.
After mempool activation, the stop regex is logged at least once.
(It might be logged before as well, but we can't rely on that.)

When checking that the mempool didn't activate,
wait for the `zebrad` command to exit,
then check the entire log.

* fix(ci): run full sync test with full compiler optimisations

* fix(tests): reintroduce tests and run full sync on approval

* fix(tests): reduce the changelog

Co-authored-by: teor <teor@riseup.net>
2022-03-02 14:15:24 +00:00
Gustavo Valverde a0c451223f
feat(lightwalletd): add build and CI pipeline (#3657)
* add(actions): lightwalletd continous integrations

* refactor(actions): build lightwalletd and reuse it in zebra

- Download lightwalletd source code
- Create a new Dockerfile for lightwalletd
- Use lightwalletd binary in Zebra's image
- Create a specific step to build/update lightwalletd
- Add lightwalletd integration test to the test suite
- Remove lightwalletd.yml, as it was harder to control

* fix(build): remove extra port being exposed

* fix(lightwalletd): test should be after `--` in cargo test

* revert(lint): do not lint external code as it can be confusing

* fix(test): lightwalletd_integration test is not ignored

* docs(docker): clarify the addition of unused args

* refactor(docker): organize Dockerfiles and remove unused

Fixes: #3344

* fix(actions): activate workflows on correct path changes

* test

* revert previous commit

* feat(build): add arm64 support with cross-compilation (#3659)

* feat(build): add arrm64 support

* fix(build): do not install google-compute-engine in arm64

This package is not available for this platform

* fix(build): do not build arm64 for tests

* fix(changes): reduce changelog

* Revert "feat(build): add arm64 support with cross-compilation (#3659)"

This reverts commit 291e00c405.
2022-03-02 09:00:55 +00:00
Gustavo Valverde 061d7da67c
feat(codeowners): add code reviewers to the repository (#3677)
* feat(codeowners): add code owners in repository

* fix(path): recently split out crate

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

* fix(teams): use reviewers instead of owners name

* fix(teams): wrong team name

* docs: use correct default explanation

* fix(path): add extra paths to devops team

Co-authored-by: teor <teor@riseup.net>
2022-03-01 14:50:18 +00:00
dependabot[bot] a8a52125d0
build(deps): bump tj-actions/changed-files from 14.4 to 17.2 (#3667)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 14.4 to 17.2.
- [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/v14.4...v17.2)

---
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-02-28 21:38:30 -04:00
Conrado Gouvea e75fe2c42f
include listing not-mentioned PRs and not-bumped crates in the release checklist (#3621) 2022-02-23 18:18:30 +00:00
teor 22b8a6003c
3. refactor(state): move database reads and writes to a new zebra_db module (#3579)
* refactor(state): move disk_db reads to a new zebra_db module

* refactor(state): make finalized value pool method names consistent

* refactor(state): split database writes into the zebra_db module

* refactor(state): move the block batch method to DiskWriteBatch

* refactor(state): actually add the zebra_db module

Unfortunately, I've lost the interim changes to this file,
so this commit might be the only one that compiles.

* refactor(state): add a newly created file to the cached state CI job
2022-02-23 00:43:41 +00:00
Deirdre Connolly 35f9b17710
fix(actions): run coverage collection when pushing to main (#3561)
* Run Coverage collection on main

Resolves #3533

* fix(coverage): just run coverage on specific file changes to main

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-02-22 09:48:00 +00:00
teor 1896943f62
fix(ci): also check for duplicate dependencies with optional features off (#3592)
* fix(dependencies): update an unused duplicate dependency exception

This duplicate was removed by PR #3572, but other duplicates still exist.

* feat(ci): check for duplicate dependencies with optional features off
2022-02-21 17:41:31 +00:00
Gustavo Valverde 6fafd1af57
refactor(mergify): better test requirements and merge conditions (#3580)
* fix(mergify, actions): use better names and require tests

* feat(queue): do not update the actual PR, create a draft

Do not allow to update/rebase the original pull request to check its mergeability. Create a draft pull request instead.

This doesn't add Mergify as a co-author

* feat(queue): do not interrupt already running queues

Our queues might take more than 5 hours even if the priority is low.

Do not allow interrupting the ongoing speculative checks when a pull request with higher priority enters in the queue.

* fix(mergify): move 'allow' attributes to queue_rules

* fix(mergify): attributes are not conditions
2022-02-18 17:53:27 -05:00
teor e182c33273
fix(ci): make the purpose of each sync test clearer (#3574) 2022-02-17 21:42:26 +00:00
teor 92b561dc8a
refactor(state): split the database module (#3568)
* refactor(state): split the disk_format module

* refactor(ci): add the new disk_db file to the state CI list

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-17 19:08:49 +00:00
dependabot[bot] 61d3243da5
build(deps): bump google-github-actions/setup-gcloud from 0.5.0 to 0.5.1 (#3560)
Bumps [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) from 0.5.0 to 0.5.1.
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/setup-gcloud/compare/v0.5.0...v0.5.1)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  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>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-16 22:21:15 +00:00
teor d593347a3e
fix(ci): delete a redundant "test all" job (#3552)
* fix(ci): clarify ignored test name

`--include-ignored` runs all tests, including tests
that would normally be ignored.

`-Zunstable-options` enables all unstable options,
but it doesn't do anything by itself.

There is a lot of overlap with "test-all" in this job,
which we might want to fix in a future PR.

* fix(ci): remove unused -Zunstable-options

`--include-ignored` is now stable, so `unstable-options` is not needed.

* fix(test): delete a redundant test

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-16 20:53:37 +00:00
Gustavo Valverde 52ba1f0edd fix(test): create a new disk with the commit being tested 2022-02-16 15:52:12 -04:00
Gustavo Valverde 2e61998182
fix(test): evaluate "if" conditions correctly and use last disk SHA (#3556)
* fix(test): use the short SHA from actual run if valid

* fix(test): if condition must evaluate to a single false

* fix(test): do not run logs and upload if not needed

* imp(test): allow test stateful sync after disk regeneration

This takes is fast enough, so it shouldn't do any harm if run just after a ~3 hours test

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-16 15:56:09 +00:00
Gustavo Valverde 8c07d3906d
fix(actions): allow branches with dots in the name (#3557)
Dependabot creates branches with versions using a dot notation, and some tests fails because of this

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-16 15:47:02 +00:00
Gustavo Valverde 943a38a0d6
fix(clippy): allow unprivileged runs of clippy (#3558) 2022-02-16 15:15:19 +00:00
Gustavo Valverde 8023ab15cf
fix(test): create disk from image before mounting (#3550) 2022-02-16 02:43:29 +00:00
Gustavo Valverde fe2edca1ba
refactor(test): dockerize tests and run sync in detached mode (#3459)
* refactor (cd): overall pipeline improvement

- Use a more ENV configurable Dockerfile
- Remove cloudbuild dependency
- Use compute optimized machine types
- Use SSD instead of normal hard drives
- Move Sentry endpoint to secrets
- Use a single yml for auto & manual deploy
- Migrate to Google Artifact Registry

* refactor (cd): overall pipeline improvement

- Use a more ENV configurable Dockerfile
- Remove cloudbuild dependency
- Use compute optimized machine types
- Use SSD instead of normal hard drives
- Move Sentry endpoint to secrets
- Use a single yml for auto & manual deploy
- Migrate to Google Artifact Registry

* refactor (cd): use newer google auth action

* fix (cd): use newer secret as gcp credential

* fix (docker): do not create extra directories

* fix (docker): ignore .github for caching purposes

* fix (docker): use latest rust

* fix (cd): bump build timeout

* fix: use a better name for manual deployment

* refactor (docker): use standard directories for executable

* fix (cd): most systems expect a "latest" tag

Caching from the latest image is one of the main reasons to add this extra tag. Before this commit, the inline cache was not being used.

* fix (cd): push the build image and the cache separately

The inline cache exporter only supports `min` cache mode. To enable `max` cache mode, push the image and the cache separately by using the registry cache exporter.

This also allows for smaller release images.

* fix (cd): remove unused GHA cache

We're leveraging the registry to cache the actions, instead of using the 10GB limits from Github Actions cache storage

* refactor (cd): use cargo-chef for caching rust deps

* fix: move build system deps before cargo cheg cook

* fix (release): use newer debian to reduce vulnerabilities

* fix (cd): use same zone, region and service accounts

* fix (cd): use same disk size and type for all deployments

* refactor (cd): activate interactive shells

Use interactive shells for manual and test deployments. This allow greater flexibility if troubleshooting is needed inside the machines

* refactor (test): use docker artifact from registry

Instead of using a VM to SSH into in to build and test. Build in GHA (to have the logs available), run the workspace tests in GHA, and just run the sync tests in GCP

Use a cintainer VM with zebra's image directly on it, and pass the needed parameters to run the Sync past mandatory checkpoint.

* tmp (cd): bump timeout for building from scratch

* tmp (test): bump build time

* fix (cd, test): bump build time-out to 210 minutes

* fix (docker): do not build with different settings

Compiling might be slow because different steps are compiling the same code 2-4 times because of the variations

* revert (docker): do not fix the rust version

* fix (docker): build on the root directory

* refactor(docker): Use base image commands and tools

* fix (cd): use correct variables & values, add build concurrency

* fix(cd): use Mainnet instead of mainnet

* imp: remove checkout as Buildkit uses the git context

* fix (docker): just Buildkit uses a .dockerignore in a path

* imp (cd): just use needed variables in the right place

* imp (cd): do not checkout if not needed

* test: run on push

* refactor(docker): reduce build changes

* fix(cd): not checking out was limiting some variables

* refactor(test): add an multistage exclusive for testing

* fix(cd): remove tests as a runtime dependency

* fix(cd): use default service account with cloud-platform scope

* fix(cd): revert checkout actions

* fix: use GA c2 instead of Preview c2d machine types

* fix(actions): remove workflow_dispatch from patched actions

This causes GitHub confusion as it can't determined which of the actions using workflow_dispatch is the right one

* fix(actions): remove patches from push actions

* test: validate changes on each push

* fix(test): wrong file syntax on test job

* fix(test): add missing env parameters

* fix(docker): Do not rebuild to download params and run tests

* fix(test): setup gcloud and loginto artifact just when needed

Try not to rebuild the tests

* fix(test): use GCP container to sync past mandatory checkpoint

* fix(test): missing separators

* test

* fix(test): mount the available disk

* push

* refactor(test): merge disk regeneration into test.yml

* fix(cd): minor typo fixes

* fix(docker): rebuild on .github changes

* fix(cd): keep compatibility with gcr.io

To prevent conflicts between registries, and migrate when the time is right, we'll keep pushing to both registries and use github actions cache to prevent conflicts between artifacts.

* fix(cd): typo and scope

* fix(cd): typos everywhere

* refactor(test): use smarter docker wait and keep old registry

* fix(cd): do not constraint the CPUs for bigger machines

* revert(cd): reduce PR diff as there's a separate one for tests

* fix(docker): add .github as it has no impact on caching

* fix(test): run command correctly

* fix(test): wiat and create image if previous step succeded

* force rebuild

* fix(test): do not restrict interdependant steps based on event

* force push

* feat(docker): add google OS Config agent

Use a separate step to have better flexibility in case a better approach is available

* fix(test): remove all hardoced values and increase disks

* fix(test): use correct commands on deploy

* fix(test): use args as required by google

* fix(docker): try not to invalidate zebrad download cache

* fix(test): minor typo

* refactor(test): decouple jobs for better modularity

This also allows faster tests as testing Zunstable won't be a dependency and it can't stop already started jobs if it fails.

* fix(test): Do not try to execute ss and commands in one line

* fix(test): do not show undeeded information in the terminal

* fix(test): sleep befor/after machine creation/deletion

* fix(docker): do not download zcash params twice

* feat(docker): add google OS Config agent

Use a separate step to have better flexibility in case a better approach is available

* merge: docker-actions-refactor into docker-test-refactor

* test docker wait scenarios

* fix(docker): $HOME variables is not being expanded

* fix(test): allow docker wait to work correctly

* fix(docker): do not use variables while using COPY

* fix(docker): allow to use zebrad as a command

* fix(cd): use test .yml from main

* fix(cd): Do not duplicate network values

The Dockerfile has an ARG with a default value of 'Mainnet', if this value is changed it will be done manually on a workflow_dispatch, making the ENV option a uneeded duplicate in this workflow

* fix(test): use bigger machine type for compute intensive tasks

* refactor(test): add tests in CI file

* fix(test): remove duplicated tests

* fix(test): typo

* test: build on .github changes temporarily

* fix(test): bigger machines have no effect on sync times

* feat: add an image to inherit from with zcash params

* fix(cd): use the right image name and allow push to test

* fix(cd): use the right docker target and remove extra builds

* refactor(docker): use cached zcash params from previous build

* fix(cd): finalize for merging

* imp(cd): add double safety measure for production

* fix(cd): use specific SHA for containers

* fix(cd): use latest gcloud action version

* fix(test): use the network as Mainnet and remove the uppercase from tests

* fix(test): run disk regeneration on specific file change

Just run this regeneration when changing the following files:

https://github.com/ZcashFoundation/zebra/blob/main/zebra-state/src/service/finalized_state/disk_format.rs
https://github.com/ZcashFoundation/zebra/blob/main/zebra-state/src/service/finalized_state.rs
https://github.com/ZcashFoundation/zebra/blob/main/zebra-state/src/constants.rs

* refactor(test): seggregate disks regeneration from tests

Allow to regenerate disks without running tests, and to run tests from previous disk regeneration.

Disk will be regenerated just if specific files were changed, or triggered manually.

Tests will run just if a disk regeneration was not manually triggered.

* fix(test): gcp disks require lower case conventions

* fix(test): validate logs being emmited by docker

GHA is transforming is somehow transforwing the variable to lowercase also, so we're changint it to adapt to it

* test

* fix(test): force tty terminal

* fix(test): use a one line command to test terminal output

* fix(test): always delete test instance

* fix(test): use short SHA from the PR head

Using the SHA from the base, creates confusion and it's not accurate with the SHA being shown and used on GitHub.

We have to keep both as manual runs with `workflow_dispatch` does not have a PR SHA

* fix(ci): do not trigger CI on docker changes

There's no impact in this workflow when a change is done in the dockerfile

* Instead of runing cargo test when the instance gets created, run this commands afterwards in a different step.

As GHA TTY is not working as expected, and workarounds does not play nicely with `gcloud compute ssh` actions/runner#241 (comment) we decided to get the container name from the logs, log directly to the container and run the cargo command from there.

* doc(test): document reasoning for new steps

* fix(test): increase machine type and ssh timeout

* fix(test): run tests on creation and follow container logs

This allows to follow logs in Github Actions terminal, while the GCP container is still running.

Just delete the instance when following the logs ends successfully or fails

* finalize(test): do not rebuild image when changing actions

* fix(test): run tests on creation and follow container logs

This allows to follow logs in Github Actions terminal, while the GCP container is still running.

Just delete the instance when following the logs ends successfully or fails

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-16 00:54:16 +00:00
dependabot[bot] 2cae880e3e
Bump google-github-actions/auth from 0.5.0 to 0.6.0 (#3496)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.5.0 to 0.6.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.5.0...v0.6.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>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-13 12:39:18 +00:00
dependabot[bot] a471e9e3ee
Bump docker/build-push-action from 2.8.0 to 2.9.0 (#3497)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.8.0...v2.9.0)

---
updated-dependencies:
- dependency-name: docker/build-push-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-02-13 12:37:06 +00:00
Gustavo Valverde fd8c727c31
fix(actions): typo on paths filtering (#3516)
The keyword is `paths` and the actions were using `path`

That's the reason why most actions have been running, and there's been no impact in time savings
2022-02-11 14:05:19 +00:00
Gustavo Valverde d2e58dfa37 fix(mergify): do not wait for depecrated Cloud Build
Cloud Build was recently removed, and Mergify is expecting a result from a non-existing action.
2022-02-10 18:44:10 -05:00
Gustavo Valverde 284aeb7106
fix: temporarily allow forked repos to run PR workflows (#3503)
* fix(zcash-params): Do not update parameters image on PR

We should not update a direct dependency of our Docker image to be writeable by a PR from anywhere, a local branch or a fork branch, before that change has been approved by a human and merged to #main

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2022-02-10 07:31:33 -04:00
Gustavo Valverde a872f1727a
refactor(cd): improve Docker and gcloud usage without Cloud Build (#3431)
* refactor (cd): overall pipeline improvement

- Use a more ENV configurable Dockerfile
- Remove cloudbuild dependency
- Use compute optimized machine types
- Use SSD instead of normal hard drives
- Move Sentry endpoint to secrets
- Use a single yml for auto & manual deploy
- Migrate to Google Artifact Registry

* refactor (cd): overall pipeline improvement

- Use a more ENV configurable Dockerfile
- Remove cloudbuild dependency
- Use compute optimized machine types
- Use SSD instead of normal hard drives
- Move Sentry endpoint to secrets
- Use a single yml for auto & manual deploy
- Migrate to Google Artifact Registry

* refactor (cd): use newer google auth action

* fix (cd): use newer secret as gcp credential

* fix (docker): do not create extra directories

* fix (docker): ignore .github for caching purposes

* fix (docker): use latest rust

* fix: use a better name for manual deployment

* refactor (docker): use standard directories for executable

* fix (cd): most systems expect a "latest" tag

Caching from the latest image is one of the main reasons to add this extra tag. Before this commit, the inline cache was not being used.

* fix (cd): push the build image and the cache separately

The inline cache exporter only supports `min` cache mode. To enable `max` cache mode, push the image and the cache separately by using the registry cache exporter.

This also allows for smaller release images.

* fix (cd): remove unused GHA cache

We're leveraging the registry to cache the actions, instead of using the 10GB limits from Github Actions cache storage

* refactor (cd): use cargo-chef for caching rust deps

* fix (release): use newer debian to reduce vulnerabilities

* fix (cd): use same zone, region and service accounts

* fix (cd): use same disk size and type for all deployments

* refactor (cd): activate interactive shells

Use interactive shells for manual and test deployments. This allow greater flexibility if troubleshooting is needed inside the machines

* fix (docker): do not build with different settings

Compiling might be slow because different steps are compiling the same code 2-4 times because of the variations

* fix(cd): use Mainnet instead of mainnet

* fix(docker): remove tests as a runtime dependency

* fix(cd): use default service account with cloud-platform scope

* fix(cd): keep compatibility with gcr.io

To prevent conflicts between registries, and migrate when the time is right, we'll keep pushing to both registries and use github actions cache to prevent conflicts between artifacts.

* fix(docker): do not download zcash params twice

* feat(docker): add google OS Config agent

Use a separate step to have better flexibility in case a better approach is available

* fix(docker): allow to use zebrad as a command

* feat: add an image to inherit from with zcash params

* refactor(docker): use cached zcash params from previous build

* imp(cd): add double safety measure for production
2022-02-08 20:50:13 -04:00
dependabot[bot] 35222fb30f
Bump google-github-actions/setup-gcloud from 0.4.0 to 0.5.0 (#3471)
Bumps [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/setup-gcloud/compare/v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  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>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-08 10:37:26 +00:00