-
-
Notifications
You must be signed in to change notification settings - Fork 20
175 lines (169 loc) · 7.08 KB
/
release.yml
File metadata and controls
175 lines (169 loc) · 7.08 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
name: release
on:
release:
types: [created]
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: Checkout project
uses: actions/checkout@v4.2.2
- name: Install sox
run: |
sudo apt update
sudo apt install sox libsox-fmt-mp3
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: "0.135.0"
- name: Set up Python
uses: actions/setup-python@v5.6.0
with:
python-version: "3.11"
- name: Set up Zig
uses: goto-bus-stop/setup-zig@v2.2.1
with:
version: "0.11.0"
- name: Setup Go
uses: actions/setup-go@v5.2.0
- name: Install Pico SDK dependencies
run: |
sudo apt update
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential gcc wget tar
- name: Create and activate a Python virtual environment
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv .venv
echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV
echo "$PWD/.venv/bin" >> $GITHUB_PATH
- name: Install Python dependencies
run: uv pip install -r requirements.txt
- run: uv pip freeze
- name: Checkout pico-sdk
uses: actions/checkout@v4.2.2
with:
repository: raspberrypi/pico-sdk
path: pico-sdk
submodules: true
ref: 2.2.0
- name: Checkout pico-extras
uses: actions/checkout@v4.2.2
with:
repository: raspberrypi/pico-extras
path: pico-extras
submodules: true
ref: sdk-2.2.0
- name: Patch tinyusb
run: |
sed -i 's/OSAL_TIMEOUT_WAIT_FOREVER/OSAL_TIMEOUT_NORMAL/g' $GITHUB_WORKSPACE/pico-sdk/lib/tinyusb/src/tusb.c
cat $GITHUB_WORKSPACE/pico-sdk/lib/tinyusb/src/tusb.c | grep osal_mutex
- name: Set PICO_SDK_PATH
run: echo "PICO_SDK_PATH=$GITHUB_WORKSPACE/pico-sdk" >> $GITHUB_ENV
- name: Build core_macos_amd64
run: |
make core_macos_amd64
cp core_macos_amd64 core_macos_amd64_${{ github.event.release.name }}
- name: Build ectocore_macos_aarch64
run: |
make ectocore_macos_aarch64
cp ectocore_macos_aarch64 ectocore_macos_aarch64_${{ github.event.release.name }}
- name: Build core_macos_aarch64
run: |
make core_macos_aarch64
cp core_macos_aarch64 core_macos_aarch64_${{ github.event.release.name }}
- name: Build ectocore_macos_aarch64
run: |
make ectocore_macos_amd64
cp ectocore_macos_amd64 ectocore_macos_amd64_${{ github.event.release.name }}
- name: Build zeptocore.uf2
run: |
make zeptocore
cp zeptocore.uf2 zeptocore_${{ github.event.release.name }}.uf2
- name: Build zeptocore_128.uf2
run: |
make zeptocore_128
cp zeptocore.uf2 zeptocore_${{ github.event.release.name }}_ultralow_latency.uf2
- name: Build zeptocore_256.uf2
run: |
make zeptocore_256
cp zeptocore.uf2 zeptocore_${{ github.event.release.name }}_low_latency.uf2
- name: Build ectocore.uf2
run: |
make ectocore
cp ectocore.uf2 ectocore_${{ github.event.release.name }}.uf2
- name: Build ectocore_128.uf2
run: |
make ectocore_128
cp ectocore.uf2 ectocore_${{ github.event.release.name }}_ultralow_latency.uf2
- name: Build ectocore_256.uf2
run: |
make ectocore_256
cp ectocore.uf2 ectocore_${{ github.event.release.name }}_low_latency.uf2
- name: Build ectocore no overclock
run: |
make ectocore_noclock
cp ectocore.uf2 ectocore_${{ github.event.release.name }}_no_overclocking.uf2
- name: Build ectocore no overclock
run: |
make ectocore_noclock_128
cp ectocore.uf2 ectocore_${{ github.event.release.name }}_no_overclocking_ultralow_latency.uf2
- name: Build ectocore no overclock
run: |
make ectocore_noclock_256
cp ectocore.uf2 ectocore_${{ github.event.release.name }}_no_overclocking_low_latency.uf2
- name: Build ectocore_beta_hardware.uf2
run: |
make ectocore_beta_hardware
cp ectocore_beta_hardware.uf2 ectocore_beta_hardware_${{ github.event.release.name }}.uf2
- name: Build zeptoboard.uf2
run: |
make zeptoboard
cp zeptoboard.uf2 zeptoboard_${{ github.event.release.name }}.uf2
- name: Build core_windows.exe
run: |
make core_windows.exe
cp core_windows.exe core_windows_${{ github.event.release.name }}.exe
- name: Build core_linux_amd64
run: |
make core_linux_amd64
cp core_linux_amd64 core_linux_amd64_${{ github.event.release.name }}
- name: Build ectocore_windows.exe
run: |
make ectocore_windows.exe
cp ectocore_windows.exe ectocore_windows_${{ github.event.release.name }}.exe
- name: Build ectocore_linux_amd64
run: |
make ectocore_linux_amd64
cp ectocore_linux_amd64 ectocore_linux_amd64_${{ github.event.release.name }}
- name: Prepare source tarball
run: |
git clone -b ${{ github.event.release.name }} --depth 1 https://github.com/schollz/_core _core-${{ github.event.release.name }}
cd _core-${{ github.event.release.name }}/core && go mod tidy && go mod vendor
cd ../.. && tar -czvf _core_${{ github.event.release.name }}_src.tar.gz _core-${{ github.event.release.name }}
- name: Release
uses: softprops/action-gh-release@v2
with:
files: |
_core_${{ github.event.release.name }}_src.tar.gz
zeptocore_${{ github.event.release.name }}.uf2
zeptocore_${{ github.event.release.name }}_ultralow_latency.uf2
zeptocore_${{ github.event.release.name }}_low_latency.uf2
zeptoboard_${{ github.event.release.name }}.uf2
core_windows_${{ github.event.release.name }}.exe
core_linux_amd64_${{ github.event.release.name }}
core_macos_aarch64_${{ github.event.release.name }}
core_macos_amd64_${{ github.event.release.name }}
ectocore_windows_${{ github.event.release.name }}.exe
ectocore_linux_amd64_${{ github.event.release.name }}
ectocore_macos_aarch64_${{ github.event.release.name }}
ectocore_macos_amd64_${{ github.event.release.name }}
ectocore_${{ github.event.release.name }}.uf2
ectocore_${{ github.event.release.name }}_ultralow_latency.uf2
ectocore_${{ github.event.release.name }}_low_latency.uf2
ectocore_${{ github.event.release.name }}_no_overclocking.uf2
ectocore_${{ github.event.release.name }}_no_overclocking_ultralow_latency.uf2
ectocore_${{ github.event.release.name }}_no_overclocking_low_latency.uf2
ectocore_beta_hardware_${{ github.event.release.name }}.uf2