eizedev / AirConnect-Synology

Updated AirConnect packages for Synology NAS and Synology Router
https://github.com/philippe44/AirConnect
MIT License
306 stars 14 forks source link

Update build process for AirConnect to support newer version (use GitHub Actions Workflows) #90

Closed eizedev closed 3 months ago

eizedev commented 6 months ago

Is your feature request related to a problem? Please describe

The developer of AirConnect changed the way the binaries are published. We need to change our build process to be able to build new AirConnect versions. They are only available in the github releases zip file, with all the other source files. We need to download the zip file, extract all relevant binaries, use these binaries for our build steps and afterwards delete all files including the downloaded zip file.

Describe the solution you'd like

Test https://github.com/marketplace/actions/release-downloader and perhaps https://github.com/marketplace/actions/download-workflow-artifact to get the latest release in ci step. After that, automatically test and publish a new release here in this repo.

Describe alternatives you've considered

.

Additional context

Also add https://github.com/marketplace/actions/action-shellcheck and use checkout to build packages

and one of these:

elgohr/Github-Release-Action marvinpinto/action-automatic-releases softprops/action-gh-release ncipollo/release-action

eizedev commented 5 months ago

First testing release: https://github.com/eizedev/AirConnect-Synology/releases/tag/1.6.3-20240114

branch: ci

Need to integrate error handling, detection for branches, pull requests detection, check if release was already published for this version of AirConnect and possibility to manually add a specific AirConnect release that should be build (currently using the latest AirConnect release that was published). Also the last part should be tested a bit more (fully publish a release on GitHub with changelog and attached packages)

eizedev commented 5 months ago

basic implementation done. Builds will be published automatically in GitHub action artifacts. Last step, the creation of the release, is currently a manual step. Will be optimized soon.