Closed revam closed 1 year ago
Do feel free to suggest changes and/or fixes. I haven't tested the actions yet since i don't know how to test them beforehand.
I've tested the docker build locally though.
Are you able to provide image sizes of the different builds locally?
Alternatively, we could just keep the .dockerignore the same and use the env GITHUB_SHA
The workflows are still untested. Will see if i can manage to test them tomorrow... I don't have enough time right now to do it.
Further investigation /p:Version={VersionNumber}
might work better, if we can get rid of the shared assembly info
Personally I find the SharedAssemblyInfo.cs
useful for programmatically modifying the assembly info. But if anyone have a better way to do it (it -> add a release channel and git sha digest to automated builds), then by all means, do tell.
Also do note that this PR have nothing to do with automated build numbers/version-changes. That will happen in another PR (if I'm the one doing it) since I don't want to delay this PR any longer.
I'm not sure if sed will work on the windows builds. We'll find out, I guess
So I need to fix the sed
usage on windows and maybe the Compress-Archive
usage on linux.
Removed sed
.
Also, the Compress-Archive
cmdlet is available in linux.
I need to find a better way to get the previous tag... the current action module (or whatever it's called) it uses only grabs the last tag... which is not ideal when we have tags for both the server and the plugin abstractions in the same repo, also they won't conform to the required version format if they have a prefix (e.g. "v", etc.)..
I think it's ready.
It was not ready. Also, managed to actually test some aspects of the workflows locally. Will unmark it as a draft when I fix it... again.
I've tested all I could manage locally.
Changes
Added a release channel, commit digest and tag for all automated builds (no tag for the manual builds though)
The release channel and commit digest are to-be used in Shoko Web UI to determine when/if it should show the update modal, but it can also be used for other things, such as, checking which commit the server was built against, etc.
Added an automated pre-release for each push to
master
, complete with an automated changelog for all the commits since the last push.Added build actions for every release and pre-release we do. This change combined all the daily actions/jobs (except the docker build) into a single workflow, and every release actions/jobs (again, except the docker build) into a single workflow.
Added artifacts to all future releases on Github, not just to the action runs. This will make it easier for all users (not just signed in users!) to download release zips from GitHub.
Updated the
/api/v3/Init/Version
endpoint to conditionally include any known key-value pairs stored in the assembly version extra field. Known keys includecommit
,tag
andchannel
. Also replaced theList<ComponentVersion>
with aComponentVersionSet
, making it easier to access the different versions (e.g. in JScVS.find(c => c.name === "Server").Version
→cVS.Server.Version
, etc.).Fixed the broken Web UI version returned in the v2 and v3 api.
Example
Example responses from
/api/v3/Init/Version
;Before
After (docker build)
After (debug in vscode)