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

Build artifacts expire, we should create github releases instead #25

Open
GabLeRoux opened this issue Sep 29, 2021 · 8 comments · May be fixed by #33
Open

Build artifacts expire, we should create github releases instead #25

GabLeRoux opened this issue Sep 29, 2021 · 8 comments · May be fixed by #33

Comments

@GabLeRoux
Copy link
Owner

Everything is in issue title. Here's an example of expired artifacts:
https://github.com/GabLeRoux/macos-crossover-wine-cloud-builder/actions/runs/1104195381

They are listed, but cannot be downloaded anymore:
image

possible action to use:
https://github.com/actions/create-release

@Gcenx
Copy link
Collaborator

Gcenx commented Sep 29, 2021

Yes artifacts have I think a 2 month? life before expiring.

I had considered being this up but I think we’d need to check how brew provided libraries are getting linked as brew isn’t exactly known to keep things stable.

@GabLeRoux
Copy link
Owner Author

I just tried something on a similar project which builds an older open source game on a mac and I managed to automate releases creation (we need to first move the artifact out of the mac and then create a release from the downloaded artifact). Here's a draft pr I tried between two tests execution at my day job 😅:
shoogle/OpenArena-legacy#2

@Gcenx
Copy link
Collaborator

Gcenx commented Mar 25, 2022

Come back to this and thinking it over I’m against providing prebuilt releases due to how much of a PITA doing it was when using macports libraries let alone dealing with brew segregated libraries.

As the provided local build script already does everything needed I don’t believe it’s worth the additional effort.

@Gcenx
Copy link
Collaborator

Gcenx commented Mar 28, 2022

@dasmy & @GabLeRoux any thoughts?

@GabLeRoux
Copy link
Owner Author

GabLeRoux commented Mar 28, 2022

I might be wrong, but I feel that it's mainly a matter of creating a github release when pipeline succeeds on main branch. This can be done with the example I shared above.

I don't think we must support all versions or all latest versions. I don't want any pressure on that project. Providing a release would definitely solve the expiration of builds problem.

When I started this project, my main objective was to get a binary without having to install and build everything from my laptop. It was just a fun weekend project and I consider it already succeeded the objectives.

If we think about it with iterations, the main problem I wanted to solve in current issue is the expiration. Maintenance and making sure we always have the latest version is a different issue imho.

Simple 1st iteration:

  1. Create a release each time the pipeline succeeds on main branch based

@GabLeRoux GabLeRoux linked a pull request Mar 28, 2022 that will close this issue
@Gcenx
Copy link
Collaborator

Gcenx commented Mar 28, 2022

I’ll expand on my concern with provided releases.


Once compiled wine will have backend in library paths these may be pointing to the actual path and not brews /usr/local/opt paths this can cause issues later when a libraries version gets bumped making the embedded path now invalid.

Also need to ensure anyone using the release have installed the needed runtime libraries or ship them within the package.

@dasmy
Copy link
Collaborator

dasmy commented Apr 5, 2022

I agree with @Gcenx that there are severe difficulties to be expected. Currently, a user of the artifacts needs to have the very same versions of the runtime dependencies installed via brew which were present at build time on the CI server.

Thus, for providing usable release packages we would need to

If I did not forget anything serious, I think this could be doable and the final release packages would profit from this. Still, it would be challenging and a bit of work...

@Gcenx
Copy link
Collaborator

Gcenx commented Apr 5, 2022

@dasmy I’d ignore what brew says about a none default install location as we’d be fixing up the installed library's install_name after the fact.

When installing brew into a custom location there bottles lightly won’t work forcing source compiles that they don’t support.

Still brew doesn’t recommend this proposed setup, it recommends not relying on brew provided libraries.

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 a pull request may close this issue.

3 participants