Skip to content

Update README.md

Update README.md #63

name: "Combined Firmware Workflow"
on:
workflow_dispatch:
push:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Build Docker image containing toolchains
run: docker build -t my-image .
- name: Run script in Docker container
run: docker run -v $PWD:/project -w /project/ my-image sh -c "cd Firmware && idf.py build"
- name: Run Unit Tests
run: |
cd Firmware/components/knot_midi_translator/host_test/
./test.sh
./test.sh >> test.txt
- name: Convert to uf2
run: |
cd Firmware
sudo python3 ./tools/uf2conv.py -f ESP32S3 ./build/midi_host_fw.bin -b 0x0 -c -o ./output/midi_host_fw.uf2
- name: Set env
shell: bash
run: |
echo "ACTION_DATE=$(date +'%Y-%m-%d-%H%M')" >> $GITHUB_ENV
echo "RELEASE_VERSION=$(git tag --contains ${{ github.sha }})" >> $GITHUB_ENV
- name: Copy and rename the artifacts
run: |
ls
cp Firmware/output/midi_host_fw.uf2 knot_esp32_release_${{ env.ACTION_DATE }}.uf2
cp Firmware/output/midi_host_fw.uf2 knot_esp32_nightly_${{ env.ACTION_DATE }}.uf2
cp Firmware/output/midi_host_fw.uf2 knot_esp32_nightly.uf2
- uses: actions/upload-artifact@v4
with:
name: grid-fw nightly
path: |
knot_esp32_nightly_${{ env.ACTION_DATE }}.uf2
knot_esp32_nightly.uf2
- name: Zipping artifacts for Github Release
uses: vimtor/action-zip@v1
if: ${{ env.RELEASE_VERSION != '' }}
with:
files: knot_esp32_release_${{ env.ACTION_DATE }}.uf2
dest: knot_release.zip
- name: Release
uses: softprops/action-gh-release@v1
if: ${{ env.RELEASE_VERSION != '' }}
with:
tag_name: ${{ env.RELEASE_VERSION }}
name: Knot ${{ env.RELEASE_VERSION }} (${{ env.ACTION_DATE }})
files: knot_release.zip
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy-results:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
needs: build
steps:
- uses: actions/checkout@v2
with:
ref: preview
- name: Download reports' artifacts
uses: actions/download-artifact@v4
with:
path: download
- name: Collecting files
run: |
# Create the temp folder if it doesn't exist
mkdir -p Preview/Firmware
# Loop through each subdirectory in the download folder
for subdirectory in download/*; do
# Check if it is a directory
if [ -d "$subdirectory" ]; then
# Copy the contents of the subdirectory to the temp folder
cp -r "$subdirectory"/* "Preview/Firmware/"
fi
done
- name: Commit the files
run: |
git config --global user.name ${{ github.actor }}
git config --global user.email ${{ github.actor }}@users.noreply.github.com
git add Preview/*
git commit -m "BOT ${{ github.workflow }} ${{ github.sha }}"
git push