This repository has been archived by the owner on Nov 4, 2024. It is now read-only.
forked from drivechain-project/mainchain-old
-
Notifications
You must be signed in to change notification settings - Fork 8
136 lines (107 loc) · 3.71 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: Build
on:
pull_request:
push:
branches:
- "master"
jobs:
build-linux:
name: Build Linux binaries
runs-on: ubuntu-20.04
steps:
- name: install Linux deps
run: sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3
- uses: actions/checkout@v3
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ./depends
key: linux-${{ hashFiles('depends/packages/**') }}
- name: download dependencies
run: make -C ./depends download-linux
- name: build dependencies
run: make -C ./depends -j4
- run: ./autogen.sh
- run: echo "CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site" >> $GITHUB_ENV
- run: ./configure
- run: make -j4
- uses: actions/upload-artifact@v4
with:
name: binaries-Linux
if-no-files-found: error
path: |
src/drivechaind
src/drivechain-cli
src/qt/drivechain-qt
build-windows:
name: Build Windows binaries
runs-on: ubuntu-20.04
steps:
# g++-mingw-w64-x86-64 is the cross-compiling toolchain needed for
# producing Windows binaries
#
# python3 line is needed to make `python` resolve to `python3`
- name: install deps
run: |
sudo apt install g++-mingw-w64-x86-64 \
build-essential libtool autotools-dev automake \
libssl-dev libevent-dev \
pkg-config bsdmainutils curl git \
python3-setuptools python-is-python3 \
- name: configure the Windows toolchain
run: sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
- uses: actions/checkout@v3
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ./depends
key: windows-${{ hashFiles('depends/packages/**') }}
- name: download dependencies
run: make -C ./depends download-win
- name: build dependencies
run: make -C ./depends HOST=x86_64-w64-mingw32 -j4
- run: ./autogen.sh
- run: echo "CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site" >> $GITHUB_ENV
- run: ./configure
- run: make -j4
- uses: actions/upload-artifact@v4
with:
name: binaries-Windows
if-no-files-found: error
path: |
src/drivechaind.exe
src/drivechain-cli.exe
src/qt/drivechain-qt.exe
build-macos:
name: Build macOS binaries
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ./depends
key: macos-${{ hashFiles('depends/packages/**') }}
- name: download dependencies
run: make -C ./depends download-osx
- name: Run build in Docker
uses: addnab/docker-run-action@v3
with:
image: barebitcoin/testchain-macos-builder
options: -v ${{ github.workspace }}:/testchain --workdir=/testchain
shell: bash
run: |
set -e
make -C depends -j4
export CONFIG_SITE=$PWD/depends/x86_64-apple-darwin11/share/config.site
./autogen.sh
./configure
make -j4 # Limit the concurrency to prevent OOM
- uses: actions/upload-artifact@v4
with:
name: binaries-macOS
if-no-files-found: error
path: |
src/drivechaind
src/drivechain-cli
src/qt/drivechain-qt