Skip to content

Modernize build workflow #414

Description

@DanRStevens

This project has been dormant for awhile, and there are certain aspects of building it that are perhaps a bit out of date.


We should update the project for use with newer versions of Visual Studio.

  • Visual Studio 2019 (project was last built with this version)
  • Visual Studio 2022 (current level of CI support)
  • Visual Studio 2026 (new release, with expected CI updates soon)

The project uses nuget for the GoogleTest and GoogleMock dependencies for the unit test project. Other projects we work on here have since switched to vcpkg. We should perhaps update the build dependencies to use vcpkg. At the very least, it reduces the number of tools that developers here need to know.

Additionally, it was never very clear with Nuget how official certain packages were. That can lead to security issues involving dependencies. With vcpkg you can generally expect everyone to use the same package for the same project, so they probably receive more scrutiny.


The project was using AppVeyor for Windows builds. AppVeyor runs multiple build serially, which is kind of slow. Since then GitHub Actions has come out and started offering Windows runners, and they build in parallel. Other projects here have switched to GitHub Actions. We should probably do the same here to reduce the number of tools that developers here need to know.

On a related note we also use CircleCI for the Linux builds. We do get parallel builds there, so less reason to change, though it might make sense to consolidate on GitHub Actions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions