Questie

Questie

116M Downloads

Improve CI / CD Pipeline Automation

Gogo1951 opened this issue ยท 8 comments

commented

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.

https://github.com/BigWigsMods/packager

commented

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.

commented

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/')

commented

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?

commented

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 :)

commented

Discord notifications;

      - name: Send Status to Discord
        uses: nebularg/actions-discord-webhook@v1
        with:
          webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
          status: ${{ job.status }}
        if: ${{ failure() }}
commented

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)

commented

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 ๐Ÿ‘

commented

Sounds great @QartemisT ! Thanks for all the input ๐Ÿ™