-
-
Notifications
You must be signed in to change notification settings - Fork 68
203 lines (172 loc) · 11.3 KB
/
build.yml
File metadata and controls
203 lines (172 loc) · 11.3 KB
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# Author:Kang Lin <kl222@126.com>
name: build
env:
artifact_path: artifact_path
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SerialPortAssistant_VERSION: 0.5.33
on:
push:
pull_request:
jobs:
ubuntu:
uses: ./.github/workflows/ubuntu.yml
docker:
uses: ./.github/workflows/docker.yml
secrets: inherit
appimage:
uses: ./.github/workflows/appimage.yml
flatpak:
uses: ./.github/workflows/flatpak.yml
secrets: inherit
msvc:
uses: ./.github/workflows/msvc.yml
mingw:
uses: ./.github/workflows/mingw.yml
macos:
uses: ./.github/workflows/macos.yml
android:
uses: ./.github/workflows/android.yml
secrets: inherit
deploy:
#if: ${{ startsWith(github.ref, 'refs/tags/') }}
runs-on: ubuntu-latest
needs: [ubuntu, appimage, msvc, android, macos]
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
submodules: true
- name: clean test tag
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
continue-on-error: true
run: |
gh release delete test_${{ github.ref_name }} -y --cleanup-tag
- name: Download ubuntu
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.ubuntu.outputs.name }}*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Download docker
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.docker.outputs.name }}*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Download appimage
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.appimage.outputs.name }}*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Download flatpak
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.flatpak.outputs.name }}*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Download msvc
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.msvc.outputs.name }}_*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Download android
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.android.outputs.name }}_*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Download macos
uses: actions/download-artifact@v4
with:
pattern: ${{ needs.macos.outputs.name }}_*
path: ${{ env.artifact_path }}
merge-multiple: true
- name: Process configure file
run: |
git clone https://github.com/KangLin/RabbitCommon.git
./RabbitCommon/Install/MergeJsonFile.sh \
"${{ github.workspace }}/update.json" \
"${{ env.artifact_path }}" "${{ env.artifact_path }}/version.json"
rm ${{ env.artifact_path }}/*.json
- name: Add test comment in Release.md file
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
run: |
echo "**This release is for development and testing purposes only!**" >> ${{github.workspace}}/Release.md
echo "Commit: [${{github.sha}}](https://github.com/KangLin/SerialPortAssistant/commit/${{github.sha}})" >> ${{github.workspace}}/Release.md
echo "" >> ${{github.workspace}}/Release.md
echo "[:us: Change log](ChangeLog.md)" >> ${{github.workspace}}/Release.md
echo "" >> ${{github.workspace}}/Release.md
- name: Make relase file
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
echo "[:cn: 修改日志](https://github.com/KangLin/SerialPortAssistant/blob/v${{env.SerialPortAssistant_VERSION}}/ChangeLog_zh_CN.md)" > ${{github.workspace}}/Release.md
echo "[:us: Change log](https://github.com/KangLin/SerialPortAssistant/blob/v${{env.SerialPortAssistant_VERSION}}/ChangeLog.md)" >> ${{github.workspace}}/Release.md
echo "" >> ${{github.workspace}}/Release.md
- name: md5
run: |
echo "" >> ${{github.workspace}}/Release.md
echo "## File checksum:" >> ${{github.workspace}}/CheckSum.md
echo "" >> ${{github.workspace}}/CheckSum.md
echo "|File|Checksum(md5)|Checksum(sha256)|" >> ${{github.workspace}}/CheckSum.md
echo "| :- | :- |:-|" >> ${{github.workspace}}/CheckSum.md
cd ${{ env.artifact_path }}
for file in *
do
echo "$file"
if [ -f $file ]; then
if [ "${file##*.}" != "xml" ] && [ "${file##*.}" != "json" ]; then
SumMd5=`md5sum $file | awk '{print "|", $2, "|", $1, "|"}'`
Sum256=`sha256sum $file | awk '{print $1, "|"}'`
echo "${SumMd5}${Sum256}" >> ${{github.workspace}}/CheckSum.md
fi
else
rm -fr $file
fi
done
- name: Add download
run: |
export BRANCH_NAME=${{ github.ref_name }}
if [ "${{ github.ref_name }}" == "master" ]; then
export BRANCH_NAME=test_${{ github.ref_name }}
fi
echo "## Download:" >> ${{github.workspace}}/Release.md
echo "" >> ${{github.workspace}}/Release.md
echo "| | x86-64 (64-bit) | x86-32 (32-bit) | AArch64 (ARM64) | ARMv7 (32-bit) |Remark|" >> ${{github.workspace}}/Release.md
echo "|:- | :-------------- | :-------------- | :-------------- | :------------- |:-----|" >> ${{github.workspace}}/Release.md
echo "|Windows 7 SP1 or later|[EXE](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_win64_msvc2022_64_qt6.9.2_Setup.exe)|[EXE](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_win32_msvc2019_qt5.15.2_Setup.exe)|[EXE](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_win64_msvc2022_arm64_qt6.9.2_Setup.exe) | ||" >> ${{github.workspace}}/Release.md
echo "|Windows xp SP3| |[EXE](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_windows_xp_x86_Setup.exe)||||" >> ${{github.workspace}}/Release.md
echo "|Android|[APK](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_android_x86_64_qt6.9.2_Release.apk) | |[APK](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_android_arm64_v8a_qt6.9.2_Release.apk)| |Experiment|" >> ${{github.workspace}}/Release.md
echo "|Macos|[App zip](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_macos-15-intel.zip) [dmg](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_macos-15-intel.dmg)||[App zip](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_macos-14.zip) [dmg](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_macos-14.dmg)||Experiment|" >> ${{github.workspace}}/Release.md
echo "|Linux|[AppImage](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_Linux_x86_64.AppImage)| |[AppImage](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_Linux_aarch64.AppImage)| |chmod u+x SerialPortAssistant_*.AppImage; Run SerialPortAssistant_*.AppImage |" >> ${{github.workspace}}/Release.md
echo "|Ubuntu 24.04|[DEB](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_${{env.SerialPortAssistant_VERSION}}_ubuntu-24.04_amd64.deb)| |[DEB](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_${{env.SerialPortAssistant_VERSION}}_ubuntu-24.04_arm64.deb)| |sudo apt install \"deb file\" |" >> ${{github.workspace}}/Release.md
echo "|Ubuntu 22.04|| |[DEB](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_${{env.SerialPortAssistant_VERSION}}_ubuntu-22.04_arm64.deb)| |sudo apt install \"deb file\" |" >> ${{github.workspace}}/Release.md
echo "|Fedora 42|[RPM](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant-${{env.SerialPortAssistant_VERSION}}-1.fc42.x86_64.rpm)| |[RPM](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant-${{env.SerialPortAssistant_VERSION}}-1.fc42.aarch64.rpm)| |sudo dnf install \"rpm file\" |" >> ${{github.workspace}}/Release.md
- name: Add download in test
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
run: |
export BRANCH_NAME=${{ github.ref_name }}
if [ "${{ github.ref_name }}" == "master" ]; then
export BRANCH_NAME=test_${{ github.ref_name }}
fi
echo "|Flatpak|[flatpak](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_Linux_x86_64.flatpak)| |[flatpak](https://github.com/KangLin/SerialPortAssistant/releases/download/${BRANCH_NAME}/SerialPortAssistant_v${{env.SerialPortAssistant_VERSION}}_Linux_aarch64.flatpak)||flatpak install \"flatpak File\" [--user] |" >> ${{github.workspace}}/Release.md
- name: Add flathub download
run: |
echo "" >> ${{github.workspace}}/Release.md
echo "[](https://flathub.org/apps/io.github.KangLin.SerialPortAssistant)" >> ${{github.workspace}}/Release.md
- name: Create github Release
if: ${{ startsWith(github.ref, 'refs/tags/') }}
continue-on-error: true
run: |
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --notes-file ${{github.workspace}}/Release.md
- name: Upload To Github Release
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
gh release edit ${{ github.ref_name }} --notes-file ${{github.workspace}}/Release.md
gh release upload ${{ github.ref_name }} ${{github.workspace}}/${{env.artifact_path}}/* ${{github.workspace}}/Release.md ${{github.workspace}}/CheckSum.md ${{ github.workspace }}/update.json
- name: Upload test tag To Github Release
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
run: |
gh release create test_${{ github.ref_name }} --prerelease --latest=false --title "Recently developed build - ${{ github.ref_name }}" --notes-file ${{github.workspace}}/Release.md
gh release upload test_${{ github.ref_name }} --clobber ${{github.workspace}}/${{ env.artifact_path }}/* ${{github.workspace}}/Release.md ${{github.workspace}}/CheckSum.md ${{github.workspace}}/update.json --clobber