Skip to content

Multi platforms

Multi platforms #22

Workflow file for this run

name: Build Windows Client
on: [push, workflow_dispatch]
jobs:
load_conf:
runs-on: ubuntu-22.04
outputs:
refs: ${{ steps.load_step.outputs.refs }}
steps:
- name: Checkout
uses: actions/checkout@v3
- id: load_step
name: Load Config
run: |
python loadConf.py
cat $GITHUB_OUTPUT
prepare_proxspace:
runs-on: windows-latest
defaults:
run:
shell: pwsh
env:
MSYSTEM: MINGW64
PYTHONHOME: /mingw64
steps:
- name: Set Environment
run: |
$Env:PATH = "C:/ProxSpace/msys2/mingw64/bin;C:/ProxSpace/msys2/usr/local/bin;C:/ProxSpace/msys2/usr/bin;C:/ProxSpace/msys2/bin;"+$Env:PATH
echo $Env:PATH
echo $Env:PATH >> "$GITHUB_ENV"
- name: ProxSpace download
run: Invoke-WebRequest "https://github.com/Gator96100/ProxSpace/archive/master.zip" -outfile "C:\proxspace.zip" -Passthru
- name: ProxSpace Copy
run: copy "C:\proxspace.zip" ./
- name: Cache ProxSpace
id: cache-proxspace
uses: actions/cache@v3
env:
cache-name: cache-proxspace
with:
path: C:/ProxSpace
key: proxspace-${{ hashFiles('./proxspace.zip') }}
# don't use cache-hit
# in case of partial key match
- name: Check Cache
id: check-cache
continue-on-error: true
run: cd C:/ProxSpace
- name: ProxSpace extract
if: ${{ !contains(steps.check-cache.outcome, 'success') }}
run: Expand-Archive -LiteralPath "C:\proxspace.zip" -DestinationPath "C:\"
- name: ProxSpace delete zip
run: |
Remove-Item "C:\proxspace.zip"
Remove-Item "./proxspace.zip"
- name: ProxSpace rename folder
if: ${{ !contains(steps.check-cache.outcome, 'success') }}
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\setup\09-proxspace_setup.post").Line.Split("""")[1]
Write-Host "ProxSpace version: $psversion"
- name: ProxSpace simplify
if: ${{ !contains(steps.check-cache.outcome, 'success') }}
run: |
((Get-Content -path "C:\ProxSpace\setup\packages.txt" -Raw) -replace 'mingw-w64-x86_64-qt5','mingw-w64-x86_64-qt5-base') | Set-Content -Path "C:\ProxSpace\setup\packages.txt"
- name: ProxSpace initial startup
if: ${{ !contains(steps.check-cache.outcome, 'success') }}
working-directory: C:\ProxSpace
run: ./runme64.bat -c "exit"
build:
runs-on: windows-latest
needs: [load_conf, prepare_proxspace]
strategy:
fail-fast: false
matrix:
ref: ${{ fromJSON(needs.load_conf.outputs.refs) }}
platform: [PM3RDV4, PM3GENERIC, RDV4BTADDON, GENERICWITHFLASH]
defaults:
run:
shell: pwsh
env:
MSYSTEM: MINGW64
steps:
- name: Set Environment
run: |
$Env:PATH = "C:/ProxSpace/msys2/mingw64/bin;C:/ProxSpace/msys2/usr/local/bin;C:/ProxSpace/msys2/usr/bin;C:/ProxSpace/msys2/bin;"+$Env:PATH
echo $Env:PATH
echo $Env:PATH >> "$GITHUB_ENV"
- name: ProxSpace download
run: Invoke-WebRequest "https://github.com/Gator96100/ProxSpace/archive/master.zip" -outfile "C:\proxspace.zip" -Passthru
- name: ProxSpace Copy
run: copy "C:\proxspace.zip" ./
- name: Cache ProxSpace
id: cache-proxspace
uses: actions/cache@v3
env:
cache-name: cache-proxspace
with:
path: C:/ProxSpace
key: proxspace-${{ hashFiles('./proxspace.zip') }}
- name: ProxSpace delete zip
run: |
Remove-Item "C:\proxspace.zip"
Remove-Item "./proxspace.zip"
- name: ProxSpace initial startup
working-directory: C:\ProxSpace
env:
PYTHONHOME: /mingw64
run: ./runme64.bat -c "exit"
- name: Checkout Proxmark3
env:
MATRIX_REF: ${{ matrix.ref }}
working-directory: C:\ProxSpace
run: |
mkdir -Force ./pm3
cd pm3
git clone https://github.com/RfidResearchGroup/proxmark3.git --filter=blob:none --no-checkout
cd proxmark3
git checkout ${{ env.MATRIX_REF }}
echo ${{ env.MATRIX_REF }}
- name: Checkout
uses: actions/checkout@v3
- name: Create Makefile.platform
env:
MATRIX_PLATFORM: ${{ matrix.platform }}
run: |
python makefile.py
- name: ProxSpace autobuild
working-directory: C:/ProxSpace
env:
PYTHONHOME: /mingw64
run: |
./autobuild.bat
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: client_${{ matrix.ref }}
path: |
C:/ProxSpace/builds/**/*.7z