-
Notifications
You must be signed in to change notification settings - Fork 15
134 lines (133 loc) · 4.46 KB
/
main.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
name: "Build Tool"
permissions:
contents: write
discussions: write
on:
push:
paths:
- "bin/setting.ini"
workflow_dispatch:
jobs:
build:
needs: [build-win,build-linux,build-macos]
runs-on: windows-latest
strategy:
matrix:
python-version: ["3.12.6"]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Generate Release Body
run: |
set ver $(cat bin\setting.ini | findstr version).Split()[2]
echo "Build times: ${{ github.run_number }}" >> body.md
echo "Version: $ver" >> body.md && echo Ok
echo "Changelog:" >> body.md
echo '```' >> body.md
git log -1 --pretty=%B $(git rev-parse HEAD) >> body.md
echo '```' >> body.md
echo $ver > version.txt && echo Ok
- name: Read version.txt
id: version
uses: juliangruber/read-file-action@v1
with:
path: ./version.txt
trim: true
- name: Rename Tool
run: |
cd MIO-KITCHEN-win
move ./MIO-KITCHEN-win.zip ../MIO-KITCHEN-${{ steps.version.outputs.content }}-win.zip
cd ..
cd MIO-KITCHEN-linux
move ./MIO-KITCHEN-linux.zip ../MIO-KITCHEN-${{ steps.version.outputs.content }}-linux.zip
cd ..
cd MIO-KITCHEN-macos
move ./MIO-KITCHEN-macos.zip ../MIO-KITCHEN-${{ steps.version.outputs.content }}-macos.zip
cd ..
cd MIO-KITCHEN-macos-intel
move ./MIO-KITCHEN-macos-intel.zip ../MIO-KITCHEN-${{ steps.version.outputs.content }}-macos-intel.zip
cd ..
- name: Upload release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
omitBodyDuringUpdate: true
removeArtifacts: true
name: "MIO-KITCHEN-${{ steps.version.outputs.content }}"
tag: "CI_BUILD_${{ github.run_number }}"
bodyFile: "body.md"
artifacts: "*.zip"
build-win:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12.6
uses: actions/setup-python@v5
with:
# Semantic version range syntax or exact version of a Python version
python-version: '3.12.6'
# Optional - x64 or x86 architecture, defaults to x64
architecture: 'x86'
# You can test your matrix by printing the current Python version
- name: Update pip
run: python -m pip install -U --force-reinstall pip
- name: Pack tool
run: python build.py
- name: Upload Win Build
if: success()
uses: actions/upload-artifact@v4
with:
name: MIO-KITCHEN-win
path: './MIO-KITCHEN-win.zip'
build-linux:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
# Semantic version range syntax or exact version of a Python version
python-version: '3.10'
# Optional - x64 or x86 architecture, defaults to x64
- name: Install Packages
run: |
python3 -m pip install -U --force-reinstall pip
sudo apt update -y && sudo apt install python3-tk -y
- name: Pack Tool
run: python3 build.py
- name: Upload Linux Build
if: success()
uses: actions/upload-artifact@v4
with:
name: MIO-KITCHEN-linux
path: './MIO-KITCHEN-linux.zip'
build-macos:
strategy:
matrix:
os: [macos-latest, macos-13]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
# Semantic version range syntax or exact version of a Python version
python-version: '3.12'
# Optional - x64 or x86 architecture, defaults to x64
- name: Install Packages
run: |
python3 -m pip install -U --force-reinstall pip
- name: Pack Tool
run: python3 build.py
- name: Upload Arm64 Macos Build
if: success() && matrix.os == 'macos-latest'
uses: actions/upload-artifact@v4
with:
name: MIO-KITCHEN-macos
path: './MIO-KITCHEN-macos.zip'
- name: Upload x86_64 Macos Build
if: success() && matrix.os == 'macos-13'
uses: actions/upload-artifact@v4
with:
name: MIO-KITCHEN-macos-intel
path: './MIO-KITCHEN-macos-intel.zip'