-
Notifications
You must be signed in to change notification settings - Fork 143
130 lines (115 loc) · 5.21 KB
/
windows.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Run tests on Windows
on: [pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
windows_testing:
runs-on: windows-2022
env:
PYTHONIOENCODING: "utf-8"
steps:
# Disabling snake-oil for performance reasons
- name: Disable Windows Defender
run: Set-MpPreference -DisableRealtimeMonitoring $true
# This doesn't work due to files getting overwritten from inside the zip
# [System.IO.Compression.ZipFile]::ExtractToDirectory("gcc-arm-none-eabi-win64.zip", "C:\")
# And this manual expansion code
# function Unzip($zipfile, $outdir)
# {
# Add-Type -AssemblyName System.IO.Compression.FileSystem
# $archive = [System.IO.Compression.ZipFile]::OpenRead($zipfile)
# foreach ($entry in $archive.Entries)
# {
# $entryTargetFilePath = [System.IO.Path]::Combine($outdir, $entry.FullName)
# $entryDir = [System.IO.Path]::GetDirectoryName($entryTargetFilePath)
# if(!(Test-Path $entryDir )){
# New-Item -ItemType Directory -Path $entryDir | Out-Null
# }
# if (!$entryTargetFilePath.EndsWith("\") -And !$entryTargetFilePath.EndsWith("/")) {
# [System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $entryTargetFilePath, $true);
# }
# }
# }
# Unzip -zipfile "gcc-arm-none-eabi-win64.zip" -outdir "C:\"
# is not faster than
# Expand-Archive -Path gcc-arm-none-eabi-win64.zip -DestinationPath C:\ -Force
- name: Download and Unzip GCCs
shell: powershell
run: |
$ProgressPreference = 'SilentlyContinue'
Start-Job {
Set-Location $using:PWD
Add-Type -Assembly "System.IO.Compression.Filesystem"
Invoke-WebRequest -OutFile gcc-win64.zip https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0posix-18.1.5-11.0.1-msvcrt-r8/winlibs-x86_64-posix-seh-gcc-13.2.0-mingw-w64msvcrt-11.0.1-r8.zip
[System.IO.Compression.ZipFile]::ExtractToDirectory("gcc-win64.zip", "C:\")
}
Start-Job {
Set-Location $using:PWD
Invoke-WebRequest -OutFile gcc-arm-none-eabi-win64.zip https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi.zip
Expand-Archive -Path gcc-arm-none-eabi-win64.zip -DestinationPath C:\ -Force
}
Start-Job {
Set-Location $using:PWD
Add-Type -Assembly "System.IO.Compression.Filesystem"
Invoke-WebRequest -OutFile gcc-avr-win64.zip https://github.com/ZakKemble/avr-gcc-build/releases/download/v13.2.0-1/avr-gcc-13.2.0-x64-windows.zip
[System.IO.Compression.ZipFile]::ExtractToDirectory("gcc-avr-win64.zip", "C:\")
}
Get-Job | Wait-Job
- name: Install GCCs
if: always()
shell: powershell
run: |
dir C:\
dir C:\mingw64
dir C:\arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi
dir C:\avr-gcc-13.2.0-x64-windows
echo "C:\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\avr-gcc-13.2.0-x64-windows\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
rm gcc-arm-none-eabi-win64.zip
- name: Install Python
if: always()
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Python packages
if: always()
run: |
pip install --upgrade --upgrade-strategy=eager modm scons future
- name: Show Version Information
if: always()
run: |
gcc --version
g++ --version
make --version
arm-none-eabi-g++ --version
avr-g++ --version
lbuild --version
python -c "import os; print(os.cpu_count())"
- name: Check out repository
if: always()
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Hosted Examples
if: always()
shell: bash
run: |
(cd examples && python ../tools/scripts/examples_compile.py linux/assert linux/block_device/ram linux/build_info linux/git linux/logger linux/printf linux/etl linux/fiber)
- name: Hosted Unittests
if: always()
shell: bash
run: |
(cd test && make run-hosted-windows)
- name: Compile STM32 Examples
if: always()
shell: bash
run: |
(cd examples && python ../tools/scripts/examples_compile.py nucleo_f031k6 nucleo_f103rb nucleo_f303re nucleo_f411re nucleo_f746zg)
(cd examples && python ../tools/scripts/examples_compile.py nucleo_g071rb nucleo_l031k6 nucleo_l152re nucleo_l432kc nucleo_g474re)
- name: Compile AVR Examples
if: always()
shell: bash
run: |
(cd examples && ../tools/scripts/examples_compile.py avr arduino_nano arduino_uno srxe)