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

CI takes 28 min. Shrink via (1) download vyper 1x (2) parallelize github actions #548

Closed
2 tasks
trentmc opened this issue May 9, 2023 · 1 comment · Fixed by #558
Closed
2 tasks

CI takes 28 min. Shrink via (1) download vyper 1x (2) parallelize github actions #548

trentmc opened this issue May 9, 2023 · 1 comment · Fixed by #558
Assignees

Comments

@trentmc
Copy link
Member

trentmc commented May 9, 2023

Background / motivation

Total CI runtime is 28 min. Here's an example log from a successful end-to-end run.

From a conversation between Trent & Alex, based on inspecting the log, we see a couple quick wins to speed this up.

  • Issue 1: downloads vyper three times
  • Issue 2: only after barge download completes does it compile. Compile takes real time too

TODOs:

Optimize github actions as follows.

  • For issue 1: download Vyper just once
  • For issue 2: (a) start barge download, then (b) download vyper & compile in parallel. Once both (a) and (b) are done, then do the rest.

Detail: Downloads vyper three times

This happens in the "Test with Brownie" github action.

Downloading from https://github.com/vyperlang/vyper/releases/download/v0.3.1/vyper.0.3.1.linux
  0%|          | 0.00/17.2M [00:00<?, ?iB/s]
  3%|▎         | 558k/17.2M [00:00<00:02, 5.58MiB/s]
...
100%|██████████| 17.2M/17.2M [01:10<00:00, 245kiB/s]
Using vyper version 0.3.1
...
...
100%|██████████| 17.2M/17.2M [01:10<00:00, 245kiB/s]
Using vyper version 0.3.1
vyper 0.3.1 successfully installed at: /home/runner/.vvm/vyper-0.3.1
Downloading from https://github.com/vyperlang/vyper/releases/download/v0.2.7/vyper.0.2.7+commit.0b3f3b3.linux

  0%|          | 0.00/20.6M [00:00<?, ?iB/s]
  3%|▎         | 519k/20.6M [00:00<00:03, 5.19MiB/s]
...
100%|██████████| 20.6M/20.6M [01:02<00:00, 328kiB/s] 
vyper 0.2.7 successfully installed at: /home/runner/.vvm/vyper-0.2.7
Downloading from https://github.com/vyperlang/vyper/releases/download/v0.2.4/vyper.0.2.4+commit.7949850.linux

  0%|          | 0.00/20.6M [00:00<?, ?iB/s]
  3%|▎         | 639k/20.6M [00:00<00:03, 6.39MiB/s]
...
100%|██████████| 20.6M/20.6M [00:43<00:00, 470kiB/s]
vyper 0.2.4 successfully installed at: /home/runner/.vvm/vyper-0.2.4
Downloading from https://solc-bin.ethereum.org/linux-amd64/solc-linux-amd64-v0.8.12+commit.f00d7308
Compiling contracts...
@trentmc trentmc added the Type: Enhancement New feature or request label May 9, 2023
@trentmc
Copy link
Member Author

trentmc commented May 9, 2023

This is relatively high priority because doing it will greatly reduce CI runtime, for faster turnaround of df-py in general

@trentmc trentmc added Priority: High and removed Type: Enhancement New feature or request labels May 9, 2023
alexcos20 added a commit that referenced this issue May 9, 2023
* Improve tests speed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants