inspircd / inspircd-contrib

Third-party InspIRCd module repository.
https://www.inspircd.org
66 stars 72 forks source link

Implement CI. #236

Closed genius3000 closed 4 years ago

genius3000 commented 4 years ago

Limited to a push or pull request that changes anything in the 3.0 directory. This could maybe be improved at some point, e.g., for the next version's modules to build against that branch as well.

Installs any additional dependencies (modules should include the PackageInfo directive if necessary).

Builds are based on the inspircd/inspircd insp3 branch and only build the necessary subset of modules:

SadieCat commented 4 years ago

Is there a specific need to have tools/test-build for this? That's mainly used in inspircd/inspircd to allow us to test socket engines but modules should not be affected by this.

Instead, we can just do something like this:

make `INSPIRCD_TARGET="m_foo m_bar m_baz"
genius3000 commented 4 years ago

No, I was just mimicking the test of inspircd/inspircd; slimming it down here though would be good for sure.

SadieCat commented 4 years ago

I wonder if it would be possible to get a list of changed modules from Git and only rebuild those?

genius3000 commented 4 years ago

I don't think the event supplies that info but I had seen somewhere a mention of diff'ing the whole tree by revision (or such).

I had wanted to do a full check always, but thinking about it, it would suck to have a build fail for totally unrelated reasons to one's change(s). I'll have another look at all the events we can trigger on, maybe we can trigger off the base repo or just use an interval. That way we can still do a full CI incase something in the base repo causes a breakage in an untouched module here.

SadieCat commented 4 years ago

It's fine to do it this way for now. In the future we can look into changing it if we decide to.

SadieCat commented 4 years ago

LGTM.

genius3000 commented 4 years ago

@SadieCat I squashed the 'build diet' and 'resolving suggestions' commits into the base 'Implement' commit. I'd appreciate another review on the commit for the PR and Push event separation. I did run it through a full PR cycle in my fork; opening a PR runs the PR check, merging a PR runs the push check.