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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI(docs): run for every commit (not just tags) #636

Merged
merged 5 commits into from
Dec 19, 2023

Conversation

knocte
Copy link
Collaborator

@knocte knocte commented Dec 16, 2023

  • .config/dotnet-tools: update Fornax version
  • CI: merge docs pipeline into main one
  • CI,README: less .NET version occurrences

Supersedes #626

It seems v0.13.1 of fornax was depending on .NETCore3.1 to be
able to be run, so it caused a problem [1] when we tried to remove
this old version [2] of .NET (given that the CI pipeline was already
installing .NET5).

[1] 815efa4
[2] c7ceca1
This way it will get run for every commit (except the deploy step);
which will let us notice much earlier when it breaks (not just when
creating a git tag, like it has happened[1] for the last version
that we published).

[1] See 815efa4 for more info.
We're eyeing to update to a newer version of .NET soon, and we
don't want to get the README file to point to a wrong badge or
CI link because of that, so it's better to not mention the .NET
version we're using in the workflow name (this way there's also
less lines to update everytime we update the version; and less
duplication thanks to the new CI variable '$DOTNET_VERSION').
The recent update[1] to Fornax caused NullReferenceExceptions in the
log (even though CI doesn't break) so we suspect this version might
have some kind of problem. Let's update to the last version (and for
this we've had to update the .NET version of this job, otherwise
the last version of Fornax cannot run with v5.0).

But note that after updating to this version, we've had to do some
other changes related to the .NET upgrade (to v6):

The Directory.Build.props change is to fix this restore error:

```
Run dotnet restore
  dotnet restore
  shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
  env:
    DOTNET_VERSION: 5.0.202
    DOTNET_ROOT: C:\Program Files\dotnet
  Determining projects to restore...
Error: C:\Program Files\dotnet\sdk\6.0.417\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(29,5): error NETSDK1138: The target framework 'net5.0' is
out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
[D:\a\FSharpLint\FSharpLint\tests\FSharpLint.FunctionalTest\FSharpLint.FunctionalTest.fsproj]
Error: C:\Program Files\dotnet\sdk\6.0.417\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(29,5): error NETSDK1138: The target framework 'net5.0' is
out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
[D:\a\FSharpLint\FSharpLint\src\FSharpLint.Core\FSharpLint.Core.fsproj]
Error: C:\Program Files\dotnet\sdk\6.0.417\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(29,5): error NETSDK1138: The target framework 'net5.0' is
out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
[D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Core.Tests\FSharpLint.Core.Tests.fsproj]
Error: C:\Program Files\dotnet\sdk\6.0.417\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(29,5): error NETSDK1138: The target framework 'net5.0' is
out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
[D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Console.Tests\FSharpLint.Console.Tests.fsproj]
Error: C:\Program Files\dotnet\sdk\6.0.417\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(29,5): error NETSDK1138: The target framework 'net5.0' is
out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
[D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Benchmarks\FSharpLint.Benchmarks.fsproj]
Error: C:\Program Files\dotnet\sdk\6.0.417\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(29,5): error NETSDK1138: The target framework 'net5.0' is
out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
[D:\a\FSharpLint\FSharpLint\src\FSharpLint.Console\FSharpLint.Console.fsproj]
  Restored D:\a\FSharpLint\FSharpLint\src\FSharpLint.Console\FSharpLint.Console.fsproj (in 6.28 sec).
  Restored D:\a\FSharpLint\FSharpLint\src\FSharpLint.Core\FSharpLint.Core.fsproj (in 6.28 sec).
  Restored D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Console.Tests\FSharpLint.Console.Tests.fsproj (in 6.28 sec).
  Restored D:\a\FSharpLint\FSharpLint\tests\FSharpLint.FunctionalTest\FSharpLint.FunctionalTest.fsproj (in 6.28 sec).
  Restored D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Benchmarks\FSharpLint.Benchmarks.fsproj (in 3 ms).
  Restored D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Core.Tests\FSharpLint.Core.Tests.fsproj (in 3 ms).
Error: Process completed with exit code 1.
```

