-
Notifications
You must be signed in to change notification settings - Fork 163
152 lines (123 loc) · 3.69 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: build
on: [push, pull_request]
jobs:
build-windows:
runs-on: windows-2019
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Inspect Build Environment
shell: powershell
run: Write-Host $env:PATH
- name: Enable Visual Studio Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Build
shell: powershell
run: ./.github/workflows/install-windows.ps1
- name: Upload friture appx
uses: actions/upload-artifact@v2
with:
name: friture-appx
path: dist/friture-*.appx
if-no-files-found: error
- name: Upload friture msi
uses: actions/upload-artifact@v2
with:
name: friture-msi
path: dist/friture-*.msi
if-no-files-found: error
- name: Upload friture zip
uses: actions/upload-artifact@v2
with:
name: friture-zip
path: dist/friture.zip
if-no-files-found: error
- name: Upload import xref
uses: actions/upload-artifact@v2
with:
name: friture-import-xref
path: build/friture/xref-friture.html
if-no-files-found: error
- name: Upload import graph
uses: actions/upload-artifact@v2
with:
name: friture-import-graph
path: build/friture/graph-friture.dot
if-no-files-found: error
build-linux:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Build
run: source ./.github/workflows/install-linux.sh
- name: Upload appImage
uses: actions/upload-artifact@v2
with:
name: friture-appImage
path: friture*.AppImage
if-no-files-found: error
build-macos:
runs-on: macos-12
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Build
run: source ./.github/workflows/install-macos.sh
- name: Upload dmg
uses: actions/upload-artifact@v2
with:
name: friture-dmg
path: friture*.dmg
if-no-files-found: error
release:
name: Create release and upload artifacts
runs-on: ubuntu-latest
needs: [build-windows, build-linux, build-macos]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download all workflow run artifacts
uses: actions/download-artifact@v2
- name: Display structure of downloaded files
run: ls -R
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') # Limit releases to pushes to tags
with:
draft: true
prerelease: false
fail_on_unmatched_files: true
files: |
**/friture*.msi
**/friture*.dmg
**/friture*.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}