Merge pull request #2688 from Antiklesys/master
[RRG-proxmark3.git] / .github / workflows / windows.yml
bloba9b052c018d313fd7eb7f629834fa138901a54a8
1 name: Windows Build and Test
3 on:
4   push:
5     paths-ignore:
6       - 'doc/**'
7       - 'docker/**'
8       - 'traces/**'
9       - '.vscode/**'
10   pull_request:
11     paths-ignore:
12       - 'doc/**'
13       - 'docker/**'
14       - 'traces/**'
15       - '.vscode/**'
18 jobs:
19   proxspace:
20     runs-on: windows-latest
21     defaults:
22       run:
23         shell: pwsh
24     env:
25       PATH: C:/ProxSpace/msys2/mingw64/bin;C:/ProxSpace/msys2/usr/local/bin;C:/ProxSpace/msys2/usr/bin;C:/ProxSpace/msys2/bin
26       MSYSTEM: MINGW64
27       PYTHONHOME: /mingw64
29     steps:
30       - name: ProxSpace download
31         run: Invoke-WebRequest "https://github.com/Gator96100/ProxSpace/archive/master.zip" -outfile "C:\proxspace.zip" -Passthru
33       - name: ProxSpace extract
34         run: Expand-Archive -LiteralPath "C:\proxspace.zip" -DestinationPath "C:\"
36       - name: ProxSpace delete zip
37         run: Remove-Item "C:\proxspace.zip"
39       - name: ProxSpace rename folder
40         run: Get-ChildItem -Path "C:\ProxSpace-*" | Rename-Item -NewName (Split-Path C:\ProxSpace -Leaf)
42       - name: ProxSpace version
43         run: |
44           $psversion = (Select-String -Pattern 'PSVERSION=' -SimpleMatch -Path "C:\ProxSpace\setup\09-proxspace_setup.post").Line.Split("""")[1]
45           Write-Host "ProxSpace version: $psversion"
47       - name: ProxSpace initial startup
48         working-directory: C:\ProxSpace
49         run: ./runme64.bat -c "exit"
51       - uses: actions/checkout@v4
53       - name: make clean
54         run: make clean
56       - name: Build
57         run: make -j $([System.Environment]::ProcessorCount + 1) V=1
59       - name: Test
60         run: make check
62       - name: make clean
63         run: make clean
65       - name: Build btaddon
66         run: make -j $([System.Environment]::ProcessorCount + 1) V=1 PLATFORM_EXTRAS=BTADDON
68       - name: Test btaddon
69         run: make check
71       - name: make clean
72         run: make clean
74       - name: Prepare cmake build folders
75         run: |
76           mkdir -p client/build
77           ln -s ../cmdscripts client/build/
78           ln -s ../luascripts client/build/
79           ln -s ../pyscripts client/build/
80           ln -s ../lualibs client/build/
82       - name: Initiate cmake environment
83         run: cmake -G"MSYS Makefiles" ..
84         working-directory: client/build/
86       - name: Build cmake
87         run: make -j $([System.Environment]::ProcessorCount + 1) VERBOSE=1
88         working-directory: client/build/
90       - name: Test cmake
91         run: make client/check CHECKARGS="--clientbin ./client/build/proxmark3"
93   wsl:
94     runs-on: windows-latest
95     defaults:
96       run:
97         shell: wsl-bash {0}
99     steps:
100       - name: WSL setup
101         uses: Vampire/setup-wsl@v3
102         with:
103           distribution: Ubuntu-22.04
104           update: "true"
105           additional-packages: git
106             ca-certificates
107             build-essential
108             pkg-config
109             libreadline-dev
110             gcc-arm-none-eabi
111             libnewlib-dev
112             libbz2-dev
113             liblz4-dev
114             qtbase5-dev
115             cmake
116             libpython3-dev
117             python3
118             python3-pip
119             python3-dev
120             libpython3-all-dev
121             libssl-dev
122             libgd-dev
124       - name: Install Python dependencies
125         run: |
126           python3 -m pip install --upgrade pip
127           python3 -m pip install setuptools
128           python3 -m pip install ansicolors sslcrypto
130       - name: WSL QT fix
131         run: sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
133       - name: Set git to use LF
134         shell: bash
135         run: |
136           git config --global core.autocrlf false
137           git config --global core.eol lf
139       - uses: actions/checkout@v4
141       - name: make clean
142         run: make clean
144       - name: Build
145         run: make -j$((`nproc` + 1)) V=1
147       - name: Test
148         run: make check
150       - name: make clean
151         run: make clean
153       - name: Build btaddon
154         run: make -j$((`nproc` + 1)) V=1 PLATFORM_EXTRAS=BTADDON
156       - name: Test btaddon
157         run: make check
159       - name: make clean
160         run: make clean
162       - name: Prepare cmake build folders
163         run: |
164           mkdir -p client/build
165           ln -s ../cmdscripts client/build/
166           ln -s ../luascripts client/build/
167           ln -s ../pyscripts client/build/
168           ln -s ../lualibs client/build/
170       - name: Initiate cmake environment
171         run: cmake ..
172         working-directory: client/build/
174       - name: Build cmake
175         run: make -j$((`nproc` + 1)) VERBOSE=1
176         working-directory: client/build/
178       - name: Test cmake
179         run: make client/check CHECKARGS="--clientbin ./client/build/proxmark3"