Skip to content

HyperSPI support for Pico (rp2040) #4

HyperSPI support for Pico (rp2040)

HyperSPI support for Pico (rp2040) #4

name: HyperSPI Pico CI Build
on: [push]
jobs:
#############################
#### HyperSPI for Pico ######
#############################
HyperSpiPico:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./rp2040
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install GNU Arm Embedded Toolchain
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '12.2.Rel1'
- name: Build packages
shell: bash
run: |
mkdir build
cd build
cmake ..
cmake --build . --config Release
- uses: actions/upload-artifact@v3
name: Upload artifacts (commit)
if: (startsWith(github.event.ref, 'refs/tags') != true)
with:
path: |
rp2040/HyperSerialPico/firmware/*.uf2
- uses: actions/upload-artifact@v3
name: Upload artifacts (release)
if: startsWith(github.ref, 'refs/tags/')
with:
name: firmware-release
path: |
rp2040/HyperSerialPico/firmware/*.uf2
# - name: Build packages for Adafruit Feather RP2040 Scorpio (release-only)
# if: startsWith(github.ref, 'refs/tags/')
# shell: bash
# run: |
# cd build
# rm *.*
# rm ../HyperSerialPico/firmware/*
# echo "Neopixel is using GPIO16(OUTPUT_DATA_PIN) on output 0." > ../firmware/Firmwares_for_Adafruit_Feather_RP2040_Scorpio.txt
# cmake -DOVERRIDE_BOOT_WORKAROUND=ON -DOVERRIDE_DATA_PIN=16 -DCMAKE_BUILD_TYPE=Release ..
# cmake --build .
# zip -j ../HyperSerialPico/firmware/Adafruit_Feather_RP2040_Scorpio.zip ../firmware/*
# - uses: actions/upload-artifact@v3
# name: Upload artifacts (release Adafruit_Feather)
# if: startsWith(github.ref, 'refs/tags/')
# with:
# name: firmware-release
# path: |
# rp2040/HyperSerialPico/firmware/*.zip
# - name: Build packages for Adafruit ItsyBitsy RP2040 (release-only)
# if: startsWith(github.ref, 'refs/tags/')
# shell: bash
# run: |
# cd build
# rm *.*
# rm ../HyperSerialPico/firmware/*
# echo "Neopixel is using GPIO14(OUTPUT_DATA_PIN) on output 5." > ../firmware/Firmwares_for_Adafruit_ItsyBitsy_2040.txt
# cmake -DOVERRIDE_BOOT_WORKAROUND=ON -DOVERRIDE_DATA_PIN=14 -DCMAKE_BUILD_TYPE=Release ..
# cmake --build .
# rm ../firmware/*_Spi.uf2
# zip -j ../HyperSerialPico/firmware/Adafruit_ItsyBitsy_2040.zip ../firmware/*
# - uses: actions/upload-artifact@v3
# name: Upload artifacts (release Adafruit_ItsyBitsy)
# if: startsWith(github.ref, 'refs/tags/')
# with:
# name: firmware-release
# path: |
# rp2040/HyperSerialPico/firmware/*.zip
# - name: Build packages for Pimoroni Plasma 2040 (release-only)
# if: startsWith(github.ref, 'refs/tags/')
# shell: bash
# run: |
# cd build
# rm *.*
# rm ../HyperSerialPico/firmware/*
# echo "Neopixel is using GPIO15(OUTPUT_DATA_PIN) on output DA." > ../firmware/Firmwares_for_Pimoroni_Plasma_2040.txt
# cmake -DOVERRIDE_DATA_PIN=15 -DCMAKE_BUILD_TYPE=Release ..
# cmake --build .
# zip -j ../HyperSerialPico/firmware/Pimoroni_Plasma_2040.zip ../firmware/*
# - uses: actions/upload-artifact@v3
# name: Upload artifacts (release Pimoroni_Plasma)
# if: startsWith(github.ref, 'refs/tags/')
# with:
# name: firmware-release
# path: |
# rp2040/HyperSerialPico/firmware/*.zip
################################
###### Publish Releases ########
################################
publish:
name: Publish Releases
if: startsWith(github.event.ref, 'refs/tags')
needs: [HyperSpiPico]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
# generate environment variables
- name: Generate environment variables from version and tag
run: |
echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
echo "preRelease=false" >> $GITHUB_ENV
# If version contains alpha or beta, mark draft release as pre-release
- name: Mark release as pre-release
if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta')
run: echo "preRelease=true" >> $GITHUB_ENV
- uses: actions/download-artifact@v3
with:
name: firmware-release
# create draft release and upload artifacts
- name: Create draft release
uses: softprops/action-gh-release@v1
with:
name: HyperSPI ${{ env.VERSION }}
tag_name: ${{ env.TAG }}
files: |
*.uf2
*.zip
draft: true
prerelease: ${{ env.preRelease }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}