forked from acidcoke/Grimassist
-
Notifications
You must be signed in to change notification settings - Fork 4
162 lines (142 loc) · 4.85 KB
/
release.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
name: Release Latest
on: [workflow_dispatch]
jobs:
GetVersion:
runs-on: ubuntu-latest
outputs:
VersionNumber: ${{ steps.get_version_number.outputs.VersionNumber }}
VersionNumberSpaceless: ${{ steps.get_version_number.outputs.VersionNumberSpaceless }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11.4"
- name: Get version number
id: get_version_number
run: |
# Capture the output of the script
OUTPUT=$(python src/utils/readini.py assets/Version.ini Release VersionNumber)
# Extract the VersionNumber and VersionNumberSpaceless from the output
VERSION_NUMBER=$(echo "$OUTPUT" | grep 'VersionNumber=' | cut -d '=' -f 2)
VERSION_NUMBER_SPACED=$(echo "$OUTPUT" | grep 'VersionNumberSpaceless=' | cut -d '=' -f 2)
# Print extracted values for debugging
echo "Extracted VERSION_NUMBER: $VERSION_NUMBER"
echo "Extracted VERSION_NUMBER_SPACED: $VERSION_NUMBER_SPACED"
# Set the outputs for the job
echo "VersionNumber=$VERSION_NUMBER" >> $GITHUB_OUTPUT
echo "VersionNumberSpaceless=$VERSION_NUMBER_SPACED" >> $GITHUB_OUTPUT
BuildExecutable:
runs-on: windows-latest
needs: [GetVersion]
env:
VersionTag: v${{needs.GetVersion.outputs.VersionNumber}}
VersionTagSpaceless: v${{needs.GetVersion.outputs.VersionNumberSpaceless}}
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11.4"
- name: Install poetry
uses: abatilo/actions-poetry@v2
- name: Install dependencies
run: poetry install
- name: Build Apps
run: |
poetry run python -c "import site; print(site.getsitepackages()[0])"
.\build_executable.bat --signed
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: InitialBuild
path: dist
retention-days: 1
SignExecutable:
runs-on: self-hosted
needs: [BuildExecutable]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: InitialBuild
path: dist
- name: Sign Executable
run: signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a ./dist/FaceCommander.exe
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: SignedBuild
path: dist
retention-days: 1
BuildInstaller:
runs-on: windows-latest
needs: [SignExecutable]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: SignedBuild
path: dist
- name: Build Installer
run: iscc installer.iss
- name: Upload installer
uses: actions/upload-artifact@v4
with:
name: UnsignedInstaller
path: Output
retention-days: 1
SignInstaller:
runs-on: self-hosted
needs: [BuildInstaller, GetVersion]
env:
VersionTag: v${{needs.GetVersion.outputs.VersionNumber}}
VersionTagSpaceless: v${{needs.GetVersion.outputs.VersionNumberSpaceless}}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: UnsignedInstaller
path: Output
- name: Sign Installer
run: signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a ./Output/FaceCommander-Installer-${{env.VersionTag}}.exe
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: SignedInstaller
path: Output
retention-days: 1
Release:
runs-on: self-hosted
needs: [SignInstaller, GetVersion]
permissions:
contents: write
env:
VersionTag: v${{needs.GetVersion.outputs.VersionNumber}}
VersionTagSpaceless: v${{needs.GetVersion.outputs.VersionNumberSpaceless}}
steps:
- name: Create tag
uses: actions/github-script@v7
with:
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: "refs/tags/${{ env.VersionTagSpaceless }}",
sha: context.sha
})
- uses: actions/download-artifact@v4
with:
name: SignedInstaller
path: Output
- name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.VersionTagSpaceless }}
name: ${{ env.VersionTag }}
draft: false
prerelease: false
fail_on_unmatched_files: true
files: |
Output/FaceCommander-Installer-${{ env.VersionTag }}.exe