Skip to content
New issue

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

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

Already on GitHub? # to your account

Avoid repeated downloads for assets during test #491

Closed
jserv opened this issue Sep 5, 2024 · 2 comments
Closed

Avoid repeated downloads for assets during test #491

jserv opened this issue Sep 5, 2024 · 2 comments
Assignees

Comments

@jserv
Copy link
Contributor

jserv commented Sep 5, 2024

After the successful integration of #474, our GitHub CI/CD pipeline now automatically publishes a tarball of the latest RISC-V executables, keeping the rv32emu source tree clean. However, we have noticed that the tarball is being downloaded multiple times during tests, leading to unnecessary delays. To improve this, we can cache the downloaded files beforehand and simply verify the extracted RISC-V executables during the testing phase.

@jserv jserv added this to the release-2024.1 milestone Sep 5, 2024
@vacantron
Copy link
Collaborator

vacantron commented Sep 6, 2024

@ChinYikMing, can you remove this line as the object file dependencies which added in #487? This will always trigger rebuilding src/* via executing make all at

$(OUT)/%.o: src/%.c $(deps_emcc)

@ChinYikMing
Copy link
Collaborator

ChinYikMing commented Sep 6, 2024

@ChinYikMing, can you remove this line as the object file dependencies which added in #487? This will always trigger rebuilding src/* via executing make all at

$(OUT)/%.o: src/%.c $(deps_emcc)

I would prefer to keep it and only add the artifact target to deps_emcc if CC=emcc, but not the way it's currently written.

deps_emcc := artifact

ChinYikMing added a commit to ChinYikMing/rv32emu that referenced this issue Sep 6, 2024
Normal 'make' or 'make all' does not require downloading prebuilt ELF
executables from the rv32emu-prebuilt repo. However, 'deps_emcc' always
depends on the 'artifact' target, even when not using emcc, causing 'make'
or 'make all' to always download prebuilt ELF executables. To prevent this,
the 'artifact' target is moved under the emcc build condition.

Related: sysprog21#491
vacantron added a commit to vacantron/rv32emu that referenced this issue Sep 10, 2024
vacantron added a commit to vacantron/rv32emu that referenced this issue Sep 10, 2024
Now, we fetch the SHA1 first and verify the binaries. Only if the check
fails, the download begins.

Close sysprog21#491
vacantron added a commit to vacantron/rv32emu that referenced this issue Sep 11, 2024
We fetch the SHA1 first and verify the binaries. If any verification
fails, the returned value of the "verify" macro becomes non-zero.
Only if the verification fails, the download begins.

Close sysprog21#491
@jserv jserv closed this as completed in 4218524 Sep 11, 2024
vestata pushed a commit to vestata/rv32emu that referenced this issue Jan 24, 2025
Normal 'make' or 'make all' does not require downloading prebuilt ELF
executables from the rv32emu-prebuilt repo. However, 'deps_emcc' always
depends on the 'artifact' target, even when not using emcc, causing 'make'
or 'make all' to always download prebuilt ELF executables. To prevent this,
the 'artifact' target is moved under the emcc build condition.

Related: sysprog21#491
vestata pushed a commit to vestata/rv32emu that referenced this issue Jan 24, 2025
We fetch the SHA1 first and verify the binaries. If any verification
fails, the returned value of the "verify" macro becomes non-zero.
Only if the verification fails, the download begins.

Close sysprog21#491
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants