-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (110 loc) Β· 3.97 KB
/
python-package.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
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python package
on:
push:
branches: [ "main", "dev" ]
pull_request:
branches: [ "main", "dev" ]
release:
types: [ created ]
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: [ "3.8", "3.12" ]
os: [ windows-latest, ubuntu-20.04, ubuntu-22.04 ]
steps:
- uses: actions/checkout@v4
- name: π Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: π Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install hatch
- name: π Test with pytest
run: hatch run test
- name: π Check code style with hatch
run: hatch fmt --check
- name: β¨οΈ Check typing with mypy
run: hatch run types:check
release-win:
if: github.event.release
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
python-version: [ "3.8" ]
steps:
- uses: actions/checkout@v4
- name: π Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: π Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install hatch
# Windows sub steps
- name: β³ Build Windows Installer
run: hatch run pyinstaller:build_gui AntaresWebInstaller-${{ matrix.os }}
- name: π¦ Archive Windows binaries for upload
uses: actions/upload-artifact@v4
with:
name: AntaresWebInstaller-${{ matrix.os }}
path: dist/AntaresWebInstaller-${{ matrix.os }}.exe
# Retrieve newly built artifacts
- name: π·οΈ Get release
id: get_release
uses: bruceadams/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: π€ Upload Release Asset (Windows systems)
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload --repo ${{ env.GH_REPO }} ${{ steps.get_release.outputs.tag_name }} dist\AntaresWebInstaller-${{ matrix.os }}.exe
release-ubuntu:
if: github.event.release
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-20.04, ubuntu-22.04 ]
python-version: [ "3.8" ]
steps:
- uses: actions/checkout@v4
- name: π Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: π Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install hatch
# Ubuntu sub steps
- name: β³ Build Ubuntu Installer
run: hatch run pyinstaller:build_cli AntaresWebInstallerCLI-${{ matrix.os }}
- name: π¦ Archive Ubuntu binaries for upload
uses: actions/upload-artifact@v4
with:
name: AntaresWebInstallerCLI-${{ matrix.os }}
path: dist/AntaresWebInstallerCLI-${{ matrix.os }}
# Retrieve newly built artifacts
- name: π·οΈ Get release
id: get_release
uses: bruceadams/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: π€ Upload Release Asset (UNIX systems)
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload --repo ${{ env.GH_REPO }} ${{ steps.get_release.outputs.tag_name }} dist/AntaresWebInstallerCLI-${{ matrix.os }}