Skip to content

Commit

Permalink
Ensure upgrade test uses the correct binary on restart
Browse files Browse the repository at this point in the history
Also:

- Fix upgrade test workflow to target the correct path for artifact
upload

- Ensure all tmpnet artifact upload reports an error if files are missing
  • Loading branch information
marun committed Dec 13, 2023
1 parent 82fbc97 commit 2dceb65
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 10 deletions.
1 change: 1 addition & 0 deletions .github/workflows/test.e2e.existing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ jobs:
with:
name: tmpnet-data
path: ~/.tmpnet/networks/1000
if-no-files-found: error
1 change: 1 addition & 0 deletions .github/workflows/test.e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ jobs:
with:
name: tmpnet-data
path: ~/.tmpnet/networks/1000
if-no-files-found: error
11 changes: 5 additions & 6 deletions .github/workflows/test.upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,11 @@ jobs:
run: ./scripts/build.sh
- name: Run upgrade tests
shell: bash
# 1.10.7 is the first version compatible with the ephnet fixture by
# virtue of writing a process context file on node start.
run: ./scripts/tests.upgrade.sh 1.10.7
- name: Upload ephnet network dir
run: ./scripts/tests.upgrade.sh
- name: Upload tmpnet network dir
uses: actions/upload-artifact@v3
if: always()
with:
name: ephnet-data
path: ~/.ephnet/networks/1000
name: tmpnet-data
path: ~/.tmpnet/networks/1000
if-no-files-found: error
13 changes: 10 additions & 3 deletions scripts/tests.upgrade.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,21 @@
set -euo pipefail

# e.g.,
# ./scripts/tests.upgrade.sh 1.7.16
# AVALANCHEGO_PATH=./path/to/avalanchego ./scripts/tests.upgrade.sh 1.7.16 # Customization of avalanchego path
# ./scripts/tests.upgrade.sh # Use default version
# ./scripts/tests.upgrade.sh 1.10.18 # Specify a version
# AVALANCHEGO_PATH=./path/to/avalanchego ./scripts/tests.upgrade.sh 1.10.18 # Customization of avalanchego path
if ! [[ "$0" =~ scripts/tests.upgrade.sh ]]; then
echo "must be run from repository root"
exit 255
fi

VERSION="${1:-}"
# 1.10.17 is the first version compatible with bls signing keys being
# included in the genesis. Attempting to upgrade from prior versions
# will result in nodes failing to boot due to the hash of the genesis
# not matching the hash of the committed genesis block.
DEFAULT_VERSION="1.10.17"

VERSION="${1:-${DEFAULT_VERSION}}"
if [[ -z "${VERSION}" ]]; then
echo "Missing version argument!"
echo "Usage: ${0} [VERSION]" >>/dev/stderr
Expand Down
4 changes: 3 additions & 1 deletion tests/upgrade/upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ var _ = ginkgo.Describe("[Upgrade]", func() {
node.Flags[config.BootstrapIPsKey] = strings.Join(bootstrapIPs, ",")
require.NoError(node.WriteConfig())

require.NoError(node.Start(ginkgo.GinkgoWriter, avalancheGoExecPath))
// Ensure the new node starts with the upgrade binary
node.ExecPath = avalancheGoExecPathToUpgradeTo
require.NoError(node.Start(ginkgo.GinkgoWriter, "" /* defaultExecPath */))

ginkgo.By(fmt.Sprintf("waiting for node %q to report healthy after restart", node.GetID()))
e2e.WaitForHealthy(node)
Expand Down

0 comments on commit 2dceb65

Please sign in to comment.