Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
edfc564
Reduce memory and cpu consumption of types registration in tests
alex-kulakov Jun 11, 2025
72ff130
Fixes and improvements of caching registration
alex-kulakov Jun 13, 2025
d6de718
Search improvements
alex-kulakov Jun 16, 2025
2159545
Some code improvements
alex-kulakov Jun 16, 2025
3729233
Fixed infinity loop condition
alex-kulakov Jun 17, 2025
e4f0788
Comments changed and formatting
alex-kulakov Jun 17, 2025
cf6765a
Merge pull request #438 from DataObjects-NET/7.0-exp-types-registrati…
alex-kulakov Jun 17, 2025
ee52e53
CultureInfo Search: Exact same behavior on linux and windows
alex-kulakov Jul 7, 2025
d32a745
Nunit custom attributes
alex-kulakov Jul 8, 2025
08f2d67
Fix issue with Nullable DateTimeOffset within queries
alex-kulakov Jul 8, 2025
9a1e9d3
DateTimeOffset comparison tests improved
alex-kulakov Jul 8, 2025
90d6561
TestInfo class improvements
alex-kulakov Jul 8, 2025
471eec8
Add custom reason of ignore to attribute
alex-kulakov Jul 8, 2025
94429b5
SelectMany with result selector over GroupBy result is not supported
alex-kulakov Jul 8, 2025
d7c13cd
Fixed IssueJira0546 one more time
alex-kulakov Jul 9, 2025
23c2f22
More tests prevented from failing on Sqlite
alex-kulakov Jul 9, 2025
8d88837
Tests ignored on github actions
alex-kulakov Jul 9, 2025
fb05c33
IgnoreIfGithubActions attribute has provider filter
alex-kulakov Jul 10, 2025
c598a2f
Ignore tests for Sqlite
alex-kulakov Jul 10, 2025
6bf4ea0
Ignore test for mysql
alex-kulakov Jul 10, 2025
cb7b28f
Move Culture content to separate static type
alex-kulakov Jul 11, 2025
157d1c9
Fix issue when underlying index of ForeignKey tries to be removed wit…
alex-kulakov Jul 11, 2025
303ac4d
Handle MySQL particularity in tests
alex-kulakov Jul 14, 2025
bde6121
Test framework: FixDateTimeForProvider() -> AdjustDateTimeForProvider()
alex-kulakov Jul 14, 2025
c558c1c
Validator: move method from incorrect place
alex-kulakov Jul 14, 2025
3e89375
Change default value of float fields to not cause out of range
alex-kulakov Jul 14, 2025
851c1dc
DistinctTest: Use different field to order
alex-kulakov Jul 14, 2025
0d5241f
Handle MySQL default value particularity in test
alex-kulakov Jul 14, 2025
ab5ace5
VersionBehaviorTest: DateTime version is not for MySQL
alex-kulakov Jul 14, 2025
cd6b434
AlphabetModel: Limits string fields to be compatible with MySQL
alex-kulakov Jul 14, 2025
4eac375
Improvements of test framework
alex-kulakov Sep 8, 2025
6016920
Bulk operations: Fixed update operation for Firebird
alex-kulakov Sep 8, 2025
1166bee
Improved some tests of Extesions' projects
alex-kulakov Sep 8, 2025
7a1b1a2
Firebird driver: Introduced virtual property for future override of i…
alex-kulakov Sep 8, 2025
b59c5c3
MySql provider: DateTime related improvements
alex-kulakov Sep 8, 2025
3627908
Sql tests for various providers improved
alex-kulakov Sep 8, 2025
fd9ea07
Main project tests improvements
alex-kulakov Sep 8, 2025
9c93574
Fix problem with reprocessing test
alex-kulakov Sep 8, 2025
3b40faa
Mysql: millisecond extraction improvement
alex-kulakov Sep 9, 2025
b1fd562
Ignore test for Firebird 2.5
alex-kulakov Sep 9, 2025
262dcf3
Replace const string with resouse
alex-kulakov Sep 10, 2025
26660e4
Improve changelog
alex-kulakov Sep 10, 2025
0d3114a
Merge branch '6.0-gt-actions-preparation' into 6.0
alex-kulakov Sep 10, 2025
83cb772
Improve changelog
alex-kulakov Sep 10, 2025
9eb787a
TypeHelper: Small improvements
alex-kulakov Sep 10, 2025
771aa90
Merge branch '6.0' into 7.0
alex-kulakov Sep 10, 2025
93ba349
Change to "no global domain" approach
alex-kulakov Sep 10, 2025
1c1923f
After-merge changes
alex-kulakov Sep 10, 2025
e28c062
Add ignore to async version of test
alex-kulakov Sep 11, 2025
bff9573
Add Mysql57 version to test framework
alex-kulakov Sep 11, 2025
761addf
Ignore or fix some async tests
alex-kulakov Sep 12, 2025
7b6189d
Ignore 1 more test when run on github
alex-kulakov Sep 12, 2025
3ef844d
Backport Mysql 5.7 provider
alex-kulakov Sep 12, 2025
c6a3c95
fix issues of backporting
alex-kulakov Sep 12, 2025
dafeb2d
Fix SqlQueryExpression compilation
alex-kulakov Sep 12, 2025
b1447b6
Merge branch '7.0-gt-action-prepare' into 7.0
alex-kulakov Sep 13, 2025
fed2c4e
Merge branch '7.0' into 7.1
alex-kulakov Sep 13, 2025
582ea2b
Firebird providers: add Firebird v3 provider
alex-kulakov Sep 14, 2025
b9bc5bb
MySql provider changes
alex-kulakov Sep 14, 2025
0ba7531
Tests framework: add new versions + some connection strings fixed
alex-kulakov Sep 14, 2025
34a7a76
Tests.Sql: changes in tests
alex-kulakov Sep 14, 2025
92f341c
Main project tests' updates
alex-kulakov Sep 14, 2025
4283c7a
Make test class fields read-only
alex-kulakov Sep 15, 2025
b245646
Remove useless provider setting for connection url based domain settings
alex-kulakov Sep 15, 2025
1dfa364
Backport Firebird 3.0 support
alex-kulakov Sep 15, 2025
0e009de
Temporary use Firebird 3.0 driver for Firebird 2.5
alex-kulakov Sep 15, 2025
8a1e7fd
Fix compilation error
alex-kulakov Sep 15, 2025
5de129d
Remove commented code
alex-kulakov Sep 15, 2025
b3195ed
Merge branch '7.1-gt-actions-prepare' into 7.1
alex-kulakov Sep 15, 2025
fef4e1a
Revert "Temporary use Firebird 3.0 driver for Firebird 2.5"
alex-kulakov Sep 15, 2025
6049169
Merge branch '6.0-gt-actions-preparation' into 6.0
alex-kulakov Sep 15, 2025
6b64a27
Registration of types with caching
alex-kulakov Sep 15, 2025
bf5991a
Merge branch '6.0' into 7.0
alex-kulakov Sep 15, 2025
b396403
Merge branch '7.0' into 7.1
alex-kulakov Sep 15, 2025
4aa347f
Add dockerfiles for some of supported RDBMSs
alex-kulakov Sep 16, 2025
c42ab80
Updated some of connection strings and connection urls
alex-kulakov Sep 16, 2025
745b0bb
Merge branch '6.0-gt-actions-preparation' into 6.0
alex-kulakov Sep 16, 2025
889eef3
Removed double declaration of the same storage
alex-kulakov Sep 16, 2025
b59418f
Merge branch '6.0-gt-actions-preparation' into 6.0
alex-kulakov Sep 16, 2025
a928d0f
Merge branch '6.0' into 7.0
alex-kulakov Sep 16, 2025
1c88c2d
Add some dockerfiles
alex-kulakov Sep 16, 2025
7941afe
Update dockerfile and fix some mistakes in readme file
alex-kulakov Sep 16, 2025
946357f
Merge branch '7.0-gt-actions-prepare' into 7.0
alex-kulakov Sep 16, 2025
7690404
Merge branch '6.0' into 7.0
alex-kulakov Sep 16, 2025
3c07b06
Merge branch '7.0' into 7.1
alex-kulakov Sep 16, 2025
0c67552
Merge branch '7.1' into 7.1-gt-actions-prepare
alex-kulakov Sep 16, 2025
adcef58
Remove copy on dockerfile in root containers folder, it exists in sub…
alex-kulakov Sep 16, 2025
59976df
Add new dockerfiles
alex-kulakov Sep 16, 2025
920c61e
Update instance init script
alex-kulakov Sep 16, 2025
9b1267a
Merge branch '6.0' into 7.0
alex-kulakov Sep 16, 2025
6b452a0
Add new test configurations for MySQL
alex-kulakov Sep 16, 2025
35077c5
Merge branch '7.1-gt-actions-prepare' into 7.1
alex-kulakov Sep 16, 2025
105c336
Merge branch '7.0' into 7.1
alex-kulakov Sep 16, 2025
fc11b5a
Add dispatched build and test workflows
alex-kulakov Sep 16, 2025
22216e3
Merge branch '6.0' into 7.0
alex-kulakov Sep 16, 2025
355eb02
Update workflows for 7.0 branch
alex-kulakov Sep 16, 2025
bbc622a
No condition to ssl downgrading
alex-kulakov Sep 16, 2025
62a52e6
Merge branch '6.0' into 7.0
alex-kulakov Sep 16, 2025
96df335
Merge branch '7.0' into 7.1
alex-kulakov Sep 16, 2025
9e58eff
Update workflows to be compatible with 7.1
alex-kulakov Sep 16, 2025
551b647
Merge branch '7.1'
alex-kulakov Sep 17, 2025
141694f
Fix merge problems
alex-kulakov Sep 17, 2025
42c147b
Update workflows to be compatible with branch codeset
alex-kulakov Sep 17, 2025
3a6fdee
Revert change during merge that brought back obsolete member usate
alex-kulakov Sep 17, 2025
301c328
Correct link to reusable workflow
alex-kulakov Sep 17, 2025
fad4cb8
Merge remote-tracking branch 'upstream/master' into mergeUpstream
SergeiPavlov Sep 22, 2025
719cb79
Upgrade BitFaster.Caching
SergeiPavlov Sep 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
70 changes: 70 additions & 0 deletions .github/actions/run-database-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Run set of storage-dependant tests
description: Groups runs of several test projects that require a database

inputs:
build_config:
description: 'Build configuration'
required: true
default: 'Release'
type: string
test_output_verbosity:
description: 'Verbosity for dotnet test command'
required: true
default: 'minimal'
type: string
test_results_folder:
description: 'Folder where trx-files will be located for later parsing'
required: true
type: string
run_main:
description: 'Run Xtensive.Orm.Tests tests'
required: true
default: true
type: boolean
run_sql:
description: 'Run Xtensive.Orm.Tests.Sql tests'
required: true
default: true
type: boolean
run_extensions:
description: 'Run extension projects tests'
required: true
default: true
type: boolean

runs:
using: "composite"
steps:
- name: Test Orm.Tests set of tests
if: ${{ !cancelled() && fromJSON(inputs.run_main) }}
shell: bash
run: dotnet test Orm/Xtensive.Orm.Tests/Xtensive.Orm.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

- name: Test Orm.Tests.Sql set of tests
if: ${{ !cancelled() && fromJSON(inputs.run_sql) }}
shell: bash
run: dotnet test Orm/Xtensive.Orm.Tests.Sql/Xtensive.Orm.Tests.Sql.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tests.Sql.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

- name: Test BulkOperations extension set of tests
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
shell: bash
run: dotnet test Extensions/Xtensive.Orm.BulkOperations.Tests/Xtensive.Orm.BulkOperations.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.BulkOperations.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

- name: Test Localization extension set of tests
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
shell: bash
run: dotnet test Extensions/Xtensive.Orm.Localization.Tests/Xtensive.Orm.Localization.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Localization.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

# NOTE! NO REPROCESSING TESTS. Reprocessing tests use multi-thread processing which may cause infinite execution.
# Steps in composite action are not allowed to set timeout, it can be set only in calling job for entire composite
# step. To not disturb normal tests execution Reprocessing tests moved outside the action.

- name: Test Security extension set of tests
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
shell: bash
run: dotnet test Extensions/Xtensive.Orm.Security.Tests/Xtensive.Orm.Security.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Security.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

- name: Test Tracking extension set of tests
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
shell: bash
run: dotnet test Extensions/Xtensive.Orm.Tracking.Tests/Xtensive.Orm.Tracking.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tracking.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
52 changes: 52 additions & 0 deletions .github/actions/run-databaseless-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Run set of storage-independant tests
description: Groups runs of several test projects that don't require a database

inputs:
build_config:
description: 'Build configuration'
required: true
default: 'Release'
type: string
test_output_verbosity:
description: 'Verbosity for dotnet test command'
required: true
default: 'minimal'
type: string
test_results_folder:
description: 'Folder where trx-files will be located for later parsing'
required: true
type: string
run_core:
description: 'Run Xtensive.Orm.Tests.Core tests'
required: true
default: true
type: boolean
run_log4net:
description: 'Run Xtensive.Orm.Logging.log4net tests'
required: true
default: true
type: boolean
run_nlog:
description: 'Run Xtensive.Orm.Logging.NLog tests'
required: true
default: true
type: boolean

runs:
using: "composite"
steps:
# core tests does not require any storage and take not so much time
- name: Run Core tests
if: ${{ !cancelled() && fromJSON(inputs.run_core) }}
shell: bash
run: dotnet test Orm/Xtensive.Orm.Tests.Core/Xtensive.Orm.Tests.Core.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tests.Core.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

- name: Run log4net tests
if: ${{ !cancelled() && fromJSON(inputs.run_log4net) }}
shell: bash
run: dotnet test Extensions/Xtensive.Orm.Logging.log4net.Tests/Xtensive.Orm.Logging.log4net.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Logging.log4net.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}

- name: Run NLog tests
if: ${{ !cancelled() && fromJSON(inputs.run_nlog) }}
shell: bash
run: dotnet test Extensions/Xtensive.Orm.Logging.NLog.Tests/Xtensive.Orm.Logging.NLog.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Logging.NLog.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
54 changes: 54 additions & 0 deletions .github/actions/setup-dotnets/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Setup .NET versions
description: Sets up one or multiple .NET versions according to target frameworks

inputs:
target_framework:
description: "Target frameworks which are used in projects (net6.0, netcoreapp2.2, netcoreapp3.1, etc.)"
required: true
type: string

runs:
using: "composite"

steps:
- name: Setup .NET 9 (if needed)
if: ${{ contains(inputs.target_framework, '9.0') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'

- name: Setup .NET 8 (if needed)
if: ${{ contains(inputs.target_framework, '8.0') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'

- name: Setup .NET 7 (if needed)
if: ${{ contains(inputs.target_framework, '7.0') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '7.0.x'

- name: Setup .NET 6 (if needed)
if: ${{ contains(inputs.target_framework, '6.0') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'

- name: Setup .NET 5 (if needed)
if: ${{ contains(inputs.target_framework, '5.0') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '5.0.x'

- name: Setup .NET Core 3.1 (if needed)
if: ${{ contains(inputs.target_framework, '3.1') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '3.1.x'

- name: Setup .NET Core 2.0 (if needed)
if: ${{ contains(inputs.target_framework, '2.0') }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '2.0.x'
150 changes: 150 additions & 0 deletions .github/workflows/build_on_tag_push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
name: 📦🏷 Build on tag push
run-name: Build DO on tag '${{ github.ref_name }}'
on:
push:
tags:
- '7.2.*'

# new commits with the same key will cancel previously run workflows
#concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: true

permissions:
contents: write

jobs:
build:
name: Build
runs-on: ubuntu-latest
env:
IS_PRERELEASE: ${{ contains(github.ref_name, '-') || contains(github.ref_name, '_') }}
TAG_PATTERN: ''
FILE_SEARCH_PATTERN: ''
CHANGELOG_PATH: ''
steps:
# Examples of how it should work
# 6.0.10 -> 6.0.10*Final.txt
# 6.0.0-Beta-1 -> 6.0.0*Beta*1.txt
# 6.0.0_Beta_1 -> 6.0.0*Beta*1.txt
# 6.0.0_Beta-1 -> 6.0.0*Beta*1.txt
- name: Prepare tag pattern
run: |
ORIG="${{ github.ref_name }}"
REP1="${ORIG//-/*}"
REP2="${REP1//_/*}"
echo "TAG_PATTERN=$REP2" >> ${GITHUB_ENV}

- name: Prepare file search pattern (if pre-release)
if: ${{ env.IS_PRERELEASE == 'true' }}
run: |
echo 'FILE_SEARCH_PATTERN="$TAG_PATTERN.txt"' >> ${GITHUB_ENV}

- name: Prepare file search pattern (if final)
if: ${{ env.IS_PRERELEASE == 'false' }}
run: |
echo 'FILE_SEARCH_PATTERN="${{ github.ref_name }}*Final.txt"' >> ${GITHUB_ENV}

- name: Checkout repo
if: ${{ success() }}
timeout-minutes: 1
uses: actions/checkout@v4

# ensure release file exists, if not then something went wrong and it sources are not release ready and we abort
- name: Prepare changelog path
if: ${{ success() }}
run: |
echo 'CHANGELOG_PATH=$(find ChangeLog/ -name "${{ env.FILE_SEARCH_PATTERN }}")' >> ${GITHUB_ENV}

- name: Ensure changelog exists
if: ${{ success() }}
run: |
if [ -z "$CHANGELOG_PATH" ]; then
exit 1
fi

- name: Build Orm
if: ${{ success() }}
run: dotnet build Orm.sln --configuration Release

#check that nuget packages are built, last chance to abort
- name: Check package exist
if: ${{ success() }}
run: |
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Firebird.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.MySql.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Oracle.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.PostgreSql.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Sqlite.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.SqlServer.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.BulkOperations.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Localization.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Logging.log4net.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Logging.NLog.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Reprocessing.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Security.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Tracking.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi
if [ -z $(find _Build/bin/Release/packages -name "Xtensive.Orm.Web.${{ env.TAG_PATTERN }}.nupkg") ]; then exit 1; fi

- name: Install dotnet-validate
if: ${{ success() }}
timeout-minutes: 2
run: dotnet tool install --global dotnet-validate --version 0.0.1-preview.537

- name: Validate NuGet packages
if: ${{ success() }}
timeout-minutes: 1
run: |
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Firebird.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.MySql.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Oracle.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.PostgreSql.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Sqlite.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.SqlServer.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.BulkOperations.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Localization.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Logging.log4net.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Logging.NLog.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Reprocessing.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Security.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Tracking.${{ env.TAG_PATTERN }}.nupkg
dotnet-validate package local _Build/bin/Release/packages/Xtensive.Orm.Web.${{ env.TAG_PATTERN }}.nupkg

- name: Organize files
if: ${{ success() }}
run: |
mkdir -p _Build/bin/Release/Binaries
mkdir -p _Build/bin/Release/Dist
cp -r _Build/bin/Release/lib _Build/bin/Release/Binaries/
cp -r _Build/bin/Release/tools _Build/bin/Release/Binaries/
cp -r _Build/bin/Release/packages _Build/bin/Release/Dist/

- name: Publish artifacts
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: DO_${{ github.ref_name}}
path: |
_Build/bin/Release/Binaries/**
_Build/bin/Release/Dist/**
if-no-files-found: error
retention-days: 1

- name: Create release notes
if: ${{ success() }}
run: |
mkdir -p _Build/tmp
sed 's/^/- /' ${{ env.CHANGELOG_PATH }} > _Build/tmp/releasenotes.txt

- name: Create release draft
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
release_name: v${{ github.ref_name }}
body_path: _Build/tmp/releasenotes.txt
draft: true
prerelease: ${{ env.IS_PRERELEASE == 'true' }}
Loading
Loading