Skip to content

Commit ab24e65

Browse files
dev: prepare publish EF to NuGet
1 parent f0c97b4 commit ab24e65

File tree

6 files changed

+102
-13
lines changed

6 files changed

+102
-13
lines changed

.github/scripts/publish-ef.sh

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/bin/bash
2+
set -euxo pipefail
3+
4+
CHANGELOG=$(cat $CHANGELOG_FILE | sed -e '/^## v.*$/,$d')
5+
if [[ -z "$CHANGELOG" ]]
6+
then
7+
echo "CHANGELOG empty"
8+
exit 1;
9+
fi;
10+
11+
LAST_EF_TAG=$(git tag --sort=-creatordate --list 'ef-*' | head -n 1 | cut -d '-' -f 2);
12+
LAST_EF_TAG=${LAST_EF_TAG:-v0.0.0}
13+
MAJOR=$(echo $LAST_EF_TAG | sed -E 's/v([0-9]+)\..*/\1/');
14+
MINOR=$(echo $LAST_EF_TAG | sed -E 's/v[0-9]+\.([0-9]+)\..*/\1/');
15+
PATCH=$(echo $LAST_EF_TAG | sed -E 's/v[0-9]+\.[0-9]+\.([0-9]+)($|-rc[0-9]+)/\1/');
16+
RC=0;
17+
18+
if [ "$RELEASE_CANDIDATE" = true ]
19+
then
20+
RC=$(git tag | grep "ef-v$MAJOR.$MINOR.$PATCH-rc" | wc -l | xargs || true);
21+
fi
22+
if [ "$VERSION_CHANGE" = "MINOR" ] && [ $RC = 0 ]
23+
then
24+
MINOR=$((MINOR+1));
25+
PATCH=0;
26+
fi;
27+
if [ "$VERSION_CHANGE" = "PATCH" ] && [ $RC = 0 ]
28+
then
29+
PATCH=$((PATCH+1));
30+
fi;
31+
if [ "$RELEASE_CANDIDATE" = true ]
32+
then
33+
VERSION="$MAJOR.$MINOR.$PATCH-rc$RC";
34+
else
35+
VERSION="$MAJOR.$MINOR.$PATCH";
36+
fi;
37+
38+
TAG="v$VERSION"
39+
echo -e "## $TAG\n" >> $CHANGELOG_FILE.tmp
40+
cat $CHANGELOG_FILE >> $CHANGELOG_FILE.tmp
41+
mv $CHANGELOG_FILE.tmp $CHANGELOG_FILE;
42+
git add $CHANGELOG_FILE;
43+
git config --global user.email "robot@umbrella";
44+
git config --global user.name "robot";
45+
git commit -m "Release EF $TAG";
46+
git tag "ef-$TAG"
47+
git push --tags && git push
48+
CHANGELOG="$CHANGELOG
49+
50+
Full Changelog: [$LAST_EF_TAG...$TAG](https://github.com/ydb-platform/ydb-dotnet-sdk/compare/$LAST_EF_TAG...$TAG)"
51+
52+
cd src/EFCore.Ydb/src
53+
dotnet pack -c Release -o out /p:Version=$VERSION
54+
gh release create $TAG -t "ef-$TAG" --notes "$CHANGELOG"
55+
dotnet nuget push out/EntityFrameworkCore.Ydb.$VERSION.nupkg --skip-duplicate --api-key $NUGET_TOKEN --source https://api.nuget.org/v3/index.json

.github/scripts/publish.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ if [ "$RELEASE_CANDIDATE" = true ]
3131
then
3232
VERSION="$MAJOR.$MINOR.$PATCH-rc$RC";
3333
else
34-
sed -e "s/Minor = [0-9]*/Minor = $MINOR/g" -i $VERSION_FILE
35-
sed -e "s/Patch = [0-9]*/Patch = $PATCH/g" -i $VERSION_FILE
36-
git add $VERSION_FILE;
3734
VERSION="$MAJOR.$MINOR.$PATCH";
3835
fi;
3936
TAG="v$VERSION"

.github/workflows/publish-ef.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: publish
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
version-change:
6+
description: Version part
7+
required: true
8+
type: choice
9+
options:
10+
- PATCH
11+
- MINOR
12+
release-candidate:
13+
description: Release candidate
14+
required: true
15+
type: boolean
16+
default: True
17+
18+
permissions:
19+
contents: write
20+
21+
jobs:
22+
publish:
23+
runs-on: ubuntu-latest
24+
env:
25+
VERSION_CHANGE: ${{ github.event.inputs.version-change }}
26+
RELEASE_CANDIDATE: ${{ github.event.inputs.release-candidate }}
27+
CHANGELOG_FILE: ./src/EFCore.Ydb/CHANGELOG.md
28+
GITHUB_TOKEN: ${{ secrets.YDB_PLATFORM_BOT_TOKEN_REPO }}
29+
NUGET_TOKEN: ${{ secrets.YDB_PLATFORM_NUGET_TOKEN }}
30+
steps:
31+
- name: Checkout
32+
uses: actions/checkout@v4
33+
with:
34+
token: ${{ secrets.YDB_PLATFORM_BOT_TOKEN_REPO }}
35+
fetch-depth: 0
36+
- name: Setup dotnet
37+
uses: actions/setup-dotnet@v4
38+
with:
39+
dotnet-version: 8.0.x
40+
- name: Build
41+
run: |
42+
cd src/EFCore.Ydb/src
43+
dotnet build --configuration Release
44+
- name: Publish
45+
run: bash .github/scripts/publish-ef.sh
46+

.github/workflows/publish.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ jobs:
2424
env:
2525
VERSION_CHANGE: ${{ github.event.inputs.version-change }}
2626
RELEASE_CANDIDATE: ${{ github.event.inputs.release-candidate }}
27-
VERSION_FILE: src/Ydb.Sdk/src/Version.cs
2827
CHANGELOG_FILE: CHANGELOG.md
2928
GITHUB_TOKEN: ${{ secrets.YDB_PLATFORM_BOT_TOKEN_REPO }}
3029
NUGET_TOKEN: ${{ secrets.YDB_PLATFORM_NUGET_TOKEN }}

examples/src/EF/EF.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>net8.0</TargetFramework>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
8-
<RootNamespace>EfCore</RootNamespace>
8+
<RootNamespace>EF</RootNamespace>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/Ydb.Sdk/src/Version.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)