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

Pre-Built SIPNET Binary for GitHub Actions #3427

Open
3 tasks
dlebauer opened this issue Jan 30, 2025 · 5 comments
Open
3 tasks

Pre-Built SIPNET Binary for GitHub Actions #3427

dlebauer opened this issue Jan 30, 2025 · 5 comments

Comments

@dlebauer
Copy link
Member

Problem

Currently, sipnet.yml in pecanproject/pecan checks out pecanproject/sipnet, builds SIPNET from source using make, and then runs PEcAn tests. This adds an unnecessary failure point and compute/time for PEcAn GHAS.

Proposed Solution

  • Modify ci.yml in pecanproject/sipnet to build and upload the SIPNET binary as an artifact and update sipnet.yml in pecanproject/pecan to download and use the pre-built binary instead of compiling from source.

Benefits

  • Eliminates failed runs due to sipnet build issues
  • Eliminates redundant SIPNET builds in PEcAn CI
  • Reduces build time and improves efficiency

Next Steps

  • Update ci.yml in pecanproject/sipnet to build and upload SIPNET binary.
  • Update sipnet.yml in pecanproject/pecan to download and use the pre-built SIPNET binary.
  • Test and verify the workflows.
@infotroph
Copy link
Member

A couple complications here:

  1. The existing PEcAn sipnet test uses the checked-out sipnet repo for two things: to build the binary and then to provide the sipnet input files for the test run, so there is more than one file to be synced/retrieved each time
  2. Build artifacts aren't permanent and I'm not sure whether you can even access them outside the workflow where they were created, let alone from another repository. I'm fuzzy on details here and could be wrong, but I believe that to persist artifacts for wider use you need a Deployment step that uploads them to some destination outside the GHA infrastructure.

I don't think either of these is a showstopper, just more pieces to put together to get this all working.

@asmb123
Copy link

asmb123 commented Feb 5, 2025

@dlebauer do you mean the sipnet.yml and ci.yml files from the .github/workflows??

@dlebauer
Copy link
Member Author

dlebauer commented Feb 7, 2025

@asmb123 I am not as familiar with the build system as @infotroph but it may only require editing lines 51-61 in sipnet.yml?

@dlebauer
Copy link
Member Author

dlebauer commented Feb 7, 2025

@infotroph good point about non-permanence and non-public access of artifacts ... I think this motivates creating SIPNET releases where we can make binaries available.

@dlebauer
Copy link
Member Author

dlebauer commented Feb 7, 2025

Until we create SIPNET releases with binaries PecanProject/sipnet#27, here are the binaries that should be accessible to the GH Actions and PEcAn workflow users (e.g. curl examples shown:

  • sipnet-macos curl -L -o sipnet-macos "https://drive.google.com/uc?export=download&id=1psNvSw77VcD5QdbSWeGNVQsbCmJokG2W"
  • sipnet-linux curl -L -o sipnet-linux "https://drive.google.com/uc?export=download&id=1sRTFfs9Z9osmMrtLlwVTqxeUDxgVlrEv"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants