Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 13 additions & 37 deletions .github/workflows/develop.yml → .github/workflows/master.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,33 @@
name: Develop Workflow
name: Master Push Workflow

on:
push:
branches-ignore:
- 'release'
pull_request:
branches-ignore:
- 'release'
branches: [master]

permissions:
actions: write
checks: write
contents: write
issues: write
pull-requests: write

jobs:
build-and-test:
name: Build & Test
build-and-tag:
name: Build & Tag
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v5
uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.0.x
dotnet-version: 10.x
- name: Setup GitVersion
uses: gittools/actions/gitversion/setup@v4.5.0
uses: gittools/actions/gitversion/setup@v4
with:
versionSpec: '6.4.x'
versionSpec: '6.8.x'
- name: Determine Version
id: version_step
uses: gittools/actions/gitversion/execute@v4.5.0
uses: gittools/actions/gitversion/execute@v4
- name: Push New Version Tag
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
run: |
$gv = 'v${{ steps.version_step.outputs.majorMinorPatch }}' #gitversion result
$lt = $( git describe --tags --abbrev=0 ) # last tag version result
Expand All @@ -60,32 +51,17 @@ jobs:
--coverage --coverage-output-format cobertura --coverage-output coverage.cobertura.xml `
--coverage-settings tests/coverage-exclude.xml
mkdir coverage-report
- name: Code Coverage Summary Report For Merge Request
if: github.event_name == 'pull_request'
uses: 5monkeys/cobertura-action@master
with:
path: ./tests/HydraScript.IntegrationTests/bin/Debug/net10.0/TestResults/coverage.cobertura.xml
repo_token: ${{ secrets.GITHUB_TOKEN }}
minimum_coverage: 80
fail_below_threshold: true
show_class_names: true
show_missing: true
link_missing_lines: true
show_branch: true
only_changed_files: true
- name: ReportGenerator
uses: danielpalme/ReportGenerator-GitHub-Action@5.5.10
uses: danielpalme/ReportGenerator-GitHub-Action@5.5.11
with:
reports: './tests/HydraScript.IntegrationTests/bin/Debug/net10.0/TestResults/coverage.cobertura.xml'
targetdir: './coverage-report'
reports: './TestResults/coverage.cobertura.xml'
targetdir: './coverage-report'
- name: Upload coverage report artifact
if: github.event_name == 'push'
uses: actions/upload-artifact@v7
with:
name: CoverageReport
name: CoverageReport
path: coverage-report
- name: Upload Windows Build
if: github.ref != 'refs/heads/master' && github.event_name == 'push'
uses: actions/upload-artifact@v7
with:
name: windows_build_${{ steps.version_step.outputs.fullSemVer }}
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Pull Request Workflow

on:
pull_request:
branches-ignore: [release]

permissions:
checks: write
contents: read
pull-requests: write

jobs:
build-and-cover:
name: Build & Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore -c Debug -v n
- name: Unit Tests
run: dotnet test -c Debug --no-build -v n --filter-trait Category=Unit
- name: Integration Tests
run: |
dotnet test --project tests/HydraScript.IntegrationTests \
-c Debug --no-build -v n \
--coverage --coverage-output-format cobertura --coverage-output coverage.cobertura.xml \
--coverage-settings tests/coverage-exclude.xml
mkdir coverage-report
- name: Code Coverage Summary Report For Merge Request
uses: Affanmir/diff-cover-action@v2
with:
coverage-files: ./TestResults/coverage.cobertura.xml
compare-branch: 'origin/master'
fail-under: 80
title: 'HydraScript PR Coverage'
create-badge: 'true'
- name: ReportGenerator
uses: danielpalme/ReportGenerator-GitHub-Action@5.5.11
with:
reports: './TestResults/coverage.cobertura.xml'
targetdir: './coverage-report'
- name: Upload coverage report artifact
uses: actions/upload-artifact@v7
with:
name: CoverageReport
path: coverage-report
33 changes: 33 additions & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Push Workflow

on:
push:
branches-ignore: [release, master]

permissions:
contents: read

jobs:
build-and-test:
name: Build & Test
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore -c Debug -v n
- name: Tests
run: dotnet test -c Debug --no-build -v n
- name: Upload Windows Build
uses: actions/upload-artifact@v7
with:
name: windows_build_${{ github.sha }}
path: ./src/HydraScript/bin/Debug/net10.0
29 changes: 14 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ name: Release Workflow

on:
push:
branches:
- 'release'
branches: [release]

permissions:
contents: write
Expand All @@ -24,19 +23,19 @@ jobs:
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v5
uses: actions/setup-dotnet@v6
- name: Determine Version
id: version_step
run: |
tag=$( git describe --tags --abbrev=0 )
echo "majorMinorPatch=$tag" >> $GITHUB_OUTPUT
echo "publishVersion=${tag:1}" >> $GITHUB_OUTPUT
- name: Setup GitReleaseManager
uses: gittools/actions/gitreleasemanager/setup@v4.5.0
uses: gittools/actions/gitreleasemanager/setup@v4
with:
versionSpec: '0.20.x'
- name: Create release with GitReleaseManager
uses: gittools/actions/gitreleasemanager/create@v4.5.0
uses: gittools/actions/gitreleasemanager/create@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: 'Stepami/hydrascript'
Expand All @@ -63,11 +62,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- name: Setup .NET
uses: actions/setup-dotnet@v5
uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.0.x
dotnet-version: 10.x
- name: Setup GitReleaseManager
uses: gittools/actions/gitreleasemanager/setup@v4.5.0
uses: gittools/actions/gitreleasemanager/setup@v4
with:
versionSpec: '0.20.x'
- name: Publish
Expand All @@ -80,7 +79,7 @@ jobs:
mv ./output/HydraScript${{ matrix.config.rid == 'win-x64' && '.exe' || '' }}
./output/hydrascript_${{ matrix.config.rid }}${{ matrix.config.rid == 'win-x64' && '.exe' || '' }}
- name: Add asset to a release with GitReleaseManager
uses: gittools/actions/gitreleasemanager/addasset@v4.5.0
uses: gittools/actions/gitreleasemanager/addasset@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: 'Stepami/hydrascript'
Expand Down Expand Up @@ -112,19 +111,19 @@ jobs:
publish_version: ${{ needs.upload-release-assets.outputs.publish_version }}
steps:
- name: Setup .NET
uses: actions/setup-dotnet@v5
uses: actions/setup-dotnet@v6
- name: Setup GitReleaseManager
uses: gittools/actions/gitreleasemanager/setup@v4.5.0
uses: gittools/actions/gitreleasemanager/setup@v4
with:
versionSpec: '0.20.x'
- name: Publish release with GitReleaseManager
uses: gittools/actions/gitreleasemanager/publish@v4.5.0
uses: gittools/actions/gitreleasemanager/publish@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: 'Stepami/hydrascript'
milestone: ${{ needs.upload-release-assets.outputs.determined_version }}
- name: Close release with GitReleaseManager
uses: gittools/actions/gitreleasemanager/close@v4.5.0
uses: gittools/actions/gitreleasemanager/close@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: 'Stepami/hydrascript'
Expand All @@ -138,9 +137,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- name: Setup .NET
uses: actions/setup-dotnet@v5
uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.0.x
dotnet-version: 10.x
- name: Pack
run: >-
dotnet pack ./src/HydraScript/HydraScript.csproj -c Release -o ./pack-output -v n
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
_UpgradeReport_Files
[Pp]ackages

tests/**/coverage.cobertura.xml
**/coverage.cobertura.xml

Thumbs.db
Desktop.ini
Expand Down
39 changes: 21 additions & 18 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,43 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<CentralPackageVersionOverrideEnabled>false</CentralPackageVersionOverrideEnabled>
<MicrosoftVersion>10.0.11</MicrosoftVersion>
<CodeAnalysisVersion>5.6.0</CodeAnalysisVersion>
<AutoFixtureVersion>5.0.0-rc.1</AutoFixtureVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="BenchmarkDotNet" Version="0.15.8"/>
<PackageVersion Include="EnvironmentAbstractions" Version="5.0.0"/>
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0">
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="$(CodeAnalysisVersion)">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.8"/>
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.8"/>
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8"/>
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8"/>
<PackageVersion Include="System.CommandLine" Version="2.0.8"/>
<PackageVersion Include="System.IO.Abstractions" Version="22.1.1"/>
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="$(CodeAnalysisVersion)"/>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftVersion)"/>
<PackageVersion Include="Microsoft.Extensions.Logging" Version="$(MicrosoftVersion)"/>
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftVersion)"/>
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftVersion)"/>
<PackageVersion Include="System.CommandLine" Version="2.0.11"/>
<PackageVersion Include="System.IO.Abstractions" Version="22.2.0"/>
<PackageVersion Include="Visitor.NET" Version="4.2.1"/>
<PackageVersion Include="Visitor.NET.AutoVisitableGen" Version="1.5.3"/>
<PackageVersion Include="ZLinq" Version="1.5.6"/>
<PackageVersion Include="ZLogger" Version="2.5.10"/>
<PackageVersion Include="ZString" Version="2.6.0"/>
</ItemGroup>
<ItemGroup>
<PackageVersion Include="AutoFixture" Version="4.18.1"/>
<PackageVersion Include="AutoFixture.AutoNSubstitute" Version="4.18.1"/>
<PackageVersion Include="AutoFixture.Xunit3" Version="4.19.0"/>
<PackageVersion Include="Fare" Version="2.2.1"/>
<PackageVersion Include="AwesomeAssertions" Version="9.4.0"/>
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="5.3.0"/>
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="10.5.0"/>
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.6.2"/>
<PackageVersion Include="NSubstitute" Version="5.3.0"/>
<PackageVersion Include="AutoFixture" Version="$(AutoFixtureVersion)"/>
<PackageVersion Include="AutoFixture.AutoNSubstitute" Version="$(AutoFixtureVersion)"/>
<PackageVersion Include="AutoFixture.Xunit3" Version="$(AutoFixtureVersion)"/>
<PackageVersion Include="Fare" Version="2.2.2"/>
<PackageVersion Include="AwesomeAssertions" Version="9.5.0"/>
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="$(CodeAnalysisVersion)"/>
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="10.9.0"/>
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.10.0"/>
<PackageVersion Include="NSubstitute" Version="6.2.0"/>
<PackageVersion Include="PolymorphicContracts.AutoFixture" Version="2.0.0"/>
<PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0"/>
<PackageVersion Include="Serilog.Sinks.XUnit3" Version="1.2.0"/>
<PackageVersion Include="Serilog.Sinks.XUnit3" Version="2.0.0"/>
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1"/>
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2"/>
</ItemGroup>
Expand Down
4 changes: 3 additions & 1 deletion ExtendedJavaScriptSubset.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@
<File Path=".github/ISSUE_TEMPLATE/feature_request.md" />
</Folder>
<Folder Name="/SolutionItems/GithubFolder/Workflows/">
<File Path=".github/workflows/develop.yml" />
<File Path=".github/workflows/release.yml" />
<File Path=".github/workflows/master.yml" />
<File Path=".github/workflows/push.yml" />
<File Path=".github/workflows/pr.yml" />
</Folder>
<Folder Name="/Src/">
<File Path="src/Directory.Build.props" />
Expand Down
14 changes: 7 additions & 7 deletions tests/HydraScript.UnitTests/Domain/IR/ObjectTypeTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,32 @@ public class ObjectTypeTests
public void ObjectTypeEqualityTest()
{
var number = new Type("number");
var p2d1 = new ObjectType(new Dictionary<string, Type>(
var point2Num1 = new ObjectType(new Dictionary<string, Type>(
[
new("x", number),
new("y", number)
]));
var p2d2 = new ObjectType(new Dictionary<string, Type>(
var point2Num2 = new ObjectType(new Dictionary<string, Type>(
[
new("x", number),
new("y", number)
]));
Assert.Equal(p2d1, p2d2);
Assert.Equal(point2Num1, point2Num2);

var p3d1 = new ObjectType(new Dictionary<string, Type>(
var point3Num1 = new ObjectType(new Dictionary<string, Type>(
[
new("a", number),
new("x", number),
new("y", number)
]));
var p3d2 = new ObjectType(new Dictionary<string, Type>(
var point3Num2 = new ObjectType(new Dictionary<string, Type>(
[
new("y", number),
new("x", number),
new("z", number)
]));
Assert.NotEqual(p3d1, p3d2);
Assert.NotEqual(p3d2, p2d1);
Assert.NotEqual(point3Num1, point3Num2);
Assert.NotEqual(point3Num2, point2Num1);
}

[Fact]
Expand Down