-
-
Notifications
You must be signed in to change notification settings - Fork 20
142 lines (140 loc) · 4.7 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
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@v4
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
archive_type: zip
archive_extension: .zip
asset_content_type: application/zip
- build: linux-x64
os: ubuntu-22.04
archive_type: tar
archive_extension: .tgz
asset_content_type: application/gzip
- build: osx-arm64
os: macos-latest
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'
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: "Archive Publish folder"
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
uses: alexellis/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
asset_paths: '["./ImperatorToCK3-${{ matrix.build }}${{ matrix.archive_extension }}"]'
- 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"]'