Commit Graph

670 Commits

Author SHA1 Message Date
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
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
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
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
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
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 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
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
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
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
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 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
Deirdre Connolly 07f120a21a
Restore coverage to use latest nightly (#3450)
Fixes #3367

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-02-01 01:10:28 +00:00
Gustavo Valverde 5fa40216df
refactor (actions): make better use of variables, secrets and versions (#3393)
* style: use global variables and don't double print

Remove repeated instances of global environment variables. Do not print ENV variables on the terminal as GitHub Actions already shows it.

* fix (actions): Use fixed major versions for actions

As actions get recurrent fixes, using a specific version causes more maintance on the pipelines.

On the other hand, using @master versions could make some action unreliable, as breaking changes might be included without further notice, and even change behavior on a daily basis.

* refactor: make better use of ENV variables

A whole step with refex was being used to extract different variables from GitHub's environment. This gets depecrated in favor of using `rlespinasse/github-slug-action@v4` which has slug URL variables.

A SLUG on a variable will:
- put the variable content in lower case
- replace any character by - except 0-9, a-z, ., and _
- remove leading and trailing - character
- limit the string size to 63 characters

This changes also takes care of using the Head or Base branch for deployments. This will allow us tomerge of workflows, as most steps on this deployment actions are very similar, with little variations between workflows.

* fix (actions): use secrets for sensitive information

* revert: use specific versions for dependabot

Reverting commit 8c93409902
2022-01-26 21:46:18 -04:00
Deirdre Connolly 39fc0e27d8
Bump cd workflow timeout to 60 mins (#3412) 2022-01-26 18:45:08 +00:00
Gustavo Valverde 15eca05370
fix (actions): add duplicated workflows with path-ignore (#3405)
GitHub does not support skipped but required checks by default, this an official workaround to allow this feature; which requires to duplicate the same workflow using path-ignore and just executing a step that will always pass, for each job.

Reference: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
2022-01-26 03:19:43 +00:00
Gustavo Valverde 6373a95405
Improve GitHub Actions checks based on files & folders (#3377)
* Segregate linting jobs from CI workflow

Lint on push to all branches, except for main, as this action will be required to merge.

Just run the lint action when a Rust file is changed, as it won't make sense to run it on other scenarios.

DRY with uneeded jobs

* Make actions dependable on changed files or folders

* Fix & add missing paths

* Revert changes removing cargo.lock and deny.toml checks

Also refactor this to use a more redable and change prone cargo-deny-action. And move this actions out of the clippy-deps job, as this are more related to CI than linting.

* Fix wrong indentation

* Add new configuration file from #3386

* Do not fail on licenses as this configuration is missing

* Do not add advisories features

Add advisories checks in a different PR

* Allow tests and coverage on PR series

If we only run CI on branches that are going to merge to main, then PR series become a lot harder to test. (Because each PR is based on the previous PR, not main.)
2022-01-25 07:58:11 -04:00
Conrado Gouvea 4aeabd0b52
Fix interstitial sprout anchors check (#3283)
* Fix interstitial Sprout anchors check

* Update state docs; add sprout_trees_by_anchor to comparisons

* Update book/src/dev/rfcs/0005-state-updates.md

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

* Rename `interstitial_roots` to `interstitial_trees`

* Document consensus rules

* Refactor the docs

* Improve the docs for consensus rules

* Update reference to cached state

* Update zebra-state/src/service/check/anchors.rs

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>

* Fix formatting

Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-01-18 20:18:49 +00:00
Conrado Gouvea 9b9e49953e
Use 2022-01-14 nightly to workaround coverage issue https://github.com/taiki-e/cargo-llvm-cov/issues/128 (#3366) 2022-01-18 19:31:09 +00:00
dependabot[bot] 5543b9b6bc
Bump EmbarkStudios/cargo-deny-action from 1.2.6 to 1.2.9 (#3163)
Bumps [EmbarkStudios/cargo-deny-action](https://github.com/EmbarkStudios/cargo-deny-action) from 1.2.6 to 1.2.9.
- [Release notes](https://github.com/EmbarkStudios/cargo-deny-action/releases)
- [Commits](https://github.com/EmbarkStudios/cargo-deny-action/compare/v1.2.6...v1.2.9)

---
updated-dependencies:
- dependency-name: EmbarkStudios/cargo-deny-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>
2021-12-07 11:08:51 +10:00
Marek 3c9ad89018
Add Sprout anchors to `zebra-state` (#3100)
* Add Sprout anchors to the state

* Update zebra-state/src/service/non_finalized_state/chain.rs

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>

* Return new types of note commitments from Sprout transactions

* Refactor the tests

* Refactor some comments

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

* Increment `DATABASE_FORMAT_VERSION`

* Update `test.yml` with the new image name

* Refactor the `version = 5` transaction description

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>

* Update comment

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
Co-authored-by: teor <teor@riseup.net>
2021-11-30 11:05:58 +01:00
teor 0ef4629232
Automatically download and load sprout parameters (#3085)
* Download and load Sprout parameters using zcash_proofs

Also update some librustzcash dependencies, to avoid duplicate dependencies.

* Update upstream orchard to avoid a compilation error

* Skip librustzcash batch refactor for now, to avoid compilation errors

* Change the cache ID, so we actually cache Sprout

* Move existing file checks into zcash_proofs

* Add a 1 hour timeout to parameter file downloads

* Give other tasks priority, before spawning the download task

* Update to the latest version of our modified librustzcash fork

* Change the cache key for Sprout

* Add 40 minutes to CI timeouts for occasional sprout downloads

* Update to zcash_proofs with split downloads

* Check file sizes to help debug parameter load failures in zcash_proofs

* Start the second download once the first has finished in zcash_proofs

* Document the parameter download task

* Stop hashing existing files twice
2021-11-25 13:26:32 -03:00
teor e054d57622
Speed up CI, and split unrelated and conflicting CI jobs (#3077)
* Move dependency checks to the clippy job

* Split the fake activation heights into their own job

* Fix expected types

* Minimise proptest cases on Windows, macOS, and coverage

We don't expect proptests to fail on different platforms.
2021-11-22 14:26:07 -03:00
teor f7202bfbc0
Download Zcash Sapling parameters and load them from cached files (#3057)
* Replace Zcash parameters crates with pre-downloaded local parameter files

* Download Zcash parameters using the `zcashd` script in CI and Docker

* Add a zcash_proofs dependency to zebra-consensus

* Download Sapling parameters using zcash_proofs, rather than fetch-params.sh

* Add a new `zebrad download` subcommand

This command isn't required for nomrmal usage.
But it's useful when testing, or launching multiple Zebra instances.

* Use `zebrad download` in CI to pre-download parameters

* Log a helpful hint if downloading fails

* Allow some duplicate dependencies currently hidden by orchard

* Spawn a separate task to download Groth16 parameters

* Run the parameter download with code coverage

This avoids re-compining Zebra with and without coverage.

* Update Cargo.lock after rebase

* Try to pass `download` as an argument to `zebrad` in coverage CI

* Fix copy and paste comment typos

* Add path and download examples, like zcash_proofs

* Download params in CI just like zcash_proofs does

* Delete a redundant build step

* Implement graceful shutdown for zebrad start

* Send coverage summary to /dev/null when getting the params path

* Use the correct parameters path and download commands in CI

* Explain pre-downloads

* Avoid calling params_folder twice

* Rename parameter types and methods for consistency

```sh
fastmod SaplingParams SaplingParameters zebra*
fastmod Groth16Params Groth16Parameters zebra*
fastmod PARAMS GROTH16_PARAMETERS zebra*
fastmod params_folder directory zebra*
```

And a manual variable name tweak.

* rustfmt

* Remove a redundant coverage step

Co-authored-by: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com>
2021-11-19 23:02:56 +00:00
dependabot[bot] bdf5f70557
Bump actions/checkout from 2.3.5 to 2.4.0 (#3009)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.5 to 2.4.0.
- [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/v2.3.5...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  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: teor <teor@riseup.net>
2021-11-05 15:08:39 +10:00
Janito Vaqueiro Ferreira Filho 0960e4fb0b
Update to Tokio 1.13.0 (#2994)
* Update `tower` to version `0.4.9`

Update to latest version to add support for Tokio version 1.

* Replace usage of `ServiceExt::ready_and`

It was deprecated in favor of `ServiceExt::ready`.

* Update Tokio dependency to version `1.13.0`

This will break the build because the code isn't ready for the update,
but future commits will fix the issues.

* Replace import of `tokio::stream::StreamExt`

Use `futures::stream::StreamExt` instead, because newer versions of
Tokio don't have the `stream` feature.

* Use `IntervalStream` in `zebra-network`

In newer versions of Tokio `Interval` doesn't implement `Stream`, so the
wrapper types from `tokio-stream` have to be used instead.

* Use `IntervalStream` in `inventory_registry`

In newer versions of Tokio the `Interval` type doesn't implement
`Stream`, so `tokio_stream::wrappers::IntervalStream` has to be used
instead.

* Use `BroadcastStream` in `inventory_registry`

In newer versions of Tokio `broadcast::Receiver` doesn't implement
`Stream`, so `tokio_stream::wrappers::BroadcastStream` instead. This
also requires changing the error type that is used.

* Handle `Semaphore::acquire` error in `tower-batch`

Newer versions of Tokio can return an error if the semaphore is closed.
This shouldn't happen in `tower-batch` because the semaphore is never
closed.

* Handle `Semaphore::acquire` error in `zebrad` test

On newer versions of Tokio `Semaphore::acquire` can return an error if
the semaphore is closed. This shouldn't happen in the test because the
semaphore is never closed.

* Update some `zebra-network` dependencies

Use versions compatible with Tokio version 1.

* Upgrade Hyper to version 0.14

Use a version that supports Tokio version 1.

* Update `metrics` dependency to version 0.17

And also update the `metrics-exporter-prometheus` to version 0.6.1.
These updates are to make sure Tokio 1 is supported.

* Use `f64` as the histogram data type

`u64` isn't supported as the histogram data type in newer versions of
`metrics`.

* Update the initialization of the metrics component

Make it compatible with the new version of `metrics`.

* Simplify build version counter

Remove all constants and use the new `metrics::incement_counter!` macro.

* Change metrics output line to match on

The snapshot string isn't included in the newer version of
`metrics-exporter-prometheus`.

* Update `sentry` to version 0.23.0

Use a version compatible with Tokio version 1.

* Remove usage of `TracingIntegration`

This seems to not be available from `sentry-tracing` anymore, so it
needs to be replaced.

* Add sentry layer to tracing initialization

This seems like the replacement for `TracingIntegration`.

* Remove unnecessary conversion

Suggested by a Clippy lint.

* Update Cargo lock file

Apply all of the updates to dependencies.

* Ban duplicate tokio dependencies

Also ban git sources for tokio dependencies.

* Stop allowing sentry-tracing git repository in `deny.toml`

* Allow remaining duplicates after the tokio upgrade

* Use C: drive for CI build output on Windows

GitHub Actions uses a Windows image with two disk drives, and the
default D: drive is smaller than the C: drive. Zebra currently uses a
lot of space to build, so it has to use the C: drive to avoid CI build
failures because of insufficient space.

Co-authored-by: teor <teor@riseup.net>
2021-11-02 18:46:57 +00:00
teor 9963471b7c
Check for duplicate crate dependencies in CI (#2986)
* Add default deny.toml for "cargo deny check bans"

`cargo deny init`

* Delete unused "cargo deny" config entries

Also cleanup trailing whitespace.

* Deny duplicate crates and unexpected crate sources

Allow the current set of duplicates and sources,
with references to the tickets that will fix them.

* Check for duplicate dependencies in CI

Also check for:
- unexpected crate sources
- outdated Cargo.lock
  (required for accurate duplicate and source checks)

* Revert CI name changes so required statuses pass

* Fix ticket for sentry-tracing
2021-11-01 21:19:22 +00:00
Deirdre Connolly 0381c2347b
ZIP-401: weighted random mempool eviction (#2889)
* ZIP-401 weighted random mempool eviction

* rename zcash.mempool.total_cost.bytes to zcash.mempool.cost.bytes

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

* Remove duplicated lines

* Add cost() method to UnminedTx

Update serialization failure messages

* More docs quoting ZIP-401 rules

* Change mempool::Storage::new() to handle Copy-less HashMap, HashSet

* mempool: tidy cost types and evict_one()

* More consensus rule docs

* Refactor calculating mempool costs for Unmined transactions

* Add a note on asympotic performance of calculating weights of txs in mempool

* Bump test mempool / storage config to avoid weighted random cost limits

* Use mempool tx_cost_limit = u64::MAX for some tests

* Remove failing tests for now

* Allow(clippy::field-reassign-with-default) because of a move on a type that doesn't impl Copy

* Fix mistaken doctest formatting

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>

* Increase test timeout for Windows builds

Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2021-10-27 00:21:19 +00:00
teor 35290db052
Only run fake activation heights tests on zebra-state (#2929)
Also only run the zebrad acceptance tests on macOS.

Re-running the compiler and test binaries for unused crates is slow in CI.

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-10-21 23:51:20 +00:00
dependabot[bot] 0b25257bef
Bump actions/checkout from 2.3.4 to 2.3.5 (#2898)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.3.5.
- [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/v2.3.4...v2.3.5)

---
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>
Co-authored-by: teor <teor@riseup.net>
2021-10-19 04:03:10 +00:00
dependabot[bot] d307d43e19 Bump codecov/codecov-action from 2.0.3 to 2.1.0
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.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.0.3...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-13 15:14:19 -04:00
Deirdre Connolly 0e60936ad3
Restore coverage (#2684)
* Update coverage workflow

* Remove cache layer, up timeout to 60 minutes anyway
2021-08-27 11:03:40 -04:00
Conrado Gouvea bc4194fcb9
ZIP-221/244 auth data commitment validation in checkpoint verifier (#2633)
* Add validation of ZIP-221 and ZIP-244 commitments

* Apply suggestions from code review

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

* Add auth commitment check in the finalized state

* Reset the verifier when comitting to state fails

* Add explanation comment

* Add test with fake activation heights

* Add generate_valid_commitments flag

* Enable fake activation heights using env var instead of feature

* Also update initial_tip_hash; refactor into progress_from_tip()

* Improve comments

* Add fake activation heights test to CI

* Fix bug that caused commitment trees to not match when generating partial arbitrary chains

* Add ChainHistoryBlockTxAuthCommitmentHash::from_commitments to organize and deduplicate code

* Remove stale comment, improve readability

* Allow overriding with PROPTEST_CASES

* partial_chain_strategy(): don't update note commitment trees when not needed; add comment

Co-authored-by: teor <teor@riseup.net>
2021-08-23 14:17:33 +00:00
Conrado Gouvea f6416ff8ee
Update to cache v10 (#2644) 2021-08-19 17:33:22 +00:00
Conrado Gouvea 4014e0fec8
Attempt to fix test.yml (#2635)
* Only use -t flag to docker run, set SSH keep alive

* Remove SSH flag for now

* Add ssh flag back to test.yml gcloud compute ssh command

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-08-16 19:02:39 -04:00
Conrado Gouvea 32e1237df8
Update cache to v9 (#2598)
* Update cache to v9

* Update state disk image

* Rename

* Remove ending semicolon for remote commands

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-08-11 17:11:59 -04:00
Deirdre Connolly 21d71a651e
Merge pull request #2601 from ZcashFoundation/dconnolly-patch-1
Sync to, not past, activation for regenerate-stateful-test-disks.yml
2021-08-11 12:15:22 -04:00
teor e2a3a38047
Disable Rust beta tests in CI, due to a rust bug (#2542) 2021-07-29 13:02:12 +10:00
teor 5684667a31
Update to google-github-actions/setup-gcloud in workflows (#2533)
* Update to google-github-actions/setup-gcloud in workflows

See https://github.com/google-github-actions/setup-gcloud#use-google-github-actionssetup-gcloud

* Also update the Google Cloud test workflow

* Also update regenerate stateful test disks

* Also update Manual Deploy

* Also update zcashd deploy
2021-07-27 12:13:04 -04:00
teor c8305fba1f
Stop using the wrong name for the coverage action (#2453)
Previously the action was called "CI", which could be confusing.
2021-07-07 11:36:54 -03:00
teor 4c321f6fa1 Skip IPv6 network tests in google cloud workflows
Also consistently use the zebra-test:latest docker image.
2021-06-28 23:34:57 -04:00
teor efb2ffbf33 Stop ignoring failed cached state tests
Previously, Zebra's cached state workflows would run all of Zebra's
tests, but they would ignore the results for most tests. They would only
fail if the mainnet cached state test failed.

After this fix, the tests fail if any test or build step fails.
2021-06-28 23:34:57 -04:00
teor 17e94bd241
Stop skipping the cached sync tests in CI (#2402)
This is a bugfix on PR #2314, which changed the name of the test
function in the code, but didn't change the CI workflow.
2021-06-29 12:49:42 +10:00
Alfredo Garcia 544d182d25
Add and use a function for mandatory checkpoint (#2314)
* add `mandatory_checkpoint_height()` function

* use mandatory checkpoint instead of canopy in acceptance tests
2021-06-18 10:05:28 +10:00
Deirdre Connolly ea15ad1131
Use Swatinem/rust-cache@v1 (#2291) 2021-06-15 11:36:33 +10:00
Deirdre Connolly 28c3a23f14
Replace bespoke source-based coverage config with cargo-llvm-cov (#2286)
* Replace bespoke source-based coverage config with cargo-llvm-cov

* Keep incremental builds disabled

* Use cargo-llvm-cov ^0.1.0-alpha.4

Co-authored-by: teor <teor@riseup.net>
2021-06-15 11:35:26 +10:00
teor 0b4f32a324 Maybe GitHub actions doesn't like the variable substitution 2021-06-14 20:24:37 -04:00
teor 130e348b0f Use a different name for clippy job and results 2021-06-14 20:24:37 -04:00
teor 0a34d506cf CI: Remove duplicate Clippy job name
Naming the job and the task makes it show up twice
2021-06-14 20:24:37 -04:00
Deirdre Connolly 71b41f0206 cargo install mdbook 2021-06-14 17:12:31 -04:00
Deirdre Connolly 45cbfa8e67 Upgrade mdbook to 0.4.10 2021-06-14 17:12:31 -04:00
teor 53e50821ec Remove outdated pinned nightly in coverage workflow
nightly-2021-03-24 is incompatible with semver 1.0.2.
2021-06-09 16:10:47 -04:00
dependabot[bot] aac0b5d60f build(deps): bump codecov/codecov-action from 1.5.0 to 1.5.2
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1.5.0 to 1.5.2.
- [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/v1.5.0...v1.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-09 15:55:36 -04:00
Deirdre Connolly 8b5b367c8a
Create workflow to regenerate cached state disks for tests (#2247)
* Create workflow to regenerate cached state disks for tests

* Mount testnet disk
2021-06-07 13:14:30 +10:00
Deirdre Connolly 584f35ce68 Update test job to use the updated state 2021-06-04 15:14:11 -04:00
teor dd7747bc69
Security: Remove checkout credentials from GitHub actions (#2158)
* Remove checkout credentials from CD action
* Remove checkout credentials from CI action
* Remove checkout credentials from coverage action
* Remove checkout credentials from docs action
* Remove checkout credentials from manual deploy action
* Remove checkout credentials from test action
* Remove checkout credentials from zcashd action
2021-05-17 09:32:38 +10:00
dependabot[bot] 2ea1d8624d
build(deps): bump codecov/codecov-action from 1 to 1.5.0 (#2142)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1 to 1.5.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/v1...v1.5.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 22:12:49 +00:00
dependabot[bot] 300ce12a29
build(deps): bump actions-rs/cargo from 1 to 1.0.3 (#2140)
Bumps [actions-rs/cargo](https://github.com/actions-rs/cargo) from 1 to 1.0.3.
- [Release notes](https://github.com/actions-rs/cargo/releases)
- [Changelog](https://github.com/actions-rs/cargo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/actions-rs/cargo/compare/v1...v1.0.3)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 07:54:02 +10:00
dependabot[bot] 48657506c5
build(deps): bump actions-rs/clippy-check from 1 to 1.0.7 (#2141)
Bumps [actions-rs/clippy-check](https://github.com/actions-rs/clippy-check) from 1 to 1.0.7.
- [Release notes](https://github.com/actions-rs/clippy-check/releases)
- [Changelog](https://github.com/actions-rs/clippy-check/blob/master/CHANGELOG.md)
- [Commits](https://github.com/actions-rs/clippy-check/compare/v1...v1.0.7)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 07:52:10 +10:00
dependabot[bot] e4ed072c28
build(deps): bump actions/checkout from 2 to 2.3.4 (#2143)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 2.3.4.
- [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/v2...v2.3.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 07:51:12 +10:00
teor f33db69267 Remove broken ci-success check
Previously, Zebra made ci-success a required check for merges to main. And then we made ci-success depend on a bunch of other CI checks.

But this doesn't work as expected, because if the dependent checks fail, ci-success is skipped, and the branch protection rules allow the branch to be merged to main.
2021-04-29 18:28:47 -04:00
teor 7e395298f1 Just run builds on ubuntu stable
But keep the tests across ubuntu, macOS, Windows x Rust stable, beta
2021-04-30 07:35:46 +10:00
teor d0e6597fec Use minimal cargo components in docs workflow 2021-04-30 07:35:46 +10:00
teor ea4d3b23f9 Use minimal cargo components in CI 2021-04-30 07:35:46 +10:00
Kirill Fomichev fb799b202c
Update dependencies to support Apple M1, fix Windows CI LLVM paths (#2026)
* build(deps): update for Apple M1

* fix ci

* bump rocksdb

* bump zcash_script
2021-04-19 20:39:24 +10:00
Deirdre Connolly a5ff0e983b Pin coverage.yml nightly to 2021-03-24 for now 2021-03-26 11:24:16 -04:00
teor ee0fc35380
Increase coverage CI timeout (#1947)
Since coverage uses nightly, it can be slightly slower than other CI.
2021-03-26 09:47:14 +10:00
Deirdre Connolly 4aedf08a95
Merge pull request #1927 from ZcashFoundation/ci
Add final job to ci.yml that passes when all other ci.yml jobs pass
2021-03-20 23:57:13 -04:00
Deirdre Connolly 5791ee3339 Sync _from_ canopy, not _to_, now that we have state 2021-03-20 19:34:33 -04:00
Deirdre Connolly bbdecbe9ad Update mainnet stateful sync tests to use new disk image
Leave testnet commented out until testnet disk image is ready.
2021-03-20 19:34:33 -04:00
Deirdre Connolly 9b2090b4a1 Update test.yml 2021-03-20 19:34:33 -04:00
Deirdre Connolly a091f63c79 Generate Canopy activation disks 2021-03-20 19:34:33 -04:00
teor c57baad7e8
Merge pull request #1923 from ZcashFoundation/coverage-no-incremental
Disable incremental compilation in coverage builds to avoid disk space errors.
2021-03-19 11:33:25 +10:00
teor 74cc30c307 Change the cached sync tests to canopy
This change requires a cached state rebuild. The rebuilt state will be
significantly larger.
2021-03-18 10:13:47 +10:00
Deirdre Connolly 159d5a22f2 auto-delete manual deploy disks
If you need to keep them from being deleted, you can update them manually from the gcloud console, as the instance will not be deleted automatically.
2021-03-06 01:54:00 -05:00
Deirdre Connolly b29294b4ee Explicitly auto-delete additional cache disks
This property is supposedly set to 'true' by default, but we are still leaving disks behind. 
Perhaps because: "...if the disk is later detached from the instance, this option won't apply."
https://cloud.google.com/sdk/gcloud/reference/compute/instance-templates/create-with-container#--disk

Resolves #1845
2021-03-06 01:54:00 -05:00
Deirdre Connolly 5b1a0b8658 Update and rename zcashd-cd.yml to zcashd-manual-deploy.yml
And rename the job name
2021-03-05 23:53:51 -05:00
Deirdre Connolly c2e42d06d2 Fix grep in zcashd-cd.yml 2021-03-05 23:48:17 -05:00
Deirdre Connolly 8f9e993fab Fix grep now that `gcloud compute instance-groups list` has more than one result 2021-03-05 23:48:17 -05:00
Jane Lusby db52d63b86 change machine type to one available in central region 2021-03-05 23:20:05 -05:00
Jane Lusby 3e60f9064f fix bash syntax error 2021-03-05 23:20:05 -05:00
Jane Lusby 418d4ce9ce Apply suggestions from code review
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-03-05 23:20:05 -05:00
Jane Lusby 42c5a7559e Add manual deploy workflow for zcashd images 2021-03-05 23:20:05 -05:00
Alfredo Garcia d8165ccb4d Apply suggestions from code review
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-03-03 18:06:00 -05:00
Alfredo Garcia 97f400ff96 remove redundant step 2021-03-03 18:06:00 -05:00
Alfredo Garcia efba34786c re-enable docs CI with different firebase project IDs 2021-03-03 18:06:00 -05:00
teor a445cfbd55
Set ZEBRA_SKIP_NETWORK_TESTS using Windows syntax (#1782)
Use Powershell syntax to set ZEBRA_SKIP_NETWORK_TESTS on Windows.

Also skip the entire large sync test step on Ubuntu and
Windows, because the tests are skipped anyway due to
ZEBRA_SKIP_NETWORK_TESTS. This saves some 
compilation time.
2021-02-19 19:36:32 +10:00
teor 535e9d0234
Disable failing docs workflow (#1787) 2021-02-19 19:35:46 +10:00
Alfredo Garcia a9e4768d35 remove fail-fast from test job 2021-02-19 18:03:07 +10:00
Deirdre Connolly 7665c6792e Fix the yaml indentation for the docs.yml workflow
Gotta love yaml.
2021-02-18 22:50:48 -05:00
Alfredo Garcia c8823e9552 change coverage to run on ubuntu-latest 2021-02-16 19:43:36 -05:00
Alfredo Garcia 280496ef4e bring coverage and docs back into CI 2021-02-16 19:43:36 -05:00
teor 47bcf6309a
Show env vars in CI (#1751)
And standardise how we set them
2021-02-17 08:04:00 +10:00
teor c9ca601cff Revert "Change skip network test name and comments"
This reverts commit f85006a798.
2021-02-16 12:50:14 -05:00
Deirdre Connolly 9493391a2a CI: bump build and test timeouts to 60 minutes 2021-02-16 12:47:35 -05:00
Deirdre Connolly 26aded0ef9 Run CI workflow on push to #main & manual request
We used to always run the CI workflow on push/merge to #main and at some point stopped; 
we still link to the status of this workflow on #main from our README. I think we should bring it back.
Also allows manual triggering of the workflow, which can come in handy if you are working
on a branch but haven't opened a PR yet.
2021-02-15 21:19:57 -05:00
Alfredo Garcia 366f239974
Resolve Windows CI disk space issues (#1726)
* remove windows conditional
* fully separate tests from large tests
* add rust beta to new large test jobs
* increase build time for windows
* disable cargo increment
2021-02-16 09:44:49 +10:00
Alfredo Garcia f85006a798 Change skip network test name and comments 2021-02-15 14:54:32 -05:00
Alfredo Garcia a4d8b16213 fix title 2021-02-11 15:51:31 -05:00
Alfredo Garcia 49b23d0bbe add rust beta to zebra-chain building job 2021-02-11 15:51:31 -05:00
Alfredo Garcia 33af7130dc Apply suggestions from code review
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-02-11 15:51:31 -05:00
Alfredo Garcia 8c48ad6846 add rust version names to jobs 2021-02-11 15:51:31 -05:00
Alfredo Garcia 58a73c5626 add beta rust to test jobs 2021-02-11 15:51:31 -05:00
Alfredo Garcia de78fcf0f6 try a matrix for rust stable and beta 2021-02-11 15:51:31 -05:00
Alfredo Garcia 43ff80f28f try a CI build with beta rust 2021-02-11 15:51:31 -05:00
teor bf42e468fc Temporarily disable failing docs CI 2021-02-05 07:50:46 +10:00
teor 69088545d9 Temporarily disable failing coverage CI 2021-02-05 07:50:46 +10:00
Deirdre Connolly f805d2c8ab Specify v5, not 'latest' 2021-01-29 17:38:46 -05:00
Deirdre Connolly 018fa2ff62 Enable Release Drafter workflow 2021-01-29 17:33:38 -05:00
Alfredo Garcia 6fd5b2db30
Temporally disable sync_large_checkpoints on Windows (#1658)
* temporally disable sync_large_checkpoints from CI

* Allow large checkpoint sync tests only on ubuntu and macOS

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-01-29 17:29:32 -05:00
Alfredo Garcia 374f9400d0 cleanup: remove duplicated isolated test from ci 2021-01-27 12:19:48 -08:00
Deirdre Connolly a21eaad707 Use mdbook 0.4.5
https://blog.rust-lang.org/2021/01/04/mdbook-security-advisory.html
2021-01-08 21:24:31 -05:00
Deirdre Connolly 3266265f7f Update testnet sync test 2020-12-16 20:36:31 -05:00
Deirdre Connolly e004d40ac1 Update cached state to @419200 on mainnet, not past it 2020-12-16 17:03:50 -05:00
Deirdre Connolly fbca3c7434 Remove testnet --container-mount-disk for now 2020-12-16 14:45:07 +10:00
Deirdre Connolly 4d387efe1d Disable tesnet post-Sapling sync tests for now 2020-12-16 14:45:07 +10:00
Deirdre Connolly 93b91769d6 Update stateful disks for post-Sapling-activation sync tests 2020-12-16 14:45:07 +10:00
Deirdre Connolly 8f58c41a38
Pipe SHORT_SHA into container builds (#1451) 2020-12-03 22:51:42 -05:00
Jane Lusby c64d8dc8aa
switch to source based coverage (#1293)
* switch to new llvm source based coverage

* upload artifact and simplified

* filter out irrelevant dependency coverage

* enable the correct filters on coverage

* correctly specify all binaries

* remove sparse flag from coverage

* update the coverage script organization

* fix typo in coverage script
2020-12-03 13:36:40 -08:00
Deirdre Connolly 5c465abed2 Remove timeout on test job 2020-11-24 22:14:37 -05:00
Deirdre Connolly 487ee6d317 Use cloud disk default of auto-delete=true 2020-11-24 11:04:30 -05:00
Deirdre Connolly e6210caffb Create and mount another state cache for Sapling activation on testnet and use for running sync_past_sapling_testnet 2020-11-24 11:04:30 -05:00
Deirdre Connolly 3c9b7927a5 Run sync_past_sapling_mainnet, not sync_to_sapling_mainnet 2020-11-24 11:04:30 -05:00
Deirdre Connolly cf82560538 Reference correct disk name when mounting in container 2020-11-24 11:04:30 -05:00
Deirdre Connolly 466b9ea303 Not a tty 2020-11-24 11:04:30 -05:00
Deirdre Connolly 6dab76bc36 Avoid disk naming collisions 2020-11-24 11:04:30 -05:00
Deirdre Connolly 4a67e0e7bb Enable stateful/long sync tests by features, mount rocksdb-based state at Sapling activation for sync_past_sapling_mainnet test 2020-11-24 11:04:30 -05:00
Jane Lusby b96ca38d1c fix args issue 2020-11-24 11:04:30 -05:00
Jane Lusby 583ec8738b change ci to not blanket enable all ignored tests 2020-11-24 11:04:30 -05:00
Henry de Valence 6202cb45b1 ci: remove nightly clippy
Closes #1212
2020-11-23 22:18:43 -08:00
Deirdre Connolly 558661a531 Remove test attributes and allow(dead_code) for test code that tests currently unimplemented functionality 2020-11-21 05:40:25 -05:00
Deirdre Connolly 036abd50ac Back to stable for test image 2020-11-21 05:40:25 -05:00
Deirdre Connolly 52296b96c7 Bump test job timeout to 45 minutes because Windows debug builds are taking a while 2020-11-21 05:40:25 -05:00
Deirdre Connolly 706c42de3e Filter broken command tests while including ignored otherwise 2020-11-21 05:40:25 -05:00
Deirdre Connolly af5f3c1395 Bump down cores, running into default quotas 2020-11-19 19:47:38 -05:00
Deirdre Connolly f6dc92a256 Correctly grep for instance group & region 2020-11-19 18:55:19 -05:00
Deirdre Connolly fb66c7ecdf Supply --image-project, return to N2 not N2D 2020-11-19 18:10:04 -05:00
Deirdre Connolly 623949bbaa Remove vestigial 'needs' 2020-11-19 16:50:08 -05:00
Deirdre Connolly e325775bf3 Specify region not just zone 2020-11-19 16:50:08 -05:00
Deirdre Connolly 53d63d0514 Build this branch 2020-11-19 16:20:36 -05:00
Deirdre Connolly 938b6d6fdd Make the full test suite command explicit 2020-11-19 16:20:36 -05:00
Deirdre Connolly 44970af929 Split up big test job into its own workflow 2020-11-19 16:20:36 -05:00
dependabot[bot] 3edc1f7db4 build(deps): bump codecov/codecov-action from v1.0.14 to v1.0.15
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.14 to v1.0.15.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.14...239febf655bba88b16ff5dea1d3135ea8663a1f9)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-18 03:07:14 -05:00
Deirdre Connolly 40b012acef Add mdbook stuff to path using environment files/variables instead of workflow commands
Fixes #1309
2020-11-16 21:18:19 -05:00
Deirdre Connolly 2b8d696221
Better naming workflows (#1301)
* Better workflow names

* We run zebrad
2020-11-15 01:17:46 -05:00
Deirdre Connolly bb99a5aa2a Linewrap 2020-11-14 23:19:31 -05:00
Deirdre Connolly 477eac7f19 Properly use Dockerfile ARG values 2020-11-14 22:31:38 -05:00
Deirdre Connolly 7023465d91 Pass in workflow inputs for network and checkpoint_sync (with defaults) all the way down 2020-11-14 22:31:38 -05:00
Deirdre Connolly 1a1240a943 Rearrange some deploy flags 2020-11-14 22:31:38 -05:00
Deirdre Connolly 472163f817 Add a manual zebrad node deploy workflow 2020-11-14 22:31:38 -05:00
Deirdre Connolly 8b5b1b49cc
Run acceptance tests post-merge with large cached state (#1282)
* Create and mount persistent disk to store zebrad state, update runner container config to use

* Enable checkpoint sync in zebrad image config

* Lower state memory cache from 500MB to 50MB

* Upgrade host to n2-standard-4

* Bump zebrad-cache disk size to 100GB

* Copy zebrad as the tests are compiled with a hardcoded path to it

* Rename all debug binaries for easy invocation

* Name state cache disk, use the correct path to binaries

* Create volume and all that jazz on instance creation

Otherwise there's a lot of on-instance commands to do that is just handled by this shortcut.

* Explicitly mount the state cache and cleanup test instance

* Wait for zebra-test container to start then attach

* Always clean up even if the tests step fails

* Keep fast sleep but only print 'waiting' once
2020-11-12 15:18:35 -05:00
Deirdre Connolly 95fce3ad68 Pin the version of tarpaulin used for collecting coverage to 0.16.0
0.17.0 has a bug that causes segfaults:
https://github.com/xd009642/tarpaulin/issues/618
2020-11-12 00:51:38 -05:00
dependabot[bot] 44e6023434 build(deps): bump w9jds/firebase-action from v1.5.0 to v2.0.0
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from v1.5.0 to v2.0.0.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v1.5.0...0a5173f97c956332c9e71750526e0ca6f38cbe3a)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-09 08:40:03 -05:00
teor ea510b7d41
Run a block sync in CI with 2 large checkpoints (#1193)
* Run large checkpoint sync tests in CI
* Improve test child output match error context
* Add a debug_stop_at_height config
* Use stop at height in acceptance tests

And add some restart acceptance tests, to make sure the stop at
height feature works correctly.
2020-10-27 19:25:29 +10:00
Deirdre Connolly 9490fc6a3a Force Clippy nightly lints to all warn, never error 2020-10-27 00:09:39 -04:00
teor b4f92adc40 Disable sync tests on Windows CI 2020-10-21 00:58:08 -04:00
teor 0343e28d3a Disable sync test on ubuntu CI runners
They don't seem to have DNS or network configured during the tests.

Also make capitalisation of step names consistent.
2020-10-21 00:58:08 -04:00
Deirdre Connolly 5df0ff4086 Add Clippy (stable) job and continue-on-error Clippy (nightly) job
Do not pass -- -D warnings to the Clippy (nightly) job

We do _not_ want the nightly job to fail on warnings.

Resolves #1156
2020-10-20 01:03:43 -04:00
dependabot[bot] 0856e5d654 build(deps): bump codecov/codecov-action from v1.0.13 to v1.0.14
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.13 to v1.0.14.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.13...7d5dfa54903bd909319c580a00535b483d1efcf3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-19 10:59:44 -04:00
Deirdre Connolly 10da2873fd Set timeout-minutes per job 2020-10-12 18:39:33 -04:00
Deirdre Connolly 686071e023 Default all GitHub Actions jobs to timeout at 30 minutes
Resolves #1142
2020-10-12 18:39:33 -04:00
Jane Lusby 0b4e974c9e
export proptest impls for use in downstream crates (#1092)
* export proptest impls for use in downstream crates

* add testjob for disabled feature in zebra-chain

* run rustfmt

* try to fix github actions syntax

* differentiate name

* prove that github action tests zebra-chain build without features

* revert change from last commit now that test is running

* remove accidentally introduced newline

* Update .github/workflows/ci.yml

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2020-09-23 18:52:52 -07:00
Deirdre Connolly 6b88479480 Run CI workflow jobs on every PR, just like Cloud Build 2020-09-10 14:26:27 -04:00
Deirdre Connolly f967e29d13
Move coverage step to common workflow for PRs and pushes to main (#984)
So we can consistently collect coverage data on the default branch, which CodeCov needs
to compare branch coverage and line data against.
2020-09-01 13:47:34 -07:00
Alfredo Garcia 780e675517 change env syntax 2020-08-24 14:57:01 -04:00
Alfredo Garcia 6dd859e0cf add RUST_BACKTRACE to CI tests 2020-08-24 14:57:01 -04:00
Jane Lusby 1d6183ef84
Make zebra-script wrap the C++ script implementation in zcashconsensus (#708)
* attempt to use zcashconsensus crate in zebra-script

* boop

* update verify fn to use zebra types

* a bit more cleanup

* cleanup

* more

* beep boop

* fix renamed member

* cleaning

* get a real branch id

* remove as of yet unneeded api

* Update zebra-chain/src/transaction.rs

* Update zebra-chain/src/transaction.rs

* more cleanup

* oops wrong dep section

* use a tuple to communicate arg association

* update to use published version of zcash_script

* fix new compiler error

* install llvm on windows

* fix bindgen bug????

* try to get docker file to win

* okay try everything

* fix windows build maybe

* always download choco

* fix paths for moved types

* try a different error message

* try convenience script

* try installing just llvm

* add back one more

* try installing some headers

* try a diff package

* try everything

* remove the minimum

* try newer docker builder image

* cleanup docker image

* cleanup extra ci step
2020-08-18 11:08:53 -07:00
dependabot[bot] e67d3fc5e3 build(deps): bump codecov/codecov-action from v1.0.12 to v1.0.13
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.12 to v1.0.13.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.12...6004246f47ab62d32be025ce173b241cd84ac58e)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-18 06:43:03 -04:00
Henry de Valence 455f91501d doc: exclude zebra-utils, zebra-checkpoint.
These are internal-only crates for development.
2020-08-17 12:47:32 -07:00
Deirdre Connolly eda6d86d3e Try naively parallelizing test and build jobs on our platform matrix 2020-08-14 20:27:53 -04:00
Deirdre Connolly ada3066e14 Fix rebase conflict artifacts 2020-08-14 02:04:12 -04:00
Deirdre Connolly 006137dae1 Increase timeout on coverage job, reorg config 2020-08-14 02:04:12 -04:00
Deirdre Connolly b4245f4d01
Fix healthcheck (tracing) endpoint (#895)
* Switch to n1-highcpu-2

* Add tracing.endpoint_addr config to release docker image
2020-08-13 03:31:09 -04:00
Deirdre Connolly 250e1af4f1
Use an n1-standard-2 machine for node deployments (#893)
We don't load the entire blockchain into memory anymore. 😂

Resolves #892
2020-08-12 20:08:19 -07:00
Henry de Valence a987394782
Add KaTeX to rendered docs. (#832)
This adds a single test formula to the `zebra-chain` docs.  We can remove it
after merging this and running it through CI to confirm that it works.
2020-08-05 17:34:30 -07:00
Deirdre Connolly 0cd8b7e7bd Rename pr.yml to ci.yml 2020-07-24 18:18:46 -04:00
Deirdre Connolly e24cd5755b Add a nicer human name to coverage job 2020-07-24 18:18:46 -04:00
Deirdre Connolly bbc6fb82bf Increase timeout on coverage job to 10mins, reorg config 2020-07-24 18:18:46 -04:00
dependabot[bot] 80597087b3 build(deps): bump codecov/codecov-action from v1.0.11 to v1.0.12
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.11 to v1.0.12.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.11...07127fde53bc3ccd346d47ab2f14c390161ad108)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-23 18:48:04 -04:00
dependabot[bot] 92bb3c86db build(deps): bump codecov/codecov-action from v1.0.10 to v1.0.11
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.10 to v1.0.11.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.10...6d208f5b527841fb050f92f778e86cb808dacdcb)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-21 12:19:26 -04:00
Jane Lusby e06357f795
Add skeleton of eventual zebra book (#653)
* Add skeleton of eventual zebra book

* reorg sections

* restore file and reorg book a little

* try setting up a firebase deployment

* allow firebase ci to work on test

* download mdbook

* fix book path

* use newer version of mdbook

* remove event hook for book branch pre merge

* Apply suggestions from code review

Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca>

Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca>
2020-07-17 20:15:50 -07:00
Deirdre Connolly 56361654c6
Fix CD workflow using cloudbuild.yaml (#637)
* Fix variable substitutions in CD workflow and gcloud build config

* Docker needs everything lowercase

* Store container image in GCR

* Don't use GITHUB_REPOSITORY
2020-07-10 07:37:54 -04:00
Deirdre Connolly e0a71c229d
Trigger Google Cloud Builds via GitHub App integration (#614)
Use cloudbuild.yaml for all invocations including via gcloud cli and github build triggers
2020-07-09 14:22:56 -04:00
Deirdre Connolly 2cd58c8325
Add RedJubjub signature verifier service (#460)
Using tower-batch-based async pattern.

Now the Verifier is agnostic of redjubjub SigTypes.  Updated tests to
generate sigs of both types and batch verifies the whole batch.

Resolves #407
2020-07-08 17:23:00 -04:00
Jane Lusby 959f029457
make clippy warnings errors in CI (#605)
* make clippy warnings errors in CI

* Apply fixes from cargo clippy --all-features --all-targets -- -D warnings

* Resolve merge conflicts

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2020-07-07 16:26:22 -07:00
Deirdre Connolly a267030d7b Adjust coverage job to only trigger on changes to *.rs files
Moves it to its own workflow. Also pulls in latest tarpaulin release every time. 🤞
2020-07-02 15:38:20 -04:00
dependabot[bot] de08f66b33 Bump codecov/codecov-action from v1.0.7 to v1.0.10
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.7 to v1.0.10.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.7...f3570723ef743f6942b6a480461ed0cd6c0f9baa)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-02 06:44:39 -04:00
Deirdre Connolly eff8a3889e Revert "Sign container images for later binary authorization"
This reverts commit 0bb8b2b059.
2020-06-25 17:03:07 -04:00
Deirdre Connolly 038a09ad36 Revert "Use gcloud sdk latest stable in actions; use --quiet for alpha commands"
This reverts commit 8367c765a0.
2020-06-25 17:03:07 -04:00
Deirdre Connolly 839d4ab9fb Revert "Move --quiet around"
This reverts commit 01e6d01d9b.
2020-06-25 17:03:07 -04:00
Deirdre Connolly e8ff7a1dd8 Revert "Verify that the attestation was created"
This reverts commit c1f97e21c9.
2020-06-25 17:03:07 -04:00
Deirdre Connolly c1f97e21c9 Verify that the attestation was created 2020-06-25 16:47:29 -04:00
Deirdre Connolly 01e6d01d9b Move --quiet around 2020-06-25 16:47:29 -04:00
Deirdre Connolly 8367c765a0 Use gcloud sdk latest stable in actions; use --quiet for alpha commands 2020-06-25 16:47:29 -04:00
Deirdre Connolly 0bb8b2b059 Sign container images for later binary authorization 2020-06-25 16:47:29 -04:00
dependabot[bot] 5c0df915f1 Bump w9jds/firebase-action from v1.3.1 to v1.5.0
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from v1.3.1 to v1.5.0.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v1.3.1...6d1a577caffa15dfad8cc3d95e8ea2ac7ff51f7f)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-22 11:55:43 -04:00
Deirdre Connolly 2bdd07c1bc
Create instance group if it doesn't exist, update it if it does (#513)
* Deploy instance group if it doesn't exist, update it if it does

* Rename push.yml to cd.yml

* Rename some CD steps
2020-06-21 04:39:47 -04:00
Deirdre Connolly 2f87a9a9f6 Update existing managed instance groups on deploy 2020-06-19 03:46:09 -04:00
Deirdre Connolly 509f0763ad Scope deploys to main, gcloud branches; shorten initial delay 2020-06-19 03:46:09 -04:00
Deirdre Connolly c901b42c75 Shorten health check delay from 3 minutes to 1 2020-06-19 03:46:09 -04:00
Deirdre Connolly c85acde18f Add 'zebrad' tags to instance templates
And add 'one time' commands commented out for managing firewall rules.
2020-06-19 03:46:09 -04:00
Deirdre Connolly f95e7d5595 Add health check 2020-06-19 03:46:09 -04:00
Deirdre Connolly 4aabadc67d Remove zone param 2020-06-19 03:46:09 -04:00
Deirdre Connolly 621a14abe9 Managed group of size 1 seems to reliably work 🙃 2020-06-19 03:46:09 -04:00
Deirdre Connolly c7046eb6f5 Create instance group in one specified zone 2020-06-19 03:46:09 -04:00
Deirdre Connolly 20e0e4bef0 Go back to project default machine type for now 2020-06-19 03:46:09 -04:00
Deirdre Connolly cae9df9169 Remove --base-instance-name, redundant 2020-06-19 03:46:09 -04:00
Deirdre Connolly c50e9a5bee Add region 2020-06-19 03:46:09 -04:00
Deirdre Connolly e2c30e7bd2 Type n1-highmem-8 2020-06-19 03:46:09 -04:00
Deirdre Connolly 14a62bf9bb Remove region; highmem is constrainted 2020-06-19 03:46:09 -04:00
Deirdre Connolly 7742bb4dbd Bump memory on instance template 2020-06-19 03:46:09 -04:00
Deirdre Connolly 30f01c6ff0 Use updated 'zebrad seed' command, move binary to root, no workdir 2020-06-19 03:46:09 -04:00
Deirdre Connolly 65bd05932e Remove cloudbuild.yml, tidy gcloud deploy workflow 2020-06-19 03:46:09 -04:00
Deirdre Connolly 0ccf167125 gcloud workflow to deploy containers via managed instance group
Also default command to 'zebrad connect' until 'start' is fleshed out.
2020-06-19 03:46:09 -04:00
Deirdre Connolly dab3eeca3c Go back to stable clippy-check
The experimental one duplicates outputs X however many github checks run, rust or not.
2020-06-16 17:14:27 -04:00
dependabot[bot] 32d1b9c4f9 Bump codecov/codecov-action from v1 to v1.0.7
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1 to v1.0.7.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1...f532c3a1452359a7f96c37efc741537b80555c74)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-09 17:47:18 -04:00
dependabot[bot] 3666db7a42 Bump w9jds/firebase-action from v1.1.0 to v1.3.1
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from v1.1.0 to v1.3.1.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v1.1.0...92e616d7667df9bd5c7d9c6a1ff50e9f79861a65)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-09 17:47:00 -04:00
Deirdre Connolly d61cf27d74
Turn off the project workflow, reorg some CI jobs (#451)
* Remove 'assign to project' workflow

Doesn't work with external PRs.

* Reorg CI jobs a bit

* Also upgrade gcloud sdk to version 295.0.0
2020-06-08 21:03:51 -04:00
Deirdre Connolly b263489af6
Export ed25519 zebra (#445)
And use that one, and our similar redjubjub export, everywhere.

Fixes #405

* Move PRs to 'In Progress' column on project board when created
2020-06-06 18:10:32 -04:00
Deirdre Connolly 123ba3674f
Update assign-to-project.yml to use a scoped personal access toke (#441)
* Update assign-to-project.yml

* Rename project?

* Rename workflow & job
2020-06-06 14:39:46 -04:00
Deirdre Connolly d54c83ead5
Add assign to project workflow (#438) 2020-06-05 19:21:20 -04:00
Jane Lusby 4a2d2a359c
add cargo fmt to ci (#403)
* add cargo fmt to ci

* rebase on main

* switch to stable

Co-authored-by: Jane Lusby <jane@zfnd.org>
2020-05-27 19:12:25 -07:00