Commit Graph

591 Commits

Author SHA1 Message Date
Gustavo Valverde aaad60dec7
ci(deploy): retry ssh connections if it fails (#5292)
Previous behavior
From time to time SSH connections to deployed VMs fails with the following
error: `kex_exchange_identification: Connection closed by remote host`

Expected behavior
If the connection fails, attempt to reconnect once again (or multiple times)

Solution
Add the `ConnectionAttempts` and `ConnectTimeout` with 20 and 5 values
respectively, which attempst to reconnect 19 more times every 5 seconds
2022-09-28 21:45:31 +00:00
teor 30b47159e4
Use the best cache for docker images (#5282) 2022-09-28 13:14:29 +00:00
teor 01ca74d0fb
Create a new cached state image every 12 hours (#5191)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-28 00:33:15 +00:00
teor 99bdc8d14c
doc(release): Update release template for Docker releases (#5193)
* Explain how to use the release template

I always have to look this up every time.

Also delete a long description of semantic versioning.

* Delete extra info that is already in the template elsewhere

* Explain how `Cargo.lock` gets updated

* Use a branch name that Google Cloud will accept

* Update release instructions for Docker binaries

* Add extra release testing steps

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-09-27 21:53:00 +00:00
dependabot[bot] 84d79ecda6
build(deps): bump actions/github-script from 6.2.0 to 6.3.0 (#5271)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6.2.0...v6.3.0)

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

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

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-09-27 21:22:30 +00:00
teor 9f1c540766
Comment out empty major version list (#5278) 2022-09-27 21:14:54 +00:00
teor 6711616e41
change(ci): Combine high and low Mergify queues into a batched queue (#5201)
* Combine high and medium queues into a batched queue

* Explain how to check config syntax

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-28 06:34:53 +10:00
Marek 619725c89e
Fix the config for `release-drafter` (#5275) 2022-09-27 20:34:10 +00:00
teor b0e60d7c11
change(release): Automatically split CHANGELOG entries into categories (#5203)
* Update release-drafter.yml

* Explain where we got the workflow from

* Automatically add "trivial" label to dependabot updates

* Add categories and auto-labels to release drafter

* Update release PR template for automatic release drafter versions

* Also strip PR series numbers and leading spaces from changelog entries

* Update release note version check

* Update label names

* Add missing ! in conventional commits regex

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

* Make versioning steps more specific

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

* Remove conflicting detailed versioning explanations

Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-27 12:41:55 +00:00
teor a6ceba7314
Revert "build(deps): bump tj-actions/changed-files from 29.0.7 to 31.0.1 (#5254)" (#5264)
This reverts commit dc83bdbcc7.
2022-09-27 12:21:09 +00:00
teor 59a6ed2c21
doc(ci): Fix incorrect docs about Docker build cache order (#5190)
* Use branch then main build caches

* Revert cache order to try branch cache first

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-27 06:53:59 +00:00
dependabot[bot] dc83bdbcc7
build(deps): bump tj-actions/changed-files from 29.0.7 to 31.0.1 (#5254)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.7 to 31.0.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/v29.0.7...v31.0.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-27 01:16:57 +00:00
dependabot[bot] 237f35d8bf
build(deps): bump reviewdog/action-actionlint from 1.30.0 to 1.31.0 (#5238)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.30.0 to 1.31.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.30.0...v1.31.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-26 23:48:57 +00:00
teor 9cb6c559f4
fix(ci): Build zebrad with Rust 1.63 to avoid Zcash parameter download hangs (#5251)
* Try running coverage with Rust 1.63

* Run GitHub Actions tests with Rust 1.63

* Change from stable to 1.63 in the patch file

* Use Rust 1.63 to download Zcash parameters

* Use Rust 1.63 to build Docker zebrad images

* Make Rust 1.63 a supported platform, and make stable temporarily unsupported
2022-09-26 12:37:23 +00:00
teor 12d084f6cc
fix(ci): Delete Google Cloud test instances after 3 days (#5192)
* Delete test instances after 3 days

* Use correct delete command, improve shell quoting

* Use sed to provide the correct zone or region

* Fix quoting

* Fix IFS

* Fix IFS for multiple disks

* Document why we can't quote some shell variables

* Document that instances can get deleted

* Fix exact names in deletion docs
2022-09-21 23:16:38 +00:00
dependabot[bot] 59835947a5
build(deps): bump codecov/codecov-action from 3.1.0 to 3.1.1 (#5205)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.0 to 3.1.1.
- [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/v3.1.0...v3.1.1)

---
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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-21 19:51:20 +00:00
teor 694390c50b
change(dev): Add CHANGELOG checks to PR review template (#5202)
* Ask PR reviewer to check name, labels, and CHANGELOG

* Re-phrase extra CHANGELOG info
2022-09-21 18:47:28 +00:00
dependabot[bot] 11e505b313
build(deps): bump w9jds/firebase-action from 11.5.0 to 11.9.0 (#5196)
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from 11.5.0 to 11.9.0.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v11.5.0...v11.9.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-20 04:40:55 +00:00
dependabot[bot] 2135b33e28
build(deps): bump reviewdog/action-actionlint from 1.29.0 to 1.30.0 (#5195)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.29.0 to 1.30.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.29.0...v1.30.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-20 04:40:42 +00:00
Gustavo Valverde 7b6da4b2d0
feat(release): create Docker hub binaries when tagging (#5138)
* feat(release): create Docker hub binaries when tagging

* fix(release): add a release workflow for binaries

* fix(release): trigger on tag creation, not pushing to it

* fix(release): use the same conditions for logging into DockerHub

* fix(release): add missing parameter to access GH secrets

* Apply suggestions from code review

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

* ci(release): just publish to DockerHub when a release is published

* Apply suggestions from code review

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

* ci(release): filter prerelease event correctly

* ci(release): fix tags

* ci(release): use `zebra` and not `zebrad` as the repository

* ci(release): do not try to login to Docker if not a release

* Update .github/workflows/build-docker-image.yml

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

Co-authored-by: teor <teor@riseup.net>
2022-09-16 04:14:06 +00:00
teor c57f129df4
Add a full sync job for 1790k blocks (#5166) 2022-09-15 06:18:10 +00:00
teor 2d7ea7c043
Allow manual Release Drafter workflow runs (#5165) 2022-09-14 23:38:19 +00:00
teor 0d4a6a64d2
Enable all cargo features in Zebra's deployed docs (#5156) 2022-09-14 19:53:08 +00:00
dependabot[bot] fc4aff1991
build(deps): bump tj-actions/changed-files from 29.0.6 to 29.0.7 (#5159)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.6 to 29.0.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/v29.0.6...v29.0.7)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-14 18:03:08 +00:00
dependabot[bot] 66f2bc6ccd
build(deps): bump tj-actions/changed-files from 29.0.4 to 29.0.6 (#5148)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.4 to 29.0.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/v29.0.4...v29.0.6)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-13 20:18:58 +00:00
teor 113ff04dc2
fix(doc): Explain how image deletion actually works (#5124)
* Explain how image deletion actually works

* Be clearer about exactly what happens
2022-09-13 07:24:25 +00:00
teor 579d6be4e9
Revert "ci(build): re-enable Rust beta tests in ubuntu (#5024)" (#5090)
This reverts commit 422d20ea12.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-13 02:46:06 +00:00
teor 2c0f906692
Fix checkpoint disk image names so they are short enough for Google Cloud (#5128) 2022-09-12 21:28:21 +00:00
dependabot[bot] 3254b4ebf4
build(deps): bump tj-actions/changed-files from 29.0.3 to 29.0.4 (#5117)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.3 to 29.0.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/v29.0.3...v29.0.4)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-09 01:44:06 +00:00
teor a58b72c92b
fix(ci): Wait 1 day before creating cached state image updates (#5088)
* Increase search range for sync height

* Update sync height regexes for zebrad and lwd cached states

* Add labels to cached state images

* Update deploy-gcp-tests.yml

* Don't create new cached states for lwd updates

* Add a missing line continuation

* Fix a comment

* Revert a mistaken comment change

* Clarify a TODO comment

* Partially revert to old docker height log handling

* Use an output for the cached disk name
2022-09-08 20:25:00 +00:00
teor c6fd7aa96d
Delete images older than 2 days, check every day (#5113) 2022-09-08 20:24:24 +00:00
teor 463907965a
fix(ci): Simplify GitHub actions caches (#5104)
* Disable fmt cache and create shared clippy cache

* Make Cargo.lock check use the shared clippy cache

* Add a TODO for Windows Rust cache path

* Fix quoting for Windows path

* Use correct sharedKey spelling
2022-09-07 14:32:41 +00:00
teor fb2a1e8595
1. fix(ci): Label lwd cached state images with their sync height (#5086)
* Increase search range for sync height

* Update sync height regexes for zebrad and lwd cached states

* Add labels to cached state images

* Add a missing line continuation
2022-09-07 05:06:34 +00:00
Gustavo Valverde a7f74feabd
ci(lint): fetch with depth for `tj-actions/changed-files` on push (#5097)
Previous behavior:
The `tj-actions/changed-files` crashed when making pushes to main, as no
fetch depth was defined on the previous checkout action. Which is now r
required after b216561b5b

Expected behavior:
Do not fail with this new requirement

Solution:
Change the chekout action `fetch-depth` to 2, allowing to compare with
the previous commit
2022-09-06 19:58:03 +00:00
Alfredo Garcia 6cb9c5250e
build(deps): bump prost, tonic, tonic-build and console-subscriber (#5009)
* bump prost, tonic and tonic-build

* add protoc as a dependency step in the CI

* bump console-subscriber

* add protoc to `build-crates-individually`

* add protoc to docs build

* install protoc in lint.yml

* change protoc installation location in lint.yml

* add protoc to `Check Cargo.lock is up to date`

* ci(build): keep protoc pinned to the same major version

* ci(build): avoid rate limiting with `arduino/setup-protoc@v1`

* cargo upgrade --workspace console-subscriber

Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
Co-authored-by: teor <teor@riseup.net>
2022-09-06 14:49:18 +00:00
teor fec012a006
fix(ci): delete GCP resources, but keep some recent cached state images (#5082)
* Fix delete GCP resources commands

* Don't create a GCP credentials file

* Keep the latest 2 images

* Explain time

* Show the names of disks that are being deleted

* Actually run the image delete steps

* Only delete commit-based instance templates

* Document automated deletion
2022-09-06 02:51:46 +00:00
teor c081fd9873
fix(cd): Use 200GB disks for managed instances (#5084)
* Use 200GB disks for managed instances

* Fix a typo
2022-09-06 00:23:25 +00:00
Gustavo Valverde fd0e6e65d3
ci(resources): delete old disk images created in GCP (#5079)
Previous behavior:
Disk images are being accumulated in GCP for a few years, but this
generates unneeded costs as we're not using images older than 1-2 weeks.

Expected behavior:
Delete previously unused images based on a timefrime.

Solution:
Delete images created on a pull request older than 30 days, from the
`main` branch if older than 60 days, and any other image older than 90
days.

A TODO is on place as we'd like to keep at least the 2 latest images of
each type (zebra checkpoint, zebra tip, lwd tip). Once we've excluded
those images, we can delete any older images after 1 week.
2022-09-05 22:13:39 +00:00
dependabot[bot] b216561b5b
build(deps): bump tj-actions/changed-files from 29.0.2 to 29.0.3 (#5073)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.2 to 29.0.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/v29.0.2...v29.0.3)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-05 20:44:57 +00:00
Gustavo Valverde 422d20ea12
ci(build): re-enable Rust beta tests in ubuntu (#5024)
Previous behavior:
As we disabled beta Rust tests in PR #4930, because the parameter
downloads were unstable with beta Rust, we're no longer testing it.

Expected behavior:
Re-enable beta rust tests in CI OSes

Solution:
Remove the parameter exluding beta Rust
2022-09-02 08:56:04 +00:00
Marek 7f61c4c936
Make the release instructions more explicit (#5026) 2022-09-02 08:55:09 +00:00
dependabot[bot] 594f4c41cf
build(deps): bump google-github-actions/auth from 0.8.0 to 0.8.1 (#5029)
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0.8.0 to 0.8.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.8.0...v0.8.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-01 23:48:28 +00:00
teor e9597c0406
Split a long full sync job (#5001) 2022-08-30 13:42:17 +00:00
teor 6dfaa73969
Stop cancelling manual full syncs (#5000) 2022-08-30 12:09:26 +00:00
Gustavo Valverde c85e482fa0
ci(concurrency)!: run a single CI workflow as required (#4981)
* ci(concurrency)!: run a single CI workflow as required

Previous behavior:
Multiple Mainnet full syncs were able to run on the main branch at the
same time, and pushing multiple commits to the same branch would run
multiple CI workflows, when only the run from last commit was relevant

Expected behavior:
Ensure that only a single CI workflow runs at the same time in PRs.
The latest commit should cancel any previous running workflows from the
same PR.

Solution:
Use GitHub actions concurrency feature https://docs.github.com/en/actions/using-jobs/using-concurrency

Fixes https://github.com/ZcashFoundation/zebra/issues/4977
Fixes https://github.com/ZcashFoundation/zebra/issues/4857

* docs: typo

* ci(concurrency): do not cancel running full syncs

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

* fix(concurrency): explain the behavior better & add new ones

Co-authored-by: teor <teor@riseup.net>
2022-08-30 00:11:05 +00:00
dependabot[bot] e5c0e10887
build(deps): bump actions/github-script from 6.1.0 to 6.2.0 (#4986)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6.1.0...v6.2.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-29 22:52:29 +00:00
dependabot[bot] fc7d0db83f
build(deps): bump tj-actions/changed-files from 29.0.1 to 29.0.2 (#4985)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.1 to 29.0.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/v29.0.1...v29.0.2)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-29 22:51:58 +00:00
dependabot[bot] e744035ebd
build(deps): bump reviewdog/action-actionlint from 1.28.0 to 1.29.0 (#4987)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.28.0 to 1.29.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.28.0...v1.29.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-29 22:51:38 +00:00
dependabot[bot] d78026466e
build(deps): bump reviewdog/action-actionlint from 1.27.0 to 1.28.0 (#4923)
Bumps [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) from 1.27.0 to 1.28.0.
- [Release notes](https://github.com/reviewdog/action-actionlint/releases)
- [Commits](https://github.com/reviewdog/action-actionlint/compare/v1.27.0...v1.28.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-29 06:57:51 +00:00
teor d692c604b7
Update sync workflow docs for edge cases (#4973) 2022-08-29 05:29:38 +00:00
Gustavo Valverde 58c4a62d2f
ci(deploy): do not run `versioning` job when pushing to `main` (#4970)
Previous behavior:
When a push was detected in the `main` branch, the workflow would run the
`versioning` job and crash trying to detect the version being deployed as
there was none.

Expected behavior:
Do not fail the `versioning` job when pushing to `main`

Solution:
Limit the `versioning` job to only run when a release event is triggered
and allow the `deploy-nodes` job to run even if `versioning` is skipped
2022-08-28 23:56:58 +00:00
teor 4cda4eef66
fix(ci): Improve Zebra acceptance test diagnostics (#4958)
* Show the arguments of acceptance test functions in the logs

* Show all the logs in the "Run tests" jobs

* Document expected "broken pipe" error from `tee`

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-08-28 17:08:43 +00:00
Gustavo Valverde 8227dabe56
ci(build): deploy long running node instances on release (#4939)
* feat(build): deploy long running instances on release

Previous behavior:
Each time we merged to main new nodes would be deployed, this is an
expected behavior as we need to ensure nodes get deployed and run
without issues, but this could also replace nodes very hastily.

Expected behavior:
We want instances which would run for a longer time, to allow us to
troubleshoot issues or inspect the behavior of this instances for longer
periods of time (2+ weeks)

Applied solution:
Deploy a versioned manage instance group (MiG) using the major version
of the release semver. We just use the first part of the version to
replace old instances, and change it when a major version is released
to keep a segregation between new and old versions.

* ci(build): allow v0 as a major version tag

* fix(build): use rust conventions for versioning

* fix(deploy): improve documentation and trigger on release

* Update .github/workflows/continous-delivery.yml

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

* fix(versioning): typo

* fix(deploy): use `zebrad-v1` as the instance name, with no SHA

* fix(deploy): create and update MiG must use the same name

* docs(deployments): add Continuous Delivery process

Co-authored-by: teor <teor@riseup.net>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-08-28 12:46:21 +00:00
teor 6fd3cdb3da
fix(ci): Expand cached state disks before running tests (#4962)
* Expand cached state disks before running tests

* Install partition management tool

* There isn't actually a partition on the cached state image

* Make e2fsck non-interactive

* Limit the length of image names to 63 characters

* Ignore possibly long branch names when matching images, just match the commit
2022-08-28 09:47:42 +00:00
teor 1d861b0d20
fix(ci): Increase full sync timeouts for longer syncs (#4961)
* Increase full sync timeout to 24 hours

Expected sync time is ~21 hours as of August 2022.

* Split final checkpoint job into two smaller jobs to avoid timeouts

Also make regexes easier to read.

* Fix a job name typo
2022-08-28 05:42:20 +10:00
Gustavo Valverde 326ae04b0f
ci(test): run build and test jobs on cargo and clippy config changes (#4941)
Previous behavior:
If warnings or error are added in `.cargo/config.toml` or `clippy.toml`,
and those could generate CI failures, we wouldn't catch those new as the
pipelines are not run when this files are changed

Expected behavior:
If warnings or error are added in `.cargo/config.toml` or `clippy.toml`,
run all the builds and test jobs which also track a `Cargo.toml`.

Solution:
Add `.cargo/config.toml` and `clippy.toml` as paths to all the required
jobs which needs to be triggered when these files changes.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-08-26 18:06:32 +00:00
dependabot[bot] 9f2ab39968
build(deps): bump tj-actions/changed-files from 29.0.0 to 29.0.1 (#4959)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.0 to 29.0.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/v29.0.0...v29.0.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-26 15:48:44 +00:00
teor aa3b0af15c
Fix a regular expression typo in a full sync job (#4950) 2022-08-26 13:31:10 +10:00
teor 0a39011b88
fix(ci): Write cached state images after update syncs, and use the latest image from any commit (#4949)
* Save cached state on full syncs and updates

* Add an -update suffix to CI images created by updating cached state

* Make disk image names unique by adding a time suffix

* Use the latest image from any branch, but prefer the current commit if available

* Document Zebra's continuous integration tests

* Fix typos in environmental variable names

* Expand documentation

* Fix variable name typo

* Fix shell syntax
2022-08-25 13:09:20 +00:00
teor 7fc3cdd2b2
Increase CI disk size to 200GB (#4945) 2022-08-25 16:41:45 +10:00
teor 4282af4690
ci(mergify): increase batch sizes (#4947)
* Increase Mergify batch sizes

* Use the maximum mergify batch size, except for critical priority PRs
2022-08-24 18:23:44 -04:00
dependabot[bot] c87073ed44
build(deps): bump tj-actions/changed-files from 24 to 29.0.0 (#4936)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 24 to 29.0.0.
- [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/v24...v29.0.0)

---
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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-24 10:45:36 +00:00
Gustavo Valverde bcc325d7f8
ci(auth): retry GCP authentication if fails (#4940)
Previous behavior:
Sometimes Google Cloud authentication fails, this might happen before
IAM permissions are fully propagated

Expected behavior:
If the authentication fails, retry at least 3 times before exiting with
a non zero exit code

Applied solution:
Google GitHub Actions for auth recently added this a `retries` feature
which is now implemented to workaround this issue.

Note: 95a6bc2a27

Fixes https://github.com/ZcashFoundation/zebra/issues/4846
2022-08-24 03:49:55 +00:00
Alfredo Garcia 9fb87425b7
fix(tests): Update timeout for Zebra sync tests (#4918)
* update timeout

* update the doc comment

* Increase test timeouts for Zebra update syncs

* Stop failing the 1740k job if the cached state is after block 1740k

Co-authored-by: teor <teor@riseup.net>
2022-08-24 10:06:18 +10:00
dependabot[bot] 4ecaefed72
build(deps): bump w9jds/firebase-action from 2.2.2 to 11.5.0 (#4905)
Bumps [w9jds/firebase-action](https://github.com/w9jds/firebase-action) from 2.2.2 to 11.5.0.
- [Release notes](https://github.com/w9jds/firebase-action/releases)
- [Commits](https://github.com/w9jds/firebase-action/compare/v2.2.2...v11.5.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-23 11:04:41 +00:00
teor 52fa867cb8
change(ci): Disable beta Rust tests and add parameter download logging (#4930)
* Apply the same Rust logging settings to all GitHub workflows

* Enable full optimisations in dev builds for downloading large parameter files

* Disable beta Rust tests in CI
2022-08-23 03:43:18 +00:00
dependabot[bot] 2d4196f13c
build(deps): bump docker/build-push-action from 3.1.0 to 3.1.1 (#4895)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-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-08-05 17:21:51 +00:00
teor dd273fec70
Make sure Rust tests actually ran in deploy-gcp-tests.yml (#4710)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-08-03 17:22:35 +00:00
dependabot[bot] 3203de58da
build(deps): bump docker/build-push-action from 3.0.0 to 3.1.0 (#4797)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.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-08-01 20:43:42 +00:00
teor 65b0a8b6fa
fix(ci): split NU5 sync into two GitHub actions jobs (#4840)
* Split the NU5 job at block 1,740,000

* Fix the split regex

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

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

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

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

* Increase full sync timeout

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

* Actually clear more than one line of logs

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

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

* Improve test logging

* Fix a log typo

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

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

* Only copy the state once in the send transactions test

* Wait longer for lightwalletd gRPC server startup

* Add some function docs

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

* Increase lightwalletd test timeouts for zebrad slowness

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

* Run the zebrad-update-sync test in CI

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

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

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

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

* Verify proofs and signatures on the rayon thread pool

* Only spawn one concurrent batch per verifier, for now

* Allow tower-batch to queue multiple batches

* Fix up a potentially incorrect comment

* Rename some variables for concurrent batches

* Spawn multiple batches concurrently, without any limits

* Simplify batch worker loop using OptionFuture

* Clear pending batches once they finish

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

* Fail queued requests on drop

* Move pending_items and the batch timer into the worker struct

* Add worker fields to batch trace logs

* Run docker tests on PR series

* During full verification, process 20 blocks concurrently

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

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

* Use recent versions in examples

* Fix markdown that doesn't render correctly

* Fix some weird line breaks

* Use capital letters to start list items

* Clarify `fastmod` and `CHANGELOG.md`

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

But put TODOs where we might be able to skip checkouts

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

* Make job IDs shorter

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

* remove pipefail

* Revert "remove pipefail"

This reverts commit a7ee37bebdc107a4215e7dd307b189d925969234.

* Make tee ignore errors writing to a grep pipe

* Avoid launching multiple docker instances for duplicate jobs

* Ignore broken pipe error messages and statuses

* fix(ci): docker wait not finding container

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

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

* docs: remove pending TODO

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

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

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

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

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

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

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

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

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

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

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

And update some comments.

* Split docker run into launch, logs, and wait

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

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

* Sort workflow variables into categories and add descriptions

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

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

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

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

* Remove redundant job from patch file

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

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

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

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

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

* refactor(ci): build job matrix dinamically

* fix: use a JSON_CRATES variable with resulting values

* test: check-matrix

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

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

* fix(ci): use correct naming and includes

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

* fix(ci): use simpler shell script

* fix: typo

* fix: add string to file, not cmd

* fix: some shellchecks

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

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

* Remove unused configs in patch job

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

* ci(docs): remove minimal profile

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

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

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

* fix(ci): delete old instances templates

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

* fix(actions): missing command in gcloud

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

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

* switch back to aditya's fork

* manually point to new aditya's lightwalletd image

* disable sync_one_checkpoint_testnet test

* disable restart_stop_at_height in testnet

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

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

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

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

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

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

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

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-10 19:46:19 +00:00
Marek e31449ecdd
Update `release-checklist.md` (#4568) 2022-06-04 00:59:42 +00:00
Gustavo Valverde 8d6957f39b
ci(mergify): do not create draft PRs if not needed (#4540)
* fix(ci): do not create draft PRs if not needed
2022-06-01 14:40:56 -04:00