Skip to content

release

release #157

Workflow file for this run

name: release
on:
release:
types: [created]
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: Checkout project
uses: actions/[email protected]
- name: Install sox
run: |
sudo apt update
sudo apt install sox libsox-fmt-mp3
- name: Setup Hugo
uses: peaceiris/[email protected]
with:
hugo-version: "0.135.0"
- name: Set up Python
uses: actions/[email protected]
with:
python-version: "3.11"
- name: Set up Zig
uses: goto-bus-stop/[email protected]
with:
version: "0.11.0"
- name: Setup Go
uses: actions/[email protected]
- 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/[email protected]
with:
repository: raspberrypi/pico-sdk
path: pico-sdk
submodules: true
ref: 1.5.1
- 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 ectocore.uf2
run: |
make ectocore
cp ectocore.uf2 ectocore_${{ github.event.release.name }}.uf2
- name: Build ectocore_v3.uf2
run: |
make ectocore_v3
cp ectocore.uf2 ectocore_v0.3_${{ 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
ectocore_${{ github.event.release.name }}.uf2
ectocore_v0.3_${{ github.event.release.name }}.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 }}