99    steps :
1010      - uses : actions/checkout@v3 
1111
12-       - name : Install AVR development files 
12+       - name : Create mock headers 
1313        run : | 
14-           sudo apt-get update 
15-           sudo apt-get install -y gcc-avr avr-libc 
14+           # Create directory structure for mock headers 
15+           mkdir -p $GITHUB_WORKSPACE/mock/avr/util 
16+            
17+           # Create mock crc16.h 
18+           cat > $GITHUB_WORKSPACE/mock/avr/util/crc16.h << 'EOF' 
19+           #ifndef _UTIL_CRC16_H_ 
20+           #define _UTIL_CRC16_H_ 
21+            
22+           #include <stdint.h> 
23+            
24+           static inline uint16_t _crc16_update(uint16_t crc, uint8_t data) { 
25+               return (crc << 8) | data; 
26+           } 
27+            
28+           #endif 
29+           EOF 
30+            
31+           # Create mock pgmspace.h 
32+           cat > $GITHUB_WORKSPACE/mock/avr/pgmspace.h << 'EOF' 
33+           #ifndef __PGMSPACE_H_ 
34+           #define __PGMSPACE_H_ 
35+            
36+           #include <inttypes.h> 
37+            
38+           #define PROGMEM 
39+           #define PGM_P  const char * 
40+           #define PSTR(str) (str) 
41+            
42+           #define pgm_read_byte(addr) (*(const unsigned char *)(addr)) 
43+           #define pgm_read_word(addr) (*(const unsigned short *)(addr)) 
44+           #define pgm_read_dword(addr) (*(const unsigned long *)(addr)) 
45+           #define pgm_read_float(addr) (*(const float *)(addr)) 
46+            
47+           #define strlen_P(s) strlen((const char *)(s)) 
48+           #define strcpy_P(dest, src) strcpy((char *)(dest), (const char *)(src)) 
49+           #define strncpy_P(dest, src, n) strncpy((char *)(dest), (const char *)(src), (n)) 
50+            
51+           #endif 
52+           EOF 
53+            
54+           # Create mock inttypes.h 
55+           cat > $GITHUB_WORKSPACE/mock/inttypes.h << 'EOF' 
56+           #ifndef _INTTYPES_H 
57+           #define _INTTYPES_H 
58+            
59+           #include <stdint.h> 
60+            
61+           typedef int32_t int_farptr_t; 
62+           typedef uint32_t uint_farptr_t; 
63+            
64+           #endif 
65+           EOF 
1666       
1767      - name : Create required directories 
1868        run : | 
@@ -55,11 +105,8 @@ jobs:
55105        run : | 
56106          gem install arduino_ci -v 1.6.2 
57107       
58-       - name : Create mock AVR include structure 
59-         run : | 
60-           sudo mkdir -p /usr/include/avr/util 
61-           sudo cp /usr/lib/avr/include/util/crc16.h /usr/include/avr/util/ 
62-        
63108      - name : Run Arduino CI Tests 
109+         env :
110+           CPLUS_INCLUDE_PATH : ${{ github.workspace }}/mock:$CPLUS_INCLUDE_PATH 
64111        run : | 
65-           CPLUS_INCLUDE_PATH=/usr/lib/avr/include:$CPLUS_INCLUDE_PATH  arduino_ci.rb 
112+           arduino_ci.rb 
0 commit comments