-
Notifications
You must be signed in to change notification settings - Fork 8
186 lines (147 loc) · 4.04 KB
/
Copy pathpipeline.yml
File metadata and controls
186 lines (147 loc) · 4.04 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
name: Pipeline
on:
pull_request:
push:
workflow_dispatch:
schedule:
- cron: '59 23 * * SUN'
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: noninteractive
jobs:
build_docs:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: &install_deps |
apt-get update && apt-get install -y git wget tar
wget https://github.com/casey/just/releases/download/1.55.1/just-1.55.1-x86_64-unknown-linux-musl.tar.gz -P /tmp
tar -xvf /tmp/just-1.55.1-x86_64-unknown-linux-musl.tar.gz -C /tmp/
mv /tmp/just /usr/bin/
git config --global --add safe.directory '*'
- uses: actions/checkout@v4
- name: Generate documentation
run: |
just install-debian-deps --docs
just docs
- uses: actions/upload-artifact@v4
with:
name: gh-page
path: docs/build/html
- name: Deploy to Github Pages
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
run: |
cd docs/build/html
touch .nojekyll
git init
cp ../../../.git/config ./.git/config
git add .
git config --local user.email "push@gha"
git config --local user.name "GHA"
git commit -am "update ${{ github.sha }}"
git push -u origin +HEAD:gh-pages
rm -rf .git
examples:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Generate Topwrap examples
run: |
just install-debian-deps
just examples
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: examples
path: examples/**/build
lint:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Run lint checks
run: |
just install-debian-deps
just test-lint
package_cores:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Pack cores into a Topwrap repository
run: |
just install-debian-deps
just package
tar -cf build/cores_export.tar -C build/export .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: export_cores
path: build/cores_export.tar
package_test:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Build and test distribution packages
run: |
just install-debian-deps
just build
pyright_check:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Run typing checks
continue-on-error: true
run: |
just install-debian-deps
just pyright --compare
test_kpm_server:
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Build and run KPM server
run: |
just install-debian-deps
just test-kpm-server
test_python:
strategy:
matrix:
version: ["3.10", "3.11", "3.12", "3.13"]
runs-on: ubuntu-latest
container:
image: debian:bookworm
name: test_python ${{ matrix.version }}
steps:
- name: Install just
run: *install_deps
- uses: actions/checkout@v4
- name: Run Python tests on python ${{ matrix.version }}
run: |
just install-debian-deps
just test ${{ matrix.version }}