1name: FreeRTOS-Kernel Demos
2on: [push, pull_request]
3
4jobs:
5  WIN32-MSVC:
6    name: WIN32 MSVC
7    runs-on: windows-latest
8    steps:
9      - name: Checkout the FreeRTOS/FreeRTOS Repository
10        uses: actions/checkout@v2
11        with:
12          ref: main
13          repository: FreeRTOS/FreeRTOS
14          submodules: 'recursive'
15          fetch-depth: 1
16
17      # Checkout user pull request changes
18      - name: Checkout Pull Request
19        uses: actions/checkout@v2
20        with:
21          path: ./FreeRTOS/Source
22
23      - name: Add msbuild to PATH
24        uses: microsoft/setup-msbuild@v1.1
25
26      - name: Build WIN32-MSVC Demo
27        working-directory: FreeRTOS/Demo/WIN32-MSVC
28        run: msbuild WIN32.sln -t:rebuild
29
30      - name: Build WIN32-MSVC-Static-Allocation-Only Demo
31        working-directory: FreeRTOS/Demo/WIN32-MSVC-Static-Allocation-Only
32        run: msbuild WIN32.sln -t:rebuild
33
34  WIN32-MingW:
35    name: WIN32 MingW
36    runs-on: windows-latest
37    steps:
38      - name: Checkout the FreeRTOS/FreeRTOS Repository
39        uses: actions/checkout@v2
40        with:
41          ref: main
42          repository: FreeRTOS/FreeRTOS
43          submodules: 'recursive'
44          fetch-depth: 1
45
46      # Checkout user pull request changes
47      - name: Checkout Pull Request
48        uses: actions/checkout@v2
49        with:
50          path: ./FreeRTOS/Source
51
52      - name: Build WIN32-MingW Demo
53        working-directory: FreeRTOS/Demo/WIN32-MingW
54        run: |
55          gcc --version
56          make --version
57          make
58
59  POSIX-GCC:
60    name: Native GCC
61    runs-on: ubuntu-latest
62    steps:
63      - name: Checkout the FreeRTOS/FreeRTOS Repository
64        uses: actions/checkout@v2
65        with:
66          ref: main
67          repository: FreeRTOS/FreeRTOS
68          submodules: 'recursive'
69          fetch-depth: 1
70
71      # Checkout user pull request changes
72      - name: Checkout Pull Request
73        uses: actions/checkout@v2
74        with:
75          path: ./FreeRTOS/Source
76
77      - name: Install GCC
78        shell: bash
79        run: |
80          sudo apt-get -y update
81          sudo apt-get -y install build-essential
82
83      - name: Build Posix_GCC Demo
84        shell: bash
85        working-directory: FreeRTOS/Demo/Posix_GCC
86        run: make -j
87
88  MSP430-GCC:
89    name: GNU MSP430 Toolchain
90    runs-on: ubuntu-latest
91    steps:
92      - name: Checkout the FreeRTOS/FreeRTOS Repository
93        uses: actions/checkout@v2
94        with:
95          ref: main
96          repository: FreeRTOS/FreeRTOS
97          submodules: 'recursive'
98          fetch-depth: 1
99
100      # Checkout user pull request changes
101      - name: Checkout Pull Request
102        uses: actions/checkout@v2
103        with:
104          path: ./FreeRTOS/Source
105
106      - name: Install MSP430 Toolchain
107        shell: bash
108        run: |
109          sudo apt-get -y update
110          sudo apt-get -y install gcc-msp430 build-essential
111
112      - name: Build msp430_GCC Demo
113        shell: bash
114        working-directory: FreeRTOS/Demo/msp430_GCC
115        run: make -j
116
117  ARM-GCC:
118    name: GNU ARM Toolchain
119    runs-on: ubuntu-latest
120    steps:
121      - name: Checkout the FreeRTOS/FreeRTOS Repository
122        uses: actions/checkout@v2
123        with:
124          ref: main
125          repository: FreeRTOS/FreeRTOS
126          fetch-depth: 1
127
128      - name: Fetch Community-Supported-Demos Submodule
129        shell: bash
130        run: |
131          # Fetch Community-Supported-Demos Submodule
132          echo "::group::Fetch Community-Supported-Demos Submodule"
133          git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
134          echo "::engdroup::"
135          if [ "$?" = "0" ]; then
136            echo -e "\033[32;3mCloned the Community-Supported-Demos\033[0m"
137          else
138            echo -e "\033[32;31mCommunity-Supported-Demos Clone Failed...\033[0m"
139            exit 1
140          fi
141
142      # Checkout user pull request changes
143      - name: Checkout Pull Request
144        uses: actions/checkout@v2
145        with:
146          path: ./FreeRTOS/Source
147
148      - name: Install GNU ARM Toolchain
149        shell: bash
150        run: |
151          sudo apt-get -y update
152          sudo apt-get -y install gcc-arm-none-eabi build-essential cmake git ninja-build python3-minimal
153
154      - name: Build CORTEX_MPU_M3_MPS2_QEMU_GCC Demo
155        shell: bash
156        working-directory: FreeRTOS/Demo/CORTEX_MPU_M3_MPS2_QEMU_GCC
157        run: make -j
158
159      - name: Build CORTEX_LM3S102_GCC Demo
160        shell: bash
161        working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC
162        run: make -j
163
164      - name: Build CORTEX_LM3S811_GCC Demo
165        shell: bash
166        working-directory: FreeRTOS/Demo/CORTEX_LM3S811_GCC
167        run: make -j
168
169      - name: Build CORTEX_M0+_RP2040 Demos
170        shell: bash
171        working-directory: FreeRTOS/Demo/ThirdParty/Community-Supported-Demos/CORTEX_M0+_RP2040
172        run: |
173          git clone https://github.com/raspberrypi/pico-sdk.git
174          cmake -B build -DPICO_SDK_PATH=pico-sdk -GNinja
175          ninja -C build --verbose
176
177      - name: Build CORTEX_MPS2_QEMU_IAR_GCC Demo
178        shell: bash
179        working-directory: FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC
180        run: make -C build/gcc -j
181