diff --git a/.github/workflows/develop.yml b/.github/workflows/master.yml
similarity index 54%
rename from .github/workflows/develop.yml
rename to .github/workflows/master.yml
index b9a6f31b..9d4dad45 100644
--- a/.github/workflows/develop.yml
+++ b/.github/workflows/master.yml
@@ -1,23 +1,15 @@
-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
@@ -25,18 +17,17 @@ jobs:
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
@@ -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 }}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 00000000..cb58a6ad
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -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
diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
new file mode 100644
index 00000000..dd7857df
--- /dev/null
+++ b/.github/workflows/push.yml
@@ -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
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4be9b1ab..7d409ab9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -2,8 +2,7 @@ name: Release Workflow
on:
push:
- branches:
- - 'release'
+ branches: [release]
permissions:
contents: write
@@ -24,7 +23,7 @@ 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: |
@@ -32,11 +31,11 @@ jobs:
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'
@@ -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
@@ -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'
@@ -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'
@@ -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
diff --git a/.gitignore b/.gitignore
index 629f5fff..dca452d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,7 +11,7 @@
_UpgradeReport_Files
[Pp]ackages
-tests/**/coverage.cobertura.xml
+**/coverage.cobertura.xml
Thumbs.db
Desktop.ini
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 8d372a20..b195c398 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -3,21 +3,24 @@
true
true
false
+ 10.0.11
+ 5.6.0
+ 5.0.0-rc.1
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -25,18 +28,18 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
diff --git a/ExtendedJavaScriptSubset.slnx b/ExtendedJavaScriptSubset.slnx
index 94a939ee..33d2e5ff 100644
--- a/ExtendedJavaScriptSubset.slnx
+++ b/ExtendedJavaScriptSubset.slnx
@@ -24,8 +24,10 @@
-
+
+
+
diff --git a/tests/HydraScript.UnitTests/Domain/IR/ObjectTypeTests.cs b/tests/HydraScript.UnitTests/Domain/IR/ObjectTypeTests.cs
index 7af297e5..95febba1 100644
--- a/tests/HydraScript.UnitTests/Domain/IR/ObjectTypeTests.cs
+++ b/tests/HydraScript.UnitTests/Domain/IR/ObjectTypeTests.cs
@@ -8,32 +8,32 @@ public class ObjectTypeTests
public void ObjectTypeEqualityTest()
{
var number = new Type("number");
- var p2d1 = new ObjectType(new Dictionary(
+ var point2Num1 = new ObjectType(new Dictionary(
[
new("x", number),
new("y", number)
]));
- var p2d2 = new ObjectType(new Dictionary(
+ var point2Num2 = new ObjectType(new Dictionary(
[
new("x", number),
new("y", number)
]));
- Assert.Equal(p2d1, p2d2);
+ Assert.Equal(point2Num1, point2Num2);
- var p3d1 = new ObjectType(new Dictionary(
+ var point3Num1 = new ObjectType(new Dictionary(
[
new("a", number),
new("x", number),
new("y", number)
]));
- var p3d2 = new ObjectType(new Dictionary(
+ var point3Num2 = new ObjectType(new Dictionary(
[
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]