Update README.md #63
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |