-
-
Notifications
You must be signed in to change notification settings - Fork 20
142 lines (141 loc) · 4.87 KB
/
create_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
name: Create release
on:
push:
tags:
- '*'
jobs:
create_release:
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.previoustag.outputs.tag }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: "Get previous tag"
id: previoustag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
- name: "Build changelog"
id: build_changelog
uses: mikepenz/release-changelog-builder-action@v5
with:
configuration: ".github/config/changelog-config.json"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Create release"
id: create_release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.previoustag.outputs.tag }}
body: ${{ steps.build_changelog.outputs.changelog }}
token: ${{ secrets.API_TOKEN_GITHUB }}
add_release_archive:
needs: create_release
runs-on: ${{ matrix.os }}
environment: "Build Environment"
strategy:
fail-fast: false
matrix:
build:
- win-x64
- linux-x64
- osx-arm64
include:
- build: win-x64
os: windows-latest
- build: linux-x64
os: ubuntu-22.04
archive_type: tar
archive_extension: .tgz
asset_content_type: application/gzip
- build: osx-arm64
os: macos-14
archive_type: tar
archive_extension: .tgz
asset_content_type: application/gzip
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: "Add version to version.txt"
shell: bash
run: |
cd ImperatorToCK3/Data_Files/configurables
printf "\nversion = ${{ needs.create_release.outputs.tag }}" >> version.txt
- name: "Setup Dotnet for use with actions"
uses: actions/setup-dotnet@v4
with:
global-json-file: Fronter.NET/global.json
- name: "Replace frontend background image"
run: |
rm Fronter.NET/Fronter.NET/Assets/Images/background.png
cp ImperatorToCK3/Resources/images/SteamMainImage.png Fronter.NET/Fronter.NET/Assets/Images/background.png
- name: "Build frontend"
uses: ./Fronter.NET/.github/actions/build_frontend
with:
fronter_dir: 'Fronter.NET'
release_dir: 'Publish'
self_contained: ${{ matrix.build != 'win-x64' }} # InnoSetup takes care of installing the .NET runtime on Windows.
build_updater: ${{ matrix.build != 'win-x64' }} # Windows release uses InnoSetup instead.
env:
BACKBLAZE_KEY_ID: ${{ secrets.BACKBLAZE_KEY_ID }}
BACKBLAZE_APPLICATION_KEY: ${{ secrets.BACKBLAZE_APPLICATION_KEY }}
BACKBLAZE_BUCKET_ID: ${{ secrets.BACKBLAZE_BUCKET_ID }}
- name: "Setup Dotnet for use with actions"
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- name: "Build backend"
working-directory: ImperatorToCK3
shell: bash
run: |
dotnet publish -p:PublishProfile=${{ matrix.build }} -c:Release --output:"../Publish/ImperatorToCK3"
if [ "$RUNNER_OS" = "macOS" ]
then
echo "Signing binary..."
codesign --force -s - "../Publish/ImperatorToCK3/ImperatorToCK3Converter"
echo "Verifying signature..."
codesign -dv --verbose=4 "../Publish/ImperatorToCK3/ImperatorToCK3Converter"
fi
- name: "Save commit ID"
shell: bash
run: |
git rev-parse HEAD > Publish/commit_id.txt
- name: "Install sed for Windows"
if: matrix.build == 'win-x64'
run: |
choco install sed
- name: "Build installer for Windows"
if: matrix.build == 'win-x64'
run: |
dotnet tool install --global InnoSetup
cp Fronter.NET/Fronter.NET/Assets/converter.ico Publish/Assets/
iscc --version
sed -i '5i\\#define MyAppVersion "${{ needs.create_release.outputs.tag }}"' ImperatorToCK3.iss
cat ImperatorToCK3.iss
iscc ImperatorToCK3.iss
- name: "Upload installer for Windows"
id: upload-installer
if: matrix.build == 'win-x64'
uses: alexellis/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
asset_paths: '["./Output/ImperatorToCK3-${{ matrix.build }}-setup.exe"]'
- name: "Archive Publish folder"
if: matrix.build != 'win-x64'
uses: thedoctor0/zip-release@master
with:
type: '${{ matrix.archive_type }}'
directory: 'Publish'
path: '.'
filename: '../ImperatorToCK3-${{ matrix.build }}${{ matrix.archive_extension }}'
- name: "Upload release zip"
id: upload-release-zip
if: matrix.build != 'win-x64'
uses: alexellis/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
asset_paths: '["./ImperatorToCK3-${{ matrix.build }}${{ matrix.archive_extension }}"]'