Skip to content

Commit

Permalink
Problem: cosmovisor in test is out dated (#1380)
Browse files Browse the repository at this point in the history
new version cosmovisor support graceful shutdown

Solution:
- update cosmovisor
- adapt the test case

Update CHANGELOG.md

Signed-off-by: yihuang <[email protected]>
  • Loading branch information
yihuang authored Apr 9, 2024
1 parent 1aea999 commit 5c31fe0
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 37 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## UNRELEASED

### Improvements

* (test) [#1380](https://github.com/crypto-org-chain/cronos/pull/1380) Upgrade cosmovisor to 1.5.0 in integration test.

*April 8, 2024*

## v1.2.0-rc1
Expand Down
10 changes: 0 additions & 10 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -81,16 +81,6 @@
go = super.go_1_22;
test-env = final.callPackage ./nix/testenv.nix { };
bundle-exe = final.pkgsBuildBuild.callPackage nix-bundle-exe { };
# make-tarball don't follow symbolic links to avoid duplicate file, the bundle should have no external references.
# reset the ownership and permissions to make the extract result more normal.
make-tarball = drv: final.runCommand "tarball-${drv.name}"
{
nativeBuildInputs = with final.buildPackages; [ gnutar gzip ];
} ''
tar cfv - -C "${drv}" \
--owner=0 --group=0 --mode=u+rw,uga+r --hard-dereference . \
| gzip -9 > $out
'';
bundle-win-exe = drv: final.callPackage ./nix/bundle-win-exe.nix { cronosd = drv; };
} // (with final;
let
Expand Down
11 changes: 6 additions & 5 deletions integration_tests/configs/upgrade-test-package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ let
# v1.1.1
released = (fetchFlake "crypto-org-chain/cronos" "10b8eeb9052e3c52aa59dec15f5d3aca781d1271").default;
current = pkgs.callPackage ../../. { };
farm = pkgs.linkFarm "upgrade-test-package" [
{ name = "genesis/bin"; path = "${released0}/bin"; }
{ name = "v1.1.0/bin"; path = "${released}/bin"; }
{ name = "v1.2/bin"; path = "${current}/bin"; }
];
in
pkgs.linkFarm "upgrade-test-package" [
{ name = "genesis"; path = released0; }
{ name = "v1.1.0"; path = released; }
{ name = "v1.2"; path = current; }
]
pkgs.make-tarball farm
25 changes: 22 additions & 3 deletions integration_tests/test_upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,13 @@ def post_init(path, base_port, config):
chain_id,
data / SUPERVISOR_CONFIG_FILE,
lambda i, _: {
"command": f"cosmovisor start --home %(here)s/node{i}",
"environment": f"DAEMON_NAME=cronosd,DAEMON_HOME=%(here)s/node{i}",
"command": f"cosmovisor run start --home %(here)s/node{i}",
"environment": (
"DAEMON_NAME=cronosd,"
"DAEMON_SHUTDOWN_GRACE=1m,"
"UNSAFE_SKIP_BACKUP=true,"
f"DAEMON_HOME=%(here)s/node{i}"
),
},
)

Expand All @@ -71,10 +76,24 @@ def setup_cronos_test(tmp_path_factory):
"nix-build",
Path(__file__).parent / f"configs/{nix_name}.nix",
"-o",
path / "upgrades",
path / "upgrades.tar.gz",
]
print(*cmd)
subprocess.run(cmd, check=True)

# extract the tarball so the directory is writable.
(path / "upgrades").mkdir()
subprocess.run(
[
"tar",
"xfz",
path / "upgrades.tar.gz",
"-C",
path / "upgrades",
],
check=True,
)

# init with genesis binary
with contextmanager(setup_custom_cronos)(
path,
Expand Down
17 changes: 17 additions & 0 deletions nix/build_overlay.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
# some basic overlays nessesary for the build
final: super: {
rocksdb = final.callPackage ./rocksdb.nix { };

# make-tarball don't follow symbolic links to avoid duplicate file, the bundle should have no external references.
# reset the ownership and permissions to make the extract result more normal.
make-tarball = final.callPackage
({ buildPackages
, runCommand
}: drv: runCommand "tarball-${drv.name}"
{
nativeBuildInputs = with buildPackages; [ gnutar gzip ];
}
''
tar cfv - -C "${drv}" \
--owner=0 --group=0 --mode=u+rw,uga+r --hard-dereference . \
| gzip -9 > $out
''
)
{ };
}
21 changes: 21 additions & 0 deletions nix/cosmovisor.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{ buildGoModule
, fetchFromGitHub
}:

let
version = "1.5.0";
cosmos-sdk = fetchFromGitHub {
owner = "cosmos";
repo = "cosmos-sdk";
rev = "tools/cosmovisor/v${version}";
hash = "sha256-Ov8FGpDOcsqmFLT2s/ubjmTXj17sQjBWRAdxlJ6DNEY=";
};
in
buildGoModule rec {
name = "cosmovisor";
version = "1.5.0";
src = cosmos-sdk + "/tools/cosmovisor";
subPackages = [ "./cmd/cosmovisor" ];
vendorHash = "sha256-IkPnnfkofn5w8Oa/uzGxgI1eb5RrJ9haNgj4mBXF+n8=";
doCheck = false;
}
8 changes: 1 addition & 7 deletions nix/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,7 @@ import sources.nixpkgs {
})
(_: pkgs: { test-env = pkgs.callPackage ./testenv.nix { }; })
(_: pkgs: {
cosmovisor = pkgs.buildGo120Module rec {
name = "cosmovisor";
src = sources.cosmos-sdk + "/cosmovisor";
subPackages = [ "./cmd/cosmovisor" ];
vendorHash = "sha256-OAXWrwpartjgSP7oeNvDJ7cTR9lyYVNhEM8HUnv3acE=";
doCheck = false;
};
cosmovisor = pkgs.callPackage ./cosmovisor.nix { };
})
(_: pkgs: {
rly = pkgs.buildGo120Module rec {
Expand Down
12 changes: 0 additions & 12 deletions nix/sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,6 @@
"url": "https://github.com/crypto-org-chain/chain-main/archive/04e8e094b7d51a8cf92b74c789394b7b34987b10.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"cosmos-sdk": {
"branch": "v0.45.0",
"description": ":chains: A Framework for Building High Value Public Blockchains :sparkles:",
"homepage": "https://cosmos.network/",
"owner": "cosmos",
"repo": "cosmos-sdk",
"rev": "b6c77e6c819f8a51166649eaef125d1bfb276f04",
"sha256": "09ns4yfxyfi7c7n5g69zv32m1rdssdl48c1akmv1y2vz6ayz4v02",
"type": "tarball",
"url": "https://github.com/cosmos/cosmos-sdk/archive/b6c77e6c819f8a51166649eaef125d1bfb276f04.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"dapptools": {
"branch": "master",
"description": "Dapp, Seth, Hevm, and more",
Expand Down

0 comments on commit 5c31fe0

Please sign in to comment.