Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatically bump Forge compat base image to latest release #14686

Merged

Conversation

yzaccc
Copy link
Contributor

@yzaccc yzaccc commented Sep 18, 2024

Description

  • To automatically bump Forge compat base image to latest release, currently its a manual input.
  • To test the compat test against the last released docker image, we need to get the last released docker image tag.
  • This step determines appropriate branch to fetch the latest docker image tag from based on the current branch.
    Determine the IMAGE_TAG based on the latest release R and check for images built on branch R - 1:
    - For commits on the aptos-release-v1.19 branch, the IMAGE_TAG should be the latest commit built on aptos-release-v1.18
    - For commits on the main branch, the IMAGE_TAG should be the latest commit on the max release aptos-release-v<MAX> branch
    - For commits on other branches, the IMAGE_TAG should be the latest commit on the branch's last release aptos-release-v<X.X> branch

Type of Change

  • New feature
  • Bug fix
  • Breaking change
  • Performance improvement
  • Refactoring
  • Dependency update
  • Documentation update
  • Tests

Which Components or Systems Does This Change Impact?

  • Validator Node
  • Full Node (API, Indexer, etc.)
  • Move/Aptos Virtual Machine
  • Aptos Framework
  • Aptos CLI/SDK
  • Developer Infrastructure
  • Other (specify)

How Has This Been Tested?

locally:
poetry run python3 -u determine_target_branch_to_fetch_last_released_image.py main Target branch is aptos-release-v1.20 aptos-release-v1.20

poetry run python3 -u determine_target_branch_to_fetch_last_released_image.py aptos-release-v1.19 Target branch is aptos-release-v1.18 aptos-release-v1.18

Tested in current PR's CI https://github.com/aptos-labs/aptos-core/actions/runs/11007566097

Created unitests.

Key Areas to Review

Checklist

  • I have read and followed the CONTRIBUTING doc
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I identified and added all stakeholders and component owners affected by this change as reviewers
  • I tested both happy and unhappy path of the functionality
  • I have made corresponding changes to the documentation

@yzaccc yzaccc requested a review from a team as a code owner September 18, 2024 23:25
Copy link

trunk-io bot commented Sep 18, 2024

