Skip to content

Commit cae42eb

Browse files
authored
Build Binaries in CI for Windows, Linux and Mac (#95)
Uses Github Actions to build AVaRICE for Windows, Linux and Mac
1 parent 5a125cd commit cae42eb

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

.github/workflows/build.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
name: Build Binaries
2+
on: [push, pull_request]
3+
4+
jobs:
5+
build-win64:
6+
runs-on: windows-latest
7+
defaults:
8+
run:
9+
shell: msys2 {0}
10+
steps:
11+
- uses: actions/checkout@v3
12+
- uses: msys2/setup-msys2@v2
13+
with:
14+
msystem: MSYS
15+
update: false
16+
install: git make unzip gcc libtool msys/autotools msys/autoconf-wrapper automake cmake msys/binutils mingw-w64-x86_64-libusb
17+
- name: Build libusb
18+
run: |
19+
git clone https://github.com/libusb/libusb.git
20+
cd ./libusb
21+
./bootstrap.sh
22+
./configure
23+
make -j$NUMBER_OF_PROCESSORS
24+
make install
25+
- name: Build libusb-compat-0.1
26+
run: |
27+
git clone https://github.com/libusb/libusb-compat-0.1.git
28+
cd ./libusb-compat-0.1
29+
./bootstrap.sh
30+
./configure
31+
make -j$NUMBER_OF_PROCESSORS
32+
make install
33+
- name: Build hidapi
34+
run: |
35+
git clone https://github.com/libusb/hidapi.git
36+
cd ./hidapi
37+
./bootstrap
38+
./configure
39+
make all -j$NUMBER_OF_PROCESSORS
40+
make install
41+
- name: Build AVaRICE
42+
run: |
43+
./Bootstrap
44+
./configure
45+
make -j$NUMBER_OF_PROCESSORS
46+
make install DESTDIR=$(pwd)/avarice_installed/
47+
ls -R avarice_installed
48+
file avarice_installed/usr/bin/*
49+
ldd avarice_installed/usr/bin/avarice
50+
cp /mingw64/bin/libusb-1.0.dll avarice_installed/usr/bin/.
51+
cp /usr/bin/msys-2.0.dll avarice_installed/usr/bin/.
52+
cp /usr/bin/msys-stdc++-6.dll avarice_installed/usr/bin/.
53+
cp /usr/bin/msys-gcc_s-seh-1.dll avarice_installed/usr/bin/.
54+
cp /usr/bin/msys-usb-0-1-4.dll avarice_installed/usr/bin/.
55+
cp /usr/bin/msys-hidapi-0.dll avarice_installed/usr/bin/.
56+
- name: Run AVaRICE
57+
run: |
58+
avarice_installed/usr/bin/avarice --version
59+
avarice_installed/usr/bin/avarice --known-devices || true
60+
- uses: actions/upload-artifact@v3
61+
with:
62+
name: AVaRICE Windows 64-bit
63+
path: avarice_installed
64+
build-lin64:
65+
runs-on: ubuntu-latest
66+
steps:
67+
- uses: actions/checkout@v3
68+
- name: Install Dependencies
69+
run: sudo apt-get update && sudo apt-get install -y build-essential make autotools-dev automake binutils-dev libusb-dev libhidapi-dev
70+
- name: Build AVaRICE
71+
run: |
72+
./Bootstrap
73+
./configure --enable-target-programming
74+
make -j$NUMBER_OF_PROCESSORS
75+
mkdir avarice_installed
76+
make install DESTDIR=$(pwd)/avarice_installed/
77+
file avarice_installed/usr/local/bin/*
78+
ldd avarice_installed/usr/local/bin/avarice
79+
- name: Run AVaRICE
80+
run: |
81+
avarice_installed/usr/local/bin/avarice --version
82+
avarice_installed/usr/local/bin/avarice --known-devices || true
83+
- name: Tar files
84+
run: tar -cvf avarice.tar.gz -C avarice_installed .
85+
- uses: actions/upload-artifact@v3
86+
with:
87+
name: AVaRICE Linux 64-bit
88+
path: avarice.tar.gz
89+
build-darwin-x64:
90+
runs-on: macos-latest
91+
steps:
92+
- uses: actions/checkout@v3
93+
- name: Install Dependencies
94+
run: |
95+
brew install gcc binutils autoconf automake mk-configure libusb libusb-compat hidapi
96+
- name: Build AVaRICE
97+
run: |
98+
./Bootstrap
99+
./configure
100+
make -j3
101+
mkdir avarice_installed
102+
make install DESTDIR=$(pwd)/avarice_installed/
103+
ls -R avarice_installed
104+
otool -L avarice_installed/usr/local/bin/avarice
105+
- name: Run AVaRICE
106+
run: |
107+
avarice_installed/usr/local/bin/avarice --version
108+
avarice_installed/usr/local/bin/avarice --known-devices || true
109+
- name: Tar files
110+
run: tar -cvf avarice.tar.gz -C avarice_installed .
111+
- uses: actions/upload-artifact@v3
112+
with:
113+
name: AVaRICE Mac OS Intel 64-bit
114+
path: avarice.tar.gz

0 commit comments

Comments
 (0)