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(build): Add Build And Release Pipeline #83

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Thogsit
Copy link

@Thogsit Thogsit commented Sep 3, 2024

Hint: This PR is built upon #80 and as such has an unclean diff

Goal

This PR contains a new workflow file that has build jobs for the 3 major OSs Linux, Windows and MacOS.
Each build results gets uploaded and published in a new release with the branches' name.

TODOs (can also be adressed via later PRs)

  • The build and release publishing can currently only be triggered manually for a specific branch. I'd think it should be changed to automatically run whenever a change is pushed to main so that we have an alway up to date build with the name "main" for the bleeding edge enthusiasts ;p. Also, the manual triggering should stay in my opinion and could be used to release "major" new versions by creating a new branch, e.g. "v0.0.1" and then manually running the workflow for this branch. This could also be automated but I think keeping it manually controlled is a good way here. So the result would be that we have an always up to date "main" release and for whatever steps you seem "stable" release worthy, a v<whatever> branch is created with it's own v<whatever> release on the Releases page. How this could look can be seen here. Feel free to suggest how you want to handle releases and I'd be glad to change this PR accordingly :).
  • The MacOS build doesn't work due to not having a configured release profile? I've got only limited MacOS dev experience, as such maybe you can have a look at it @avdept ? An example of the occuring build error can be found here. Just reenable the MacOS job in the workflow file by uncommenting it to test it yourself if you'd like :).
  • The Windows build has only been tested with Wine on Linux which successfully opened the application but wasn't able to play music. I don't know whether this is a Wine specific problem, will test on a native Windows when I find the time. If it's not Wine specific, it could be due to a missing media_kit_lib_<windows> or whatever dependency in the pubspec.yaml. I'll try that when I get to it.
  • The Linux build is currently a raw binary. It would be possible to add a Flatpak or some other release type if wanted; probably with neglectable effort.
  • Android & iOS missing; will be done in the next days

EDIT: Tried on native Windows, music doesn't work as with Wine on Linux. I'll work on it. Also, on Windows no Minimize/Maximize/Close buttons exist and the window is not movable via dragging; I'll try out the same migration from window_manager to the bitsdojo one which should fix that.

@avdept
Copy link
Owner

avdept commented Sep 6, 2024

Hey, thanks for making this, big work!

I'm away these days, will check once get fully back

@avdept
Copy link
Owner

avdept commented Sep 6, 2024

@Thogsit Btw for linux - does it packs with lib_mpv or that should be installed separately?

@Thogsit
Copy link
Author

Thogsit commented Sep 9, 2024

@Thogsit Btw for linux - does it packs with lib_mpv or that should be installed separately?

Good point, I've got mpv installed on my machine so everything works, but for the Pipeline I had to explicitly install mpv with apt; I should check out if and how it is required for the manual Linux build. Tracked with #86

I'm away for work this week, so won't check back on this until next week :)

@avdept
Copy link
Owner

avdept commented Sep 19, 2024

@Thogsit Btw for linux - does it packs with lib_mpv or that should be installed separately?

Good point, I've got mpv installed on my machine so everything works, but for the Pipeline I had to explicitly install mpv with apt; I should check out if and how it is required for the manual Linux build. Tracked with #86

I'm away for work this week, so won't check back on this until next week :)

Sorry, been away as well. Ill check PR over weekends

@Thogsit Thogsit force-pushed the ci/build_add_build_and_release_pipeline branch 2 times, most recently from 69cb770 to 48ec64f Compare October 4, 2024 08:47
@Thogsit Thogsit force-pushed the ci/build_add_build_and_release_pipeline branch from 48ec64f to 3fa903a Compare October 4, 2024 09:40
@Thogsit
Copy link
Author

Thogsit commented Oct 4, 2024

Finally I'm back from vacation and took a look at it again :).

I've now added information to the main README regarding Linux and Windows. Also, I added Android to the CI, so that on every push to main the Release section is automatically updated with a new version of the Android, Linux and Windows builds.

This should make this PR as far as I'm concerned ready for merging 👍.

@avdept
Copy link
Owner

avdept commented Oct 9, 2024

Finally I'm back from vacation and took a look at it again :).

I've now added information to the main README regarding Linux and Windows. Also, I added Android to the CI, so that on every push to main the Release section is automatically updated with a new version of the Android, Linux and Windows builds.

This should make this PR as far as I'm concerned ready for merging 👍.

Hey, welcome back!

And thanks for your work. I'll have a bit of time over weekends to check and merge it!

- name: Release to github
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one that starts with GHP_ right?

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.

2 participants