⏱️ 74h 47m total CI duration on this PR
Job Cumulative Duration Recent Runs
execution-performance / single-node-performance 17h 2m 🟩🟩🟩🟩🟩 (+63 more)
indexer-grpc-e2e-tests / test-indexer-grpc-docker-compose 10h 37m 🟥 (+24 more)
test-target-determinator 4h 41m 🟩🟩🟩🟩 (+90 more)
execution-performance / test-target-determinator 4h 11m 🟩🟩🟩🟩🟩 (+64 more)
check 3h 43m 🟩🟩🟩🟩🟩 (+64 more)
forge-compat-test / forge 2h 51m 🟩🟩🟩🟩 (+7 more)
forge-e2e-test / forge 2h 32m 🟥🟩🟩🟩 (+15 more)
run-forge-realistic-env-max-load-long / forge 2h 6m 🟩
rust-cargo-deny 1h 53m 🟩🟩🟩🟩🟩 (+66 more)
general-lints 1h 35m 🟥🟥🟥🟥🟥 (+66 more)
check-dynamic-deps 1h 20m 🟩🟩🟩🟩🟩 (+67 more)
forge-framework-upgrade-test / forge 1h 8m 🟥🟩🟩🟩 (+6 more)
run-forge-realistic-env-graceful-workload-sweep / forge 46m 🟥
run-forge-consensus-stress-test / forge 44m 🟩
run-forge-realistic-env-workload-sweep / forge 40m 🟥
run-forge-realistic-env-load-sweep / forge 39m 🟩
run-forge-pfn-const-tps-realistic-env / forge 32m 🟩
semgrep/ci 30m 🟩🟩🟩🟩🟩 (+67 more)
run-forge-realistic-env-graceful-overload / forge 29m 🟩
run-forge-changing-working-quorum-test / forge 25m 🟩
determine-test-metadata 25m 🟩🟩🟩🟩🟩 (+11 more)
run-forge-realistic-network-tuned-for-throughput / forge 21m 🟥
rust-images-performance / rust-all 20m 🟩
run-forge-workload-mix-test / forge 20m 🟩
run-forge-changing-working-quorum-test-high-load / forge 20m 🟩
file_change_determinator 17m 🟩🟩🟩🟩🟩 (+90 more)
file_change_determinator 16m 🟩🟩🟩🟩🟩 (+66 more)
fetch-last-released-docker-image-tag 16m 🟥🟥🟩🟩🟩 (+6 more)
run-forge-framework-upgrade-test / forge 16m 🟩
run-forge-compat / forge 15m 🟩
fetch-latest-docker-image-tag 15m 🟩🟩🟩🟩 (+6 more)
file_change_determinator 14m 🟩🟩🟩🟩🟩 (+70 more)
rust-images / rust-all 14m 🟩
rust-move-tests 13m 🟥🟩
run-forge-single-vfn-perf / forge 13m 🟩
rust-images-failpoints / rust-all 13m 🟩
rust-images-failpoints / rust-all 12m 🟩
rust-images-consensus-only-perf-test / rust-all 11m 🟥🟥
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
run-forge-fullnode-reboot-stress-test / forge 10m 🟥
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 10m 🟩
rust-move-tests 9m 🟩
rust-move-tests 9m 🟩
rust-move-tests 9m 🟩
rust-move-tests 9m 🟩
rust-move-tests 9m 🟩
rust-move-tests 9m
rust-move-tests 9m
rust-move-tests 8m
rust-move-tests 8m
rust-move-tests 8m
rust-move-tests 8m
rust-move-tests 8m
rust-move-tests 7m
rust-move-tests 7m
rust-move-tests 6m
rust-move-tests 6m
rust-move-tests 6m
rust-doc-tests 6m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
run-tests-main-branch 5m 🟥
permission-check 5m 🟩🟩🟩🟩🟩 (+96 more)
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-move-tests 5m
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-move-tests 5m
forge-compat-test 5m 🟥🟥🟥
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m
rust-doc-tests 5m
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 5m 🟩
rust-doc-tests 4m 🟩
rust-doc-tests 4m 🟩
rust-doc-tests 4m 🟩
rust-doc-tests 4m 🟩
rust-doc-tests 4m 🟩
rust-doc-tests 4m 🟩
rust-move-tests 4m
rust-doc-tests 4m
rust-move-tests 4m
rust-doc-tests 4m
rust-doc-tests 4m
rust-move-tests 4m
determine-docker-build-metadata 4m 🟩🟩🟩🟩🟩 (+90 more)
permission-check 4m 🟩🟩🟩🟩🟩 (+71 more)
rust-move-tests 4m 🟥
permission-check 4m 🟩🟩🟩🟩🟩 (+71 more)
rust-doc-tests 4m
rust-move-tests 4m
rust-doc-tests 4m
permission-check 4m 🟩🟩🟩🟩🟩 (+71 more)
permission-check 4m 🟩🟩🟩🟩🟩 (+71 more)
rust-move-tests 3m
rust-images / rust-all 3m
rust-move-tests 3m
rust-doc-tests 3m
rust-doc-tests 3m
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-doc-tests 2m 🟥
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 2m 🟩
rust-move-tests 1m 🟩
rust-move-tests 1m 🟩
rust-move-tests 1m 🟩
rust-move-tests 1m
rust-doc-tests 1m
rust-doc-tests 1m
rust-move-tests 1m
rust-move-tests 1m
rust-move-tests 1m
rust-doc-tests 1m
rust-doc-tests 49s
rust-move-tests 48s
rust-doc-tests 45s
rust-doc-tests 32s
rust-move-tests 27s
rust-move-tests 16s
Backport PR 16s 🟥🟥🟥🟥
rust-move-tests 14s
permission-check 9s 🟩🟩🟩🟩
rust-doc-tests 8s
rust-move-tests 5s
rust-doc-tests 4s
rust-doc-tests 1s
rust-move-tests 1s

