Skip to content

Commit 8d4cb77

Browse files
committed
Add missing artifact upload
1 parent 69b89da commit 8d4cb77

File tree

1 file changed

+94
-48
lines changed

1 file changed

+94
-48
lines changed

.github/workflows/release.yml

Lines changed: 94 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,19 @@ jobs:
8181
TOOLCHAIN: "3.7.0.1796"
8282
DFP: "ATtiny_DFP.2.0.368"
8383
DEVICE: "attiny1606"
84-
OutputFolder: "./output"
85-
FirmwareName: "DIU_FW_1_0"
84+
OUTPUT_FOLDER: "./output"
85+
LIBRARY_PATH: "./firmware/lib"
86+
PROJECT_PATH: "./firmware/DIU_FW_1_0"
87+
FIRMWARE_NAME: "DIU_FW_1_0_t1606"
88+
PREPROCESSOR: "-DF_CPU=12000000UL"
8689
runs-on: ubuntu-latest
8790
steps:
8891
- name: Fetch repository
89-
uses: actions/checkout@v4
92+
uses: actions/checkout@v5
9093
- name: Copy License
9194
run: |
92-
mkdir ${{ env.OutputFolder }}
93-
cp ./LICENSE ${{ env.OutputFolder }}
95+
mkdir -p ${{ env.OUTPUT_FOLDER }}
96+
cp ./LICENSE ${{ env.OUTPUT_FOLDER }}
9497
- name: Install zip
9598
run: sudo apt-get install -y zip
9699
- name: install-build-tools
@@ -103,55 +106,73 @@ jobs:
103106
unzip *.atpack -d ./DFP
104107
- name: build-firmware
105108
run: |
106-
mkdir temp
107-
108-
libraries=""
109+
mkdir -p temp
110+
rm -rf ./temp/*
109111
110-
for dir in ./firmware/lib/*/
111-
do
112-
name=${dir%*/}
113-
echo "Building ${name##*/}"
112+
build_with_defines() {
113+
local defines="$1"
114+
local libraries=""
114115
115-
first_file=$(ls ./firmware/lib/${name##*/}/*.c| head -1)
116-
filename=$(basename -- "$first_file")
116+
while read -r file; do
117+
local filename=$(basename -- "$file")
117118
filename="${filename%.*}"
118119
119-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 -B ./DFP/gcc/dev/${{ env.DEVICE }} -I ./DFP/include -c ./firmware/lib/${name##*/}/${filename}.c -o ./temp/${filename}.o
120+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
121+
-B ./DFP/gcc/dev/${{ env.DEVICE }} \
122+
$defines \
123+
-I ./DFP/include -c "${file}" -o "./temp/${filename}.o"
120124
121125
libraries+="./temp/${filename}.o "
122-
done
126+
done < <(find "${{ env.LIBRARY_PATH }}" -type f -name '*.c')
123127
124-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 -B ./DFP/gcc/dev/${{ env.DEVICE }} -I ./DFP/include -c ./firmware/${{ env.FirmwareName }}/main.c -o ./temp/main.o
125-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=${{ env.DEVICE }} -B ./DFP/gcc/dev/${{ env.DEVICE }} -I ./DFP/include -o ./temp/main.elf ./temp/main.o ${libraries}
128+
echo "$libraries"
129+
}
126130
127-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex ./temp/main.elf ${{ env.OutputFolder }}/${{ env.FirmwareName }}_t1606.hex
128-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex ./temp/main.elf ${{ env.OutputFolder }}/${{ env.FirmwareName }}_t1606.eep
131+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
132+
-B ./DFP/gcc/dev/${{ env.DEVICE }} \
133+
-I ./DFP/include \
134+
${{ env.PREPROCESSOR }} \
135+
-c ${{ env.PROJECT_PATH }}/main.c -o ./main.o
136+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=${{ env.DEVICE }} \
137+
-B ./DFP/gcc/dev/${{ env.DEVICE }} \
138+
-I ./DFP/include \
139+
-o ./main.elf ./main.o \
140+
${{ env.PREPROCESSOR }} \
141+
$(build_with_defines "${{ env.PREPROCESSOR }}")
142+
143+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data \
144+
-O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex
145+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 \
146+
-O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep
129147
130-
tar -czvf build.tar.gz ${{ env.OutputFolder }}
131-
zip -r build.zip ${{ env.OutputFolder }}
148+
tar -czvf build.tar.gz ${{ env.OUTPUT_FOLDER }}
149+
zip -r build.zip ${{ env.OUTPUT_FOLDER }}
132150
133151
- name: upload-firmware
134152
uses: actions/upload-artifact@v4
135153
with:
136154
name: firmware-build
137-
path: ${{ env.OutputFolder }}
155+
path: ${{ env.OUTPUT_FOLDER }}
138156
retention-days: 1
139-
157+
140158
build-test-firmware:
141159
env:
142160
TOOLCHAIN: "3.7.0.1796"
143161
DFP: "ATtiny_DFP.2.0.368"
144162
DEVICE: "attiny1606"
145-
OutputFolder: "./output"
146-
FirmwareName: "DIU_TEST"
163+
OUTPUT_FOLDER: "./output"
164+
LIBRARY_PATH: "./firmware/lib"
165+
PROJECT_PATH: "./firmware/DIU_TEST"
166+
FIRMWARE_NAME: "DIU_TEST_t1606"
167+
PREPROCESSOR: "-DF_CPU=12000000UL"
147168
runs-on: ubuntu-latest
148169
steps:
149170
- name: Fetch repository
150-
uses: actions/checkout@v4
171+
uses: actions/checkout@v5
151172
- name: Copy License
152173
run: |
153-
mkdir ${{ env.OutputFolder }}
154-
cp ./LICENSE ${{ env.OutputFolder }}
174+
mkdir -p ${{ env.OUTPUT_FOLDER }}
175+
cp ./LICENSE ${{ env.OUTPUT_FOLDER }}
155176
- name: Install zip
156177
run: sudo apt-get install -y zip
157178
- name: install-build-tools
@@ -164,40 +185,55 @@ jobs:
164185
unzip *.atpack -d ./DFP
165186
- name: build-firmware
166187
run: |
167-
mkdir temp
168-
169-
libraries=""
188+
mkdir -p temp
189+
rm -rf ./temp/*
170190
171-
for dir in ./firmware/lib/*/
172-
do
173-
name=${dir%*/}
174-
echo "Building ${name##*/}"
191+
build_with_defines() {
192+
local defines="$1"
193+
local libraries=""
175194
176-
first_file=$(ls ./firmware/lib/${name##*/}/*.c| head -1)
177-
filename=$(basename -- "$first_file")
195+
while read -r file; do
196+
local filename=$(basename -- "$file")
178197
filename="${filename%.*}"
179198
180-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 -B ./DFP/gcc/dev/${{ env.DEVICE }} -I ./DFP/include -c ./firmware/lib/${name##*/}/${filename}.c -o ./temp/${filename}.o
199+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
200+
-B ./DFP/gcc/dev/${{ env.DEVICE }} \
201+
$defines \
202+
-I ./DFP/include -c "${file}" -o "./temp/${filename}.o"
181203
182204
libraries+="./temp/${filename}.o "
183-
done
205+
done < <(find "${{ env.LIBRARY_PATH }}" -type f -name '*.c')
184206
185-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 -B ./DFP/gcc/dev/${{ env.DEVICE }} -I ./DFP/include -c ./firmware/${{ env.FirmwareName }}/main.c -o ./temp/main.o
186-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=${{ env.DEVICE }} -B ./DFP/gcc/dev/${{ env.DEVICE }} -I ./DFP/include -o ./temp/main.elf ./temp/main.o ${libraries}
207+
echo "$libraries"
208+
}
187209
188-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex ./temp/main.elf ${{ env.OutputFolder }}/${{ env.FirmwareName }}_t1606.hex
189-
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex ./temp/main.elf ${{ env.OutputFolder }}/${{ env.FirmwareName }}_t1606.eep
210+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
211+
-B ./DFP/gcc/dev/${{ env.DEVICE }} \
212+
-I ./DFP/include \
213+
${{ env.PREPROCESSOR }} \
214+
-c ${{ env.PROJECT_PATH }}/main.c -o ./main.o
215+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=${{ env.DEVICE }} \
216+
-B ./DFP/gcc/dev/${{ env.DEVICE }} \
217+
-I ./DFP/include \
218+
-o ./main.elf ./main.o \
219+
${{ env.PREPROCESSOR }} \
220+
$(build_with_defines "${{ env.PREPROCESSOR }}")
221+
222+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data \
223+
-O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex
224+
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 \
225+
-O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep
190226
191-
tar -czvf test-build.tar.gz ${{ env.OutputFolder }}
192-
zip -r test-build.zip ${{ env.OutputFolder }}
227+
tar -czvf test-build.tar.gz ${{ env.OUTPUT_FOLDER }}
228+
zip -r test-build.zip ${{ env.OUTPUT_FOLDER }}
193229
194230
- name: upload-test-firmware
195231
uses: actions/upload-artifact@v4
196232
with:
197233
name: firmware-test-build
198-
path: ${{ env.OutputFolder }}
234+
path: ${{ env.OUTPUT_FOLDER }}
199235
retention-days: 1
200-
236+
201237
create-release:
202238
needs: [export-kicad, export-freecad, build-firmware]
203239
runs-on: ubuntu-latest
@@ -358,6 +394,16 @@ jobs:
358394
asset_name: firmware.tar.gz
359395
asset_content_type: application/gzip
360396

397+
- name: Upload Test Build Asset
398+
uses: actions/upload-release-asset@v1
399+
env:
400+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
401+
with:
402+
upload_url: ${{ steps.create_release.outputs.upload_url }}
403+
asset_path: ./artifact/build.zip
404+
asset_name: firmware.zip
405+
asset_content_type: application/zip
406+
361407
- name: Download Test Build Artifacts
362408
uses: actions/download-artifact@v4
363409
with:

0 commit comments

Comments
 (0)