-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (135 loc) · 5.63 KB
/
build.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
name: build
on: push
jobs:
build:
strategy:
matrix:
qt_version: [5.15.2, 6.3.1]
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Cache Qt
id: cache-qt
uses: actions/cache@v1
with:
path: ../Qt
key: ${{ runner.os }}-QtCache-${{ matrix.qt_version }}
- uses: jurplel/install-qt-action@v2
with:
version: ${{ matrix.qt_version }}
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- uses: actions/checkout@v2
- name: Get the version
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1'
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
shell: bash
- name: Build
run: |
cmake -S . -B build
cmake --build build --config Release
- name: Deploy macOS
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'macos-latest'
run: |
macdeployqt build/effort-log.app -always-overwrite -verbose=3 -appstore-compliant -dmg
otool -L build/effort-log.app/Contents/MacOS/effort-log
mv build/effort-log.dmg effort-log_${{ steps.get_version.outputs.VERSION }}_osx.dmg
- name: Deploy Windows
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'windows-latest'
shell: cmd
run: |
mkdir bin
windeployqt --verbose 2 --no-translations --dir .\bin .\build\Release\effort-log.exe
move .\build\Release\effort-log.exe .\bin
cd .\bin
7z a effort-log_${{ steps.get_version.outputs.VERSION }}_win64.zip .\*
cd ..
mv .\bin\effort-log_${{ steps.get_version.outputs.VERSION }}_win64.zip .\
- name: Release macOS
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'macos-latest'
with:
files: effort-log_*.dmg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release Windows
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'windows-latest'
with:
files: effort-log_*.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-encrypted:
strategy:
matrix:
qt_version: [5.15.2, 6.3.1]
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Cache Qt
id: cache-qt
uses: actions/cache@v1
with:
path: ../Qt
key: ${{ runner.os }}-QtCache-${{ matrix.qt_version }}
- uses: jurplel/install-qt-action@v2
with:
version: ${{ matrix.qt_version }}
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- uses: actions/checkout@v2
- name: Get the version
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1'
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
shell: bash
- name: Build encrypted Linux
if: matrix.os == 'ubuntu-latest'
run: |
cmake -DCRYPT=ON -S . -B build
cmake --build build --config Release
- name: Build encrypted MacOS
if: matrix.os == 'macos-latest'
run: |
cmake -DCRYPT=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -S . -B build
cmake --build build --config Release
- name: Build encrypted Windows
if: matrix.os == 'windows-latest'
run: |
choco install openssl -y
cmake -DCRYPT=ON -DOPENSSL_ROOT_DIR="C:\Program Files\OpenSSL-Win64" -S . -B build
cmake --build build --config Release
- name: Deploy encrypted macOS
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'macos-latest'
run: |
macdeployqt build/effort-log.app -always-overwrite -verbose=3 -appstore-compliant -dmg
otool -L build/effort-log.app/Contents/MacOS/effort-log
mv build/effort-log.dmg effort-log_${{ steps.get_version.outputs.VERSION }}_osx_encrypted.dmg
- name: Deploy encrypted Windows
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'windows-latest'
shell: cmd
run: |
mkdir bin
windeployqt --verbose 2 --no-translations --dir .\bin .\build\Release\effort-log.exe
move .\build\Release\effort-log.exe .\bin
copy "C:\Program Files\OpenSSL-Win64\libcrypto-1_1-x64.dll" bin\libcrypto-1_1-x64.dll
copy "C:\Program Files\OpenSSL-Win64\libssl-1_1-x64.dll" bin\libssl-1_1-x64.dll
cd .\bin
7z a effort-log_${{ steps.get_version.outputs.VERSION }}_win64_encrypted.zip .\*
cd ..
mv .\bin\effort-log_${{ steps.get_version.outputs.VERSION }}_win64_encrypted.zip .\
- name: Release macOS
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'macos-latest'
with:
files: effort-log_*.dmg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release Windows
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') && matrix.qt_version == '6.3.1' && matrix.os == 'windows-latest'
with:
files: effort-log_*.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}