Improve CI / CD Pipeline Automation
Gogo1951 opened this issue ยท 8 comments
Looks like something that will really make releases a lot easier. Also automatically builds patch notes!
Need to fully understand how it would work for us, and likely make a few changes to our Git branch processes, but seems really promising.
@BreakBB & @AeroScripts feel free to reach out to @QartemisT in Discord - she's currently using this on other projects.
I made a new branch based on #4354 at #4446 (bigwigs
branch).
The PR uses BigWigsMods/packager to automate releases. As is we could use it for an "alpha" channel to release on some schedule (e.g. on push to a new development
branch, or daily from master
, or on tags only).
To use the script for regular releases (which would probably use a separate workflow) there are some additional considerations like integrating or replacing the current changelog script.
The way to counter this is make it only publish on a github release, which is done with this tag; if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
Hey @BreakBB ,
You're comfortable owning this task, yeah?
Can we turn this ticket into more of a pipeline / CD ticket? What else would you like to do?
I think the idea of alerting people of Lua errors on commit was solid. I think it's a little rough at times due to the spam alerts (the line length on spawn points, for example) -- but no the whole really a good call to have more automation in the review process.
@AeroScripts or @QartemisT - what else should we be aiming for in the short term?
Yeah sure, I can follow this task!
Before using the package manager I would like to use more of the default GitHub actions. Creating the changelog automatically and maybe releasing in GitHub first before going towards CurseForge :)
Also checking more of the GitHub Discord bot to get alerted on falsy commits. Not sure how exactly though yet :)
Discord notifications;
- name: Send Status to Discord
uses: nebularg/actions-discord-webhook@v1
with:
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
if: ${{ failure() }}
Also, if you use the packager, it automatically generates the changelogs, and provides a github release etc. (along with whatever other release sites you wish; wow interface, curseforge, wago)
We haven't been much of a fan of the auto release yet in the project.
Personally I also think it will make things a lot easier. But we need to look more into it and it is also the default way to upload releases to CurseForge for I guess all addons.
We need to invest some more time in our CI pipeline (luacheck + the DB compile script) though before we should bring CD in.
I vote for using this ๐
Sounds great @QartemisT ! Thanks for all the input ๐