diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 000000000..78ee6c3cf --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,152 @@ +name: Windows Build and Test + +on: [push, pull_request] + +jobs: + proxspace: + runs-on: windows-latest + defaults: + run: + shell: pwsh + env: + PATH: C:/ProxSpace/msys2/mingw64/bin;C:/ProxSpace/msys2/usr/local/bin;C:/ProxSpace/msys2/usr/bin;C:/ProxSpace/msys2/bin + MSYSTEM: MINGW64 + + steps: + - name: ProxSpace download + run: Invoke-WebRequest "https://github.com/Gator96100/ProxSpace/archive/master.zip" -outfile "C:\proxspace.zip" -Passthru + + - name: ProxSpace extract + run: Expand-Archive -LiteralPath "C:\proxspace.zip" -DestinationPath "C:\" + + - name: ProxSpace delete zip + run: Remove-Item "C:\proxspace.zip" + + - name: ProxSpace rename folder + run: Get-ChildItem -Path "C:\ProxSpace-*" | Rename-Item -NewName (Split-Path C:\ProxSpace -Leaf) + + - name: ProxSpace version + run: | + $psversion = (Select-String -Pattern 'PSVERSION=' -SimpleMatch -Path "C:\ProxSpace\msys2\ps\09-proxspace_setup.post").Line.Split("""")[1] + Write-Host "ProxSpace version: $psversion" + + - name: ProxSpace initial startup + working-directory: C:\ProxSpace + run: ./runme64.bat -c "exit" + + - uses: actions/checkout@v2 + + - name: make clean + run: make clean + + - name: Build + run: make V=1 + + - name: Test + run: make check + + - name: make clean + run: make clean + + - name: Build btaddon + run: make V=1 PLATFORM_EXTRAS=BTADDON + + - name: Test btaddon + run: make check + + - name: make clean + run: make clean + + - name: Prepare cmake build folders + run: mkdir -p client/build + + - name: Initiate cmake environment + run: cmake -G"MSYS Makefiles" .. + working-directory: client/build/ + + - name: Build cmake + run: make VERBOSE=1 + working-directory: client/build/ + + - name: Test cmake + run: make client/check CHECKARGS="--clientbin ./client/build/proxmark3" + + wsl: + runs-on: windows-latest + defaults: + run: + shell: wsl-bash {0} + + steps: + - name: WSL setup + uses: Vampire/setup-wsl@v1 + with: + distribution: Ubuntu-20.04 + update: "true" + additional-packages: git + ca-certificates + build-essential + pkg-config + libreadline-dev + gcc-arm-none-eabi + libnewlib-dev + libbz2-dev + qtbase5-dev + cmake + libpython3-dev + python3 + python3-pip + python3-dev + libpython3-all-dev + + - name: Install Python dependencies + run: | + python3 -m pip install --upgrade pip + python3 -m pip install setuptools + python3 -m pip install ansicolors sslcrypto + + - name: WSL QT fix + run: sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 + + - name: Set git to use LF + shell: bash + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - uses: actions/checkout@v2 + + - name: make clean + run: make clean + + - name: Build + run: make V=1 + + - name: Test + run: make check + + - name: make clean + run: make clean + + - name: Build btaddon + run: make V=1 PLATFORM_EXTRAS=BTADDON + + - name: Test btaddon + run: make check + + - name: make clean + run: make clean + + - name: Prepare cmake build folders + run: mkdir -p client/build + + - name: Initiate cmake environment + run: cmake .. + working-directory: client/build/ + + - name: Build cmake + run: make VERBOSE=1 + working-directory: client/build/ + + - name: Test cmake + run: make client/check CHECKARGS="--clientbin ./client/build/proxmark3"