Fix path issue #8
Workflow file for this run
This file contains hidden or 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: OLED Release Pipeline | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| env: | |
| TOOLCHAIN: "4.0.0.52" | |
| DFP: "ATmega_DFP.3.6.299" | |
| PROJECT_PATH: "demo" | |
| OUTPUT_FOLDER: "output" | |
| jobs: | |
| build-firmware-m16a-tty-software-twi: | |
| env: | |
| DEVICE: "atmega16a" | |
| FIRMWARE_NAME: "tty_sw_twi_m16a" | |
| PREPROCESSOR: "F_CPU=12000000UL;SSD130X_HAL_PLATFORM=avr;SSD130X_USE_SOFT_TWI;FONT_STORE_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr0 | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target tty_twi_m16a -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m16a-tty-software-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m16a-tty-hardware-twi: | |
| env: | |
| DEVICE: "atmega16a" | |
| FIRMWARE_NAME: "tty_hw_twi_m16a" | |
| PREPROCESSOR: "F_CPU=12000000UL;SSD130X_HAL_PLATFORM=avr;FONT_STORE_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr0 | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target tty_twi_m16a -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m16a-tty-hardware-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m16a-frame-software-twi: | |
| env: | |
| DEVICE: "atmega16a" | |
| FIRMWARE_NAME: "frame_sw_twi_m16a" | |
| PREPROCESSOR: "F_CPU=12000000UL;SSD130X_HAL_PLATFORM=avr;SSD130X_USE_SOFT_TWI;FONT_STORE_IN_PROGMEM;FRAME_SPECIFIC_BACKGROUND;FRAME_SPECIFIC_BACKGROUND_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr0 | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target frame_twi_m16a -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m16a-frame-software-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m16a-frame-hardware-twi: | |
| env: | |
| DEVICE: "atmega16a" | |
| FIRMWARE_NAME: "frame_hw_twi_m16a" | |
| PREPROCESSOR: "F_CPU=12000000UL;SSD130X_HAL_PLATFORM=avr;FONT_STORE_IN_PROGMEM;FRAME_SPECIFIC_BACKGROUND;FRAME_SPECIFIC_BACKGROUND_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr0 | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target frame_twi_m16a -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m16a-frame-hardware-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m4808-tty-software-twi: | |
| env: | |
| DEVICE: "atmega4808" | |
| FIRMWARE_NAME: "tty_sw_twi_m4808" | |
| PREPROCESSOR: "F_CPU=20000000UL;SSD130X_HAL_PLATFORM=avr0;SSD130X_USE_SOFT_TWI;FONT_STORE_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target tty_twi_m4808 -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m4808-tty-software-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m4808-tty-hardware-twi: | |
| env: | |
| DEVICE: "atmega4808" | |
| FIRMWARE_NAME: "tty_hw_twi_m4808" | |
| PREPROCESSOR: "F_CPU=20000000UL;SSD130X_HAL_PLATFORM=avr0;TWI_PORTMUX=PORTMUX_TWI0_ALT2_gc;FONT_STORE_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target tty_twi_m4808 -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m4808-tty-hardware-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m4808-frame-software-twi: | |
| env: | |
| DEVICE: "atmega4808" | |
| FIRMWARE_NAME: "frame_sw_twi_m4808" | |
| PREPROCESSOR: "F_CPU=20000000UL;SSD130X_HAL_PLATFORM=avr0;SSD130X_USE_SOFT_TWI;FONT_STORE_IN_PROGMEM;FRAME_SPECIFIC_BACKGROUND;FRAME_SPECIFIC_BACKGROUND_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target frame_twi_m4808 -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m4808-frame-software-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| build-firmware-m4808-frame-hardware-twi: | |
| env: | |
| DEVICE: "atmega4808" | |
| FIRMWARE_NAME: "frame_hw_twi_m4808" | |
| PREPROCESSOR: "F_CPU=20000000UL;SSD130X_HAL_PLATFORM=avr0;TWI_PORTMUX=PORTMUX_TWI0_ALT2_gc;FONT_STORE_IN_PROGMEM;FRAME_SPECIFIC_BACKGROUND;FRAME_SPECIFIC_BACKGROUND_IN_PROGMEM" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch repository | |
| uses: actions/checkout@v7 | |
| - name: Checkout submodules | |
| run: | | |
| git submodule update --init --recursive | |
| git submodule update --remote --recursive | |
| git rm -rf ./${{ env.PROJECT_PATH }}/lib/hal/avr | |
| chmod 0777 ./${{ env.PROJECT_PATH }}/cmake/platforms/avr/usage-avr-size.sh | |
| - name: Copy license | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./LICENSE.md ./${{ env.OUTPUT_FOLDER }} | |
| - name: Install necessary packages | |
| run: sudo apt-get install -y zip unzip cmake | |
| - name: Install build tools | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-${{ env.TOOLCHAIN }}-linux.any.x86_64.tar.gz | |
| tar -xf *.tar.gz | |
| - name: Install DFP package | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| wget https://packs.download.microchip.com/Microchip.${{ env.DFP }}.atpack | |
| unzip *.atpack -d ./DFP | |
| - name: Build firmware | |
| run: | | |
| cd ./${{ env.PROJECT_PATH }} | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=cmake/platforms/avr/toolchain-avr-gcc.cmake \ | |
| -DAVR_DEFINES:STRING="${{ env.PREPROCESSOR }}" | |
| cmake --build build/ --target frame_twi_m4808 -j | |
| - name: Copy firmware to output folder | |
| run: | | |
| mkdir -p ./${{ env.OUTPUT_FOLDER }} | |
| cp ./${{ env.PROJECT_PATH }}/build/*.hex ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex | |
| cp ./${{ env.PROJECT_PATH }}/build/*.map ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map | |
| cp ./${{ env.PROJECT_PATH }}/build/*.lss ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss | |
| cp ./${{ env.PROJECT_PATH }}/build/*.eep ./${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep | |
| - name: Archive build artifacts | |
| run: | | |
| tar -czvf build.tar.gz ./${{ env.OUTPUT_FOLDER }} | |
| zip -r build.zip ./${{ env.OUTPUT_FOLDER }} | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware-m4808-frame-hardware-twi | |
| path: ./${{ env.OUTPUT_FOLDER }} | |
| retention-days: 1 | |
| create-release: | |
| needs: [ | |
| build-firmware-m16a-tty-software-twi, | |
| build-firmware-m16a-tty-hardware-twi, | |
| build-firmware-m16a-frame-software-twi, | |
| build-firmware-m16a-frame-hardware-twi, | |
| build-firmware-m4808-tty-software-twi, | |
| build-firmware-m4808-tty-hardware-twi, | |
| build-firmware-m4808-frame-software-twi, | |
| build-firmware-m4808-frame-hardware-twi | |
| ] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_REPO: ${{ github.repository }} | |
| steps: | |
| - name: Create Release | |
| run: | | |
| gh release create "${{ github.ref_name }}" \ | |
| --title "Release ${{ github.ref_name }}" \ | |
| --notes "Release ${{ github.ref_name }}" | |
| - name: Download TTY Software-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m16a-tty-software-twi | |
| path: ./artifact/avr-tty-software-twi | |
| - name: Download TTY Hardware-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m16a-tty-hardware-twi | |
| path: ./artifact/avr-tty-hardware-twi | |
| - name: Download FRAME Software-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m16a-frame-software-twi | |
| path: ./artifact/avr-frame-software-twi | |
| - name: Download FRAME Hardware-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m16a-frame-hardware-twi | |
| path: ./artifact/avr-frame-hardware-twi | |
| - name: Download AVR0 TTY Software-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m4808-tty-software-twi | |
| path: ./artifact/avr0-tty-software-twi | |
| - name: Download AVR0 TTY Hardware-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m4808-tty-hardware-twi | |
| path: ./artifact/avr0-tty-hardware-twi | |
| - name: Download AVR0 FRAME Software-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m4808-frame-software-twi | |
| path: ./artifact/avr0-frame-software-twi | |
| - name: Download AVR0 FRAME Hardware-TWI Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: firmware-m4808-frame-hardware-twi | |
| path: ./artifact/avr0-frame-hardware-twi | |
| - name: Display structure | |
| run: ls -R ./artifact/ | |
| - name: Create Compressed File | |
| run: | | |
| cd ./artifact | |
| tar -czvf ../firmware.tar.gz ./ | |
| zip -r ../firmware.zip ./ | |
| cd .. | |
| - name: Upload files | |
| run: | | |
| gh release upload ${{ github.ref_name }} \ | |
| ./artifact/avr-tty-software-twi/tty_sw_twi_m16a.hex \ | |
| ./artifact/avr-tty-hardware-twi/tty_hw_twi_m16a.hex \ | |
| ./artifact/avr-frame-software-twi/frame_sw_twi_m16a.hex \ | |
| ./artifact/avr-frame-hardware-twi/frame_hw_twi_m16a.hex \ | |
| ./artifact/avr0-tty-software-twi/tty_sw_twi_m4808.hex \ | |
| ./artifact/avr0-tty-hardware-twi/tty_hw_twi_m4808.hex \ | |
| ./artifact/avr0-frame-software-twi/frame_sw_twi_m4808.hex \ | |
| ./artifact/avr0-frame-hardware-twi/frame_hw_twi_m4808.hex \ | |
| ./firmware.zip \ | |
| ./firmware.tar.gz | |
| - name: Rollback release on failure | |
| if: failure() | |
| run: | | |
| gh release delete "${{ github.ref_name }}" -y --cleanup-tag | |
| git push --delete origin "${{ github.ref_name }}" || true |