Merge pull request #2688 from Antiklesys/master
[RRG-proxmark3.git] / .github / workflows / ubuntu.yml
blobcee57b83a7caca7102867910df9fa441b75cd634
1 name: Ubuntu 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   ubuntu-make:
20     runs-on: ubuntu-latest
22     steps:
23       - uses: actions/checkout@v4
25       - uses: actions/setup-python@v5
26         with:
27           python-version: '3.12'
29       - name: Update apt repos
30         run: sudo apt-get update
32       - name: Install dependencies
33         run: sudo apt-get install -yqq make autoconf build-essential ca-certificates pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev python3 python3-dev libpython3-all-dev liblua5.4-dev liblua5.4-0 lua5.4 sed libssl-dev libgd-dev
35       - name: Install Python dependencies
36         run: pip install -r tools/requirements.txt
38       - name: make clean
39         run: make clean
41       - name: Build
42         env:
43           V: 1
44         run: make -j$((`nproc` + 1))
46       - name: Test
47         run: make check
49   ubuntu-make-btaddon:
50     runs-on: ubuntu-latest
52     steps:
53       - uses: actions/checkout@v4
55       - uses: actions/setup-python@v5
56         with:
57           python-version: '3.12'
59       - name: Update apt repos
60         run: sudo apt-get update
62       - name: Install dependencies
63         run: sudo apt-get install -yqq make autoconf build-essential ca-certificates pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev python3 python3-dev libpython3-all-dev liblua5.4-dev liblua5.4-0 lua5.4 sed libssl-dev libgd-dev
65       - name: Install Python dependencies
66         run: pip install -r tools/requirements.txt
68       - name: make clean
69         run: make clean
71       - name: Build
72         env:
73           V: 1
74           PLATFORM_EXTRAS: BTADDON
75         run: make -j$((`nproc` + 1))
77       - name: Test
78         run: make check
80   ubuntu-cmake:
81     runs-on: ubuntu-latest
83     steps:
84       - uses: actions/checkout@v4
86       - uses: actions/setup-python@v5
87         with:
88           python-version: '3.12'
90       - name: Update apt repos
91         run: sudo apt-get update
93       - name: Install dependencies
94         run: sudo apt-get install -yqq make autoconf build-essential ca-certificates pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev python3 python3-dev libpython3-all-dev liblua5.4-dev liblua5.4-0 lua5.4 sed libssl-dev libgd-dev
96       - name: Install Python dependencies
97         run: pip install -r tools/requirements.txt
99       - name: Prepare Build Folders
100         run: |
101           mkdir -p client/build
102           ln -s ../cmdscripts client/build/
103           ln -s ../luascripts client/build/
104           ln -s ../pyscripts client/build/
105           ln -s ../lualibs client/build/
107       - name: Initiate cmake environment
108         run: cmake ..
109         working-directory: client/build/
111       - name: Build
112         env:
113           VERBOSE: 1
114         run: make -j$((`nproc` + 1))
115         working-directory: client/build/
117       - name: Test
118         env:
119           CHECKARGS: "--clientbin ./client/build/proxmark3"
120         run: make client/check