And the .fs changes are to build these .NET6.0 compilation errors:
```
Error: D:\a\FSharpLint\FSharpLint\src\FSharpLint.Core\Rules\Conventions\RaiseWithTooManyArguments\FailwithBadUsage.fs(122,11): error FS0026: This rule will never be matched
[D:\a\FSharpLint\FSharpLint\src\FSharpLint.Core\FSharpLint.Core.fsproj]

Build FAILED.

Error: D:\a\FSharpLint\FSharpLint\src\FSharpLint.Core\Rules\Conventions\RaiseWithTooManyArguments\FailwithBadUsage.fs(122,11): error FS0026: This rule will never be matched
[D:\a\FSharpLint\FSharpLint\src\FSharpLint.Core\FSharpLint.Core.fsproj]
    0 Warning(s)
    1 Error(s)

Error: D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Core.Tests\Rules\Conventions\CyclomaticComplexity.fs(232,3): error FS0058: Possible incorrect indentation: this token is
offside of context started at position (229:9). Try indenting this token further or using standard formatting conventions.
[D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Core.Tests\FSharpLint.Core.Tests.fsproj]
Error: D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Core.Tests\Rules\Conventions\CyclomaticComplexity.fs(232,3): error FS0058: Possible incorrect indentation: this token is
offside of context started at position (229:9). Try indenting this token further or using standard formatting conventions.
[D:\a\FSharpLint\FSharpLint\tests\FSharpLint.Core.Tests\FSharpLint.Core.Tests.fsproj]
    0 Warning(s)
    2 Error(s)

```

[1] b4da0c8
The latest version of Fornax is also throwing exceptions, albeit
different than the previously reported ones (so we go back to the
old version, having to install old .NETCore3.x for now):

```
System.TypeLoadException: Could not load type 'FSharp.Compiler.SourceCodeServices.FSharpAssembly' from assembly 'FSharp.Compiler.Service, Version=41.0.7.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
   at FSharp.MetadataFormat.MetadataFormat.Generate(IEnumerable`1 dllFiles, FSharpOption`1 parameters, FSharpOption`1 xmlFile, FSharpOption`1 sourceRepo, FSharpOption`1 sourceFolder, FSharpOption`1 publicOnly, FSharpOption`1 libDirs, FSharpOption`1 otherFlags, FSharpOption`1 markDownComments, FSharpOption`1 urlRangeHighlight)
   at FSharp.MetadataFormat.MetadataFormat.Generate(String dllFile, FSharpOption`1 parameters, FSharpOption`1 xmlFile, FSharpOption`1 sourceRepo, FSharpOption`1 sourceFolder, FSharpOption`1 publicOnly, FSharpOption`1 libDirs, FSharpOption`1 otherFlags, FSharpOption`1 markDownComments, FSharpOption`1 urlRangeHighlight) in /app/src/FSharp.MetadataFormat/Main.fs:line 1506
   at FSI_0004.Apirefloader.loader(String projectRoot, SiteContents siteContet) in D:\a\FSharpLint\FSharpLint\docs\loaders\apirefloader.fsx:line 41
[12:16:29] multiple files generated in 570ms
[12:16:29] 'D:\a\FSharpLint\FSharpLint\docs\_public\index.json' generated in 222ms
ERROR IN PAGE GENERATION:
System.NullReferenceException: Object reference not set to an instance of an object.
   at FSI_0025.Menu.menu(SiteContents ctx, String page) in D:\a\FSharpLint\FSharpLint\docs\generators\partials\menu.fsx:line 13
   at FSI_0025.Layout.layout(SiteContents ctx, IEnumerable`1 bodyCnt, String page) in D:\a\FSharpLint\FSharpLint\docs\generators\partials\layout.fsx:line 39
   at FSI_0025.Page.generate'(SiteContents ctx, String page) in D:\a\FSharpLint\FSharpLint\docs\generators\page.fsx:line 12
   at FSI_0025.Page.generate(SiteContents ctx, String projectRoot, String page) in D:\a\FSharpLint\FSharpLint\docs\generators\page.fsx:line 16
[12:16:29] 'D:\a\FSharpLint\FSharpLint\docs\_public\index.html' generated in 318ms
...
```
@knocte knocte changed the title CI(docs): run for every commit (not just tags) & update Fornax CI(docs): run for every commit (not just tags) Dec 19, 2023
@knocte knocte merged commit 9cfac5f into fsprojects:master Dec 19, 2023
5 checks passed
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.

1 participant