vrchat-community / template-package

WIP Package Template Repository
https://vrchat-community.github.io/template-package/
54 stars 17 forks source link

Workflows based on this repository will be broken with ubuntu-latest migration to 24.04 #22

Open anatawa12 opened 2 weeks ago

anatawa12 commented 2 weeks ago

Workflows based on this repository will be broken with ubuntu-latest migration to 24.04

The Problem

Since this week, github actions workflows (jobs) with ubuntu-latest will use ubuntu-24.04. (some repositories already uses 24.04 and some doesn't for now.) In ubuntu-24.04 runner images, dotnet 6.0 will not be included in runner image and only dotnet 8. (see actions/runner-images#10636)

However, vrchat-community/package-list-action does not support .NET 8 so workflows based on this repository will be broken.

Affects

There are some real-world cases of this problem like Azukimochi/vpm-repos. ALL repositories that are based on this repository will be affected.

Workarounds

There are two options.

The first way to workaround this problem is to use ubuntu-22.04, which includes .NET 6 runtime. However, using older version of ubuntu might cause problem in the future. (at least, we may need to migrate to newer ubuntu).

The second way to workaround this problem is to add step to install .NET 6 with actions/setup-dotnet@v4.

You can add an step like this before building

- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: '6.x'

The way to Fix

We should do two thing.

First, we should add .NET 8 support in vrchat-community/package-list-action. This will fix the problem for existing repositories. I'll create issue for this fix soon. => vrchat-community/package-list-action#27

Second, we should add actions/setup-dotnet step to prevent similar problem in the future (about two years later).

orels1 commented 4 days ago

We are most likely going to version the current state of the package-list-action as v1 (now that it has the .NET 6 + .NET 8

then introduce the github action.yml which can then include actions/setup-dotnet@v4 as a step (with a configuration key to skip that for selfhosted runners) in v2, and ditch .net 6 there

still something in active discussion, but that is the general direction we're looking at now