-
Notifications
You must be signed in to change notification settings - Fork 10
96 lines (94 loc) · 3.11 KB
/
workflow.yml
File metadata and controls
96 lines (94 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: .NET Core
on: [push, pull_request]
jobs:
build:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.101
- name: Clean dependencies
run: dotnet clean && dotnet nuget locals all --clear
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
release:
env:
BRANCH: master
runs-on: windows-latest
defaults:
run:
shell: bash
if: contains(github.ref, 'refs/tags/r')
needs: build
steps:
- uses: actions/checkout@v2
with:
ref: ${{ env.BRANCH }}
- name: Get version
run: |
V=${GITHUB_REF//refs\/tags\/r/}
echo "VERSION=$V" >> $GITHUB_ENV
echo "VERSION_WITH_SUFFIX=v$V" >> $GITHUB_ENV
- run: echo ${{env.VERSION_WITH_SUFFIX}}
- name: Update changelog
uses: thomaseizinger/keep-a-changelog-new-release@master
with:
version: ${{ env.VERSION_WITH_SUFFIX }}
- name: Set projects version
uses: hawthorne-abendsen/dotnet-version-tool@master
with:
version: ${{ env.VERSION }}
- name: Get changelog entry
id: changelog_reader
uses: mindsers/changelog-reader-action@v1.1.0
with:
version: ${{ env.VERSION_WITH_SUFFIX }}
path: ./CHANGELOG.md
- name: Remove trigger tag
run: git push --delete origin "r$VERSION"
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.101
- name: Install dependencies
run: dotnet restore
- name: Build release
shell: powershell
run: |
dotnet build -c Release
dotnet publish Centaurus -r win-x64 -c Release /p:PublishSingleFile=true -o Release/win-x64 /p:DebugType=None
dotnet publish Centaurus -r linux-x64 -c Release /p:PublishSingleFile=true -o Release/linux-x64 /p:DebugType=None
dotnet publish Centaurus -r osx-x64 -c Release /p:PublishSingleFile=true -o Release/osx-x64 /p:DebugType=None
- name: Release
shell: powershell
run: |
cd Release
$folderlist = Get-ChildItem -Directory
$assets = ""
$desc = "${{ steps.changelog_reader.outputs.log_entry }}"
if ($desc) {
$desc = "-m ""$desc"""
}
Foreach ($Folder in $folderlist) {
$currentZipFileName = "$Folder.zip"
$assets = $assets + ("-a ""$currentZipFileName"" ")
Compress-Archive -Path "$Folder/*" "$currentZipFileName"
}
$command = "hub release create $assets -m ""Release ${{env.VERSION_WITH_SUFFIX}}"" $desc ""${{env.VERSION_WITH_SUFFIX}}"""
iex $command
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: oleksiyrudenko/gha-git-credentials@v2-latest
with:
token: '${{ secrets.GITHUB_TOKEN }}'
- name: Amend last commit
run: |
git commit --amend --no-edit -a
GIT_EDITOR=true git rebase -X theirs
git push origin ${{env.BRANCH}}