🚨 3 jobs on the last run were significantly faster/slower than expected

Job Duration vs 7d avg Delta
indexer-grpc-e2e-tests / test-indexer-grpc-docker-compose 1h 44m 2m +6783%
check-dynamic-deps 2m 1m +102%
execution-performance / test-target-determinator 3m 4m -27%

settingsfeedbackdocs ⋅ learn more about trunk.io

@yzaccc yzaccc added the CICD:run-e2e-tests when this label is present github actions will run all land-blocking e2e tests from the PR label Sep 18, 2024
@yzaccc yzaccc force-pushed the yzaccc/auto-bump-forge-compat-base-image-to-latest-release branch from c136225 to ad21dc2 Compare September 18, 2024 23:43

This comment has been minimized.

This comment has been minimized.

@yzaccc yzaccc force-pushed the yzaccc/auto-bump-forge-compat-base-image-to-latest-release branch from cec5dcc to ec40ae2 Compare September 19, 2024 00:15

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@yzaccc yzaccc force-pushed the yzaccc/auto-bump-forge-compat-base-image-to-latest-release branch 2 times, most recently from 195bb2c to 483cb23 Compare September 19, 2024 04:08

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@yzaccc yzaccc force-pushed the yzaccc/auto-bump-forge-compat-base-image-to-latest-release branch 2 times, most recently from 370a94b to df93f9b Compare September 19, 2024 06:17

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link
Contributor

✅ Forge suite realistic_env_max_load success on 9bd1594f490fdf80321abb3ec83a3589f42e6d25

two traffics test: inner traffic : committed: 14260.57 txn/s, latency: 2786.01 ms, (p50: 2700 ms, p70: 2700, p90: 3000 ms, p99: 3300 ms), latency samples: 5422160
two traffics test : committed: 99.99 txn/s, latency: 1537.83 ms, (p50: 1500 ms, p70: 1600, p90: 1700 ms, p99: 1800 ms), latency samples: 1800
Latency breakdown for phase 0: ["QsBatchToPos: max: 0.263, avg: 0.233", "QsPosToProposal: max: 1.104, avg: 1.079", "ConsensusProposalToOrdered: max: 0.319, avg: 0.295", "ConsensusOrderedToCommit: max: 0.436, avg: 0.420", "ConsensusProposalToCommit: max: 0.727, avg: 0.715"]
Max non-epoch-change gap was: 0 rounds at version 0 (avg 0.00) [limit 4], 0.92s no progress at version 2974405 (avg 0.20s) [limit 15].
Max epoch-change gap was: 0 rounds at version 0 (avg 0.00) [limit 4], 8.55s no progress at version 2974403 (avg 8.55s) [limit 15].
Test Ok

Copy link
Contributor

✅ Forge suite framework_upgrade success on 25a081116546670e62ca927ba90478de78557056 ==> 9bd1594f490fdf80321abb3ec83a3589f42e6d25

Compatibility test results for 25a081116546670e62ca927ba90478de78557056 ==> 9bd1594f490fdf80321abb3ec83a3589f42e6d25 (PR)
Upgrade the nodes to version: 9bd1594f490fdf80321abb3ec83a3589f42e6d25
framework_upgrade::framework-upgrade::full-framework-upgrade : committed: 1125.25 txn/s, submitted: 1127.02 txn/s, failed submission: 1.77 txn/s, expired: 1.77 txn/s, latency: 2625.88 ms, (p50: 2400 ms, p70: 2700, p90: 3700 ms, p99: 5700 ms), latency samples: 101940
framework_upgrade::framework-upgrade::full-framework-upgrade : committed: 1111.78 txn/s, submitted: 1112.51 txn/s, failed submission: 0.73 txn/s, expired: 0.73 txn/s, latency: 2950.03 ms, (p50: 2400 ms, p70: 3000, p90: 6000 ms, p99: 7500 ms), latency samples: 91900
5. check swarm health
Compatibility test for 25a081116546670e62ca927ba90478de78557056 ==> 9bd1594f490fdf80321abb3ec83a3589f42e6d25 passed
Upgrade the remaining nodes to version: 9bd1594f490fdf80321abb3ec83a3589f42e6d25
framework_upgrade::framework-upgrade::full-framework-upgrade : committed: 1206.88 txn/s, submitted: 1209.45 txn/s, failed submission: 2.57 txn/s, expired: 2.57 txn/s, latency: 2609.07 ms, (p50: 2400 ms, p70: 2700, p90: 3600 ms, p99: 5400 ms), latency samples: 103220
Test Ok

Copy link
Contributor

✅ Forge suite compat success on 25a081116546670e62ca927ba90478de78557056 ==> 9bd1594f490fdf80321abb3ec83a3589f42e6d25

Compatibility test results for 25a081116546670e62ca927ba90478de78557056 ==> 9bd1594f490fdf80321abb3ec83a3589f42e6d25 (PR)
1. Check liveness of validators at old version: 25a081116546670e62ca927ba90478de78557056
compatibility::simple-validator-upgrade::liveness-check : committed: 16661.39 txn/s, latency: 2046.24 ms, (p50: 2100 ms, p70: 2200, p90: 2400 ms, p99: 2600 ms), latency samples: 536060
2. Upgrading first Validator to new version: 9bd1594f490fdf80321abb3ec83a3589f42e6d25
compatibility::simple-validator-upgrade::single-validator-upgrading : committed: 7735.75 txn/s, latency: 3711.10 ms, (p50: 4200 ms, p70: 4300, p90: 4400 ms, p99: 4500 ms), latency samples: 144720
compatibility::simple-validator-upgrade::single-validator-upgrade : committed: 7035.26 txn/s, latency: 4510.86 ms, (p50: 4400 ms, p70: 4500, p90: 6800 ms, p99: 7000 ms), latency samples: 233880
3. Upgrading rest of first batch to new version: 9bd1594f490fdf80321abb3ec83a3589f42e6d25
compatibility::simple-validator-upgrade::half-validator-upgrading : committed: 8109.37 txn/s, latency: 3557.14 ms, (p50: 4000 ms, p70: 4100, p90: 4200 ms, p99: 4400 ms), latency samples: 150560
compatibility::simple-validator-upgrade::half-validator-upgrade : committed: 7469.83 txn/s, latency: 4242.10 ms, (p50: 4200 ms, p70: 4200, p90: 6700 ms, p99: 7000 ms), latency samples: 243640
4. upgrading second batch to new version: 9bd1594f490fdf80321abb3ec83a3589f42e6d25
compatibility::simple-validator-upgrade::rest-validator-upgrading : committed: 11594.25 txn/s, latency: 2373.85 ms, (p50: 2500 ms, p70: 2700, p90: 2800 ms, p99: 3100 ms), latency samples: 200620
compatibility::simple-validator-upgrade::rest-validator-upgrade : committed: 11134.52 txn/s, latency: 2770.15 ms, (p50: 2600 ms, p70: 2800, p90: 4600 ms, p99: 5600 ms), latency samples: 362960
5. check swarm health
Compatibility test for 25a081116546670e62ca927ba90478de78557056 ==> 9bd1594f490fdf80321abb3ec83a3589f42e6d25 passed
Test Ok

@yzaccc yzaccc merged commit 5ad601c into main Sep 26, 2024
64 of 65 checks passed
@yzaccc yzaccc deleted the yzaccc/auto-bump-forge-compat-base-image-to-latest-release branch September 26, 2024 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants