TheAlmightyBob / Calendars

Cross-platform calendar API plugin for Xamarin and Windows
MIT License
101 stars 23 forks source link

Use GitHub Actions to build test projects #88

Closed TheAlmightyBob closed 2 years ago

TheAlmightyBob commented 2 years ago

The "real" builds of this library are run via AppVeyor. However, that runs on Windows and only builds the actual library projects. For validation purposes, it seemed nice to actually build the test apps on a Mac (yes technically the Mac is only necessary for the iOS project but simpler to be consistent), e.g. making sure that the library could successfully be referenced by an app.

I've been using AppCenter for this for years, which had the additional benefit of actually running the test apps (not actually running the tests, mind you, but at least made sure that things were in a runnable state), but there seem to be more and more problems with using that for modern projects, and it seems less-accessible for other contributors.

TheAlmightyBob commented 2 years ago

@maxkoshevoi Since you provided examples (which I combined with the docs), I'm curious if this looks sane to you 🙂

It wasn't clear to me what the benefit of the matrix.configuration stuff you had was, so I just hardcoded to Release.

TheAlmightyBob commented 2 years ago

It's a little weird that the GitHub Actions builds succeed when AppVeyor fails, but I'm guessing that's a Windows vs. Mac thing... when opening the project locally, I only see an error about #87 in VS on Windows, not on Mac.

TheAlmightyBob commented 2 years ago

It would be nice to include the UWP test project as well, but this is the only "documentation" I've found anywhere on that, which looks nontrivial... and I never had UWP support via AppCenter...

maxkoshevoi commented 2 years ago

@maxkoshevoi Since you provided examples (which I combined with the docs), I'm curious if this looks sane to you 🙂

There's a documentation now for building Xamarin apps? Finally! Actions look fine.

It wasn't clear to me what the benefit of the matrix.configuration stuff you had was, so I just hardcoded to Release.

That's me just flexing a bit 😄 matrix is used to build both Debug and Release versions. I have couple of #if RELEASE in my app, and wanted to make sure that I didn't break anything for any configuration