forked from SnaffCon/Snaffler
-
Notifications
You must be signed in to change notification settings - Fork 0
111 lines (90 loc) · 3.56 KB
/
dotnet.yml
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# This workflow will build and release a .NET project
name: Build & Release
# Run the workflow after changes in the "master" branch
on:
push:
branches: [ "master" ]
jobs:
build_and_release:
# Use "windows-2019" runner for .NET Framework 4.x projects and "windows-latest" for .NET Core projects
runs-on: windows-2019
# Define env variables containing project properties
# Use TIMT (The-Infinite-Monkey-Theorem) prefix for variable names
env:
TIMT_PROJECT_NAME: 'Snaffler'
TIMT_SOLUTION_FILE: 'Snaffler.sln'
TIMT_BINARY_PATH: '${{ github.workspace }}\Snaffler\bin\Release'
TIMT_BINARY_FILE: '${{ github.workspace }}\Snaffler\bin\Release\Snaffler.exe'
steps:
- name: SharpPack - Checkout Source Code
uses: actions/checkout@v3
with:
repository: hasksomatotoian/SharpPack
path: SharpPack
ref: refs/heads/master
- name: SharpPack - Restore
run: dotnet restore SharpPack/SharpPack.sln
- name: SharpPack - Build
run: dotnet build SharpPack/SharpPack.sln --no-restore -c Release
- name: SharpPack - Dir
run: |
dir .\
dir SharpPack\
dir SharpPack\SharpPack\
- name: Checkout Source Code
uses: actions/checkout@v3
with:
repository: hasksomatotoian/SharpPack
path: SharpPack
ref: refs/heads/master
- name: SharpPack - Dir
run: |
dir .\
dir SharpPack\
dir SharpPack\SharpPack\
- name: Obfuscate
run: D:\a\Snaffler\Snaffler\SharpPack\SharpPack\bin\Release\net7.0\SharpPack.exe $env:TIMT_SOLUTION_FILE -Rename -Anonymize
- name: Install NuGet
uses: NuGet/setup-nuget@v1.2.0
- name: Restore
run: nuget restore $env:TIMT_SOLUTION_FILE
- name: Install MSBuild
uses: microsoft/setup-msbuild@v1.1
- name: Build
run: msbuild $env:TIMT_SOLUTION_FILE -t:rebuild -property:Configuration=Release
# Get release version as a combination of the project assembly version and the GitHub build number
- name: Get Release Version
id: get_release_version
run: |
$assembly = [System.Reflection.Assembly]::LoadFile("$env:TIMT_BINARY_FILE")
$version = $assembly.GetName().Version.ToString() + '-' + '${{ github.run_number }}'
echo "::set-output name=version::$version"
shell: powershell
# Create ZIP file containing project binaries
- name: Create Zip
id: create_zip
run: |
Compress-Archive -Path "$env:TIMT_BINARY_PATH\*" -DestinationPath ".\$env:TIMT_PROJECT_NAME.zip"
echo "::set-output name=assetFilename::$env:TIMT_PROJECT_NAME.zip"
shell: powershell
# Create new project release
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.get_release_version.outputs.version }}
release_name: ${{ env.TIMT_PROJECT_NAME }} v${{ steps.get_release_version.outputs.version }}
draft: false
prerelease: false
# Attach ZIP file containing project binaries to the release
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ steps.create_zip.outputs.assetFilename }}
asset_name: ${{ env.TIMT_PROJECT_NAME }}-v${{ steps.get_release_version.outputs.version }}.zip
asset_content_type: application/zip