1
- name : .NET Build and Autobuild Release
1
+ name : .NET Autobuild and Release
2
2
3
3
on :
4
4
push :
5
5
branches : [ "main" ]
6
6
7
- env :
8
- Project_Path : CS2Cheat.csproj
9
- Output_Dir : publish
10
-
11
7
jobs :
12
- build :
8
+ build-and-release :
13
9
runs-on : windows-latest
14
10
11
+ env :
12
+ Project_Path : CS2Cheat.csproj
13
+ Output_Dir : publish
14
+
15
15
steps :
16
- - name : Checkout code
16
+ - name : Checkout repository
17
17
uses : actions/checkout@v4
18
18
19
- - name : Setup .NET
19
+ - name : Setup .NET SDK
20
20
uses : actions/setup-dotnet@v4
21
21
with :
22
22
dotnet-version : 8.0.x
@@ -32,71 +32,39 @@ jobs:
32
32
env :
33
33
DOTNET_SKIP_FIRST_TIME_EXPERIENCE : 1
34
34
35
- - name : Upload exe artifact
36
- uses : actions/upload-artifact@v4
37
- with :
38
- name : Built-Executable
39
- path : ${{ env.Output_Dir }}/*.exe
40
-
41
- release :
42
- runs-on : ubuntu-latest
43
- needs : build
44
- permissions :
45
- contents : write
46
- steps :
47
- - name : Checkout code
48
- uses : actions/checkout@v4
49
-
50
- - name : Download build artifact
51
- uses : actions/download-artifact@v4
52
- with :
53
- name : Built-Executable
54
- path : ./publish
55
-
56
35
- name : Get latest tag
57
36
id : get_latest_tag
58
37
run : |
59
- git fetch --tags
60
- latest_tag=$(git tag --list "v*" --sort=-v:refname | head -n 1)
61
- echo "Latest tag: $latest_tag"
62
- if [[ -z "$latest_tag" ]]; then
63
- latest_tag="v0.0.0"
64
- fi
65
- echo "::set-output name=tag::$latest_tag"
66
- shell : bash
38
+ tag=$(git tag --sort=-v:refname | head -n 1)
39
+ echo "Latest tag: $tag"
40
+ echo "tag=$tag" >> $GITHUB_OUTPUT
67
41
68
42
- name : Calculate new tag
69
- id : new_tag
43
+ id : calculate_tag
70
44
run : |
71
- latest=${{ steps.get_latest_tag.outputs.tag }}
72
-
73
- base_version=$(echo "$latest" | sed -E 's/^v([0-9]+)\.([0-9]+)\.([0-9]+).*/\1.\2.\3/')
45
+ latest="${{ steps.get_latest_tag.outputs.tag }}"
46
+ base_version=$(echo "$latest" | grep -oP '\d+\.\d+\.\d+' | head -1)
74
47
if [[ -z "$base_version" ]]; then
75
48
base_version="0.0.0"
76
49
fi
77
-
78
50
IFS='.' read -r major minor patch <<< "$base_version"
79
51
patch=$((patch + 1))
80
- new_tag="v${major}.${minor}.${patch}-autobuild"
81
-
52
+ new_tag="${major}.${minor}.${patch}-autobuild"
82
53
echo "New tag: $new_tag"
83
- echo "::set-output name=tag::$new_tag"
84
- shell : bash
54
+ echo "tag=$new_tag" >> $GITHUB_OUTPUT
85
55
86
- - name : Create and push new tag
56
+ - name : Create Git tag
87
57
run : |
88
58
git config user.name "github-actions"
89
59
git config user.email "[email protected] "
90
- git tag ${{ steps.new_tag.outputs.tag }}
91
- git push origin ${{ steps.new_tag.outputs.tag }}
92
- env :
93
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
60
+ git tag ${{ steps.calculate_tag.outputs.tag }}
61
+ git push origin ${{ steps.calculate_tag.outputs.tag }}
94
62
95
63
- name : Create GitHub Release
96
64
uses : softprops/action-gh-release@v2
97
65
with :
98
- tag_name : ${{ steps.new_tag .outputs.tag }}
99
- name : Release ${{ steps.new_tag .outputs.tag }}
100
- files : ./publish /*.exe
66
+ tag_name : ${{ steps.calculate_tag .outputs.tag }}
67
+ name : Release ${{ steps.calculate_tag .outputs.tag }}
68
+ files : ${{ env.Output_Dir }} /*.exe
101
69
env :
102
70
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments