Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub Actions integration #117

Merged
merged 54 commits into from
Nov 10, 2023
Merged

GitHub Actions integration #117

merged 54 commits into from
Nov 10, 2023

Conversation

zanecop
Copy link
Contributor

@zanecop zanecop commented Oct 31, 2021

I've drafted up this PR for consideration. I apologize for the number of Commits 馃槄

There's an appveyor file but nuget.org only has very old versions (from 2019) of Telepathy. There are no binary releases available (that I'm aware of...) so I've provided a GitHub Action yaml that will produce a downloadable artifact with .dlls for direct use. Additionally, I retooled the LoadTest slightly to run in a GitHub Action, it was previously unable to run in an Action step because it required key input or manual process killing so now it has an option to self-terminate after a provided number of seconds. Also LoadTest was hardcoded to use port 1337 in some cases which doesn't make windows machines happy for some reason.

I also attempted to have the Action run the telepathy unit tests but I was unable to get it to run them satisfactorily, possibly due to them being nunit tests???

Additions:

  • GitHub Actions Windows-based CI build that

    • Builds the binaries
    • Attempts to run the test project (cannot get this to work at this time)
    • Runs the load test for 60 seconds ("both" uses port 6565 instead of 1337 which does not work on Windows Server because... not ephemeral?)
    • Packs the binaries (.dlls) into an Artifact which is downloadable via the Actions tab
      image
  • CI Badge on readme under the CHAT badge

Changes:

  • LoadTest has a few tweaks
    • "timed" option where the .exe will self-kill after the provided seconds elapse (because you cannot Console.ReadKey() in a GitHub Action)
    • Support for timed>Both() to pick the PORT via args[] because Windows Server does not like port 1337 (because its not ephemeral?)

@zanecop
Copy link
Contributor Author

zanecop commented Oct 31, 2021

I bumped the VS version in appveyor to 2019 so the projects would build (they were failing to build in appveyor due to default literals. Despite this there seem to be some "flaky tests" in appveyor as I've seen a different number of failed tests a few times.

@zanecop
Copy link
Contributor Author

zanecop commented Oct 31, 2021

ok, Actions tests now work. Flaky test behavior seemed to be related to tests running too quickly together, a short ~100 ms cooloff at the start of every test drastically reduced the flaky results.

AppVeyor tests are passing as well; Actions tests were passing reliably with a 50ms cooldown but AppVeyor seemed to be happy at 100ms.

Additionally, I patched up a permanent IPV6 test problem that I was experiencing in Actions as well as AppVeyor.

Unfortunately there appears to possibly be some issue with CodeCov causing AppVeyor to not pass despite all tests passing. I commented out CodeCov to see if AppVeyor would pass, and AppVeyor passed fully.

I believe the token for CodeCov may be missing:
image

@miwarnec
Copy link
Collaborator

hey @zanecop little late but thanks a lot, merging.

@miwarnec miwarnec merged commit 0a06fe7 into MirrorNetworking:master Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants