76cbd30db7e75d9ad70d304a2ffedf5f84c35e89
[openwrt/staging/mkresin.git] / .github / workflows / tools.yml
1 name: Build host tools
2
3 on:
4 pull_request:
5 paths:
6 - 'tools/**'
7
8 jobs:
9 build:
10 name: Build tools on ${{ matrix.os }}
11 runs-on: ${{ matrix.os }}
12 strategy:
13 fail-fast: False
14 matrix:
15 os:
16 - ubuntu-latest
17 - macos-latest
18 steps:
19 - name: Checkout
20 uses: actions/checkout@v2
21 with:
22 fetch-depth: 0
23 path: openwrt
24
25 - name: Setup MacOS
26 if: ${{ matrix.os == 'macos-latest' }}
27 run: |
28 echo "WORKPATH=/Volumes/OpenWrt/openwrt/" >> "$GITHUB_ENV"
29 hdiutil create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
30 hdiutil attach OpenWrt.sparseimage
31 mv "$GITHUB_WORKSPACE/openwrt" /Volumes/OpenWrt/
32 cd "$WORKPATH"
33
34 brew install \
35 autoconf \
36 automake \
37 coreutils \
38 diffutils \
39 findutils \
40 gawk \
41 gettext \
42 git-extras \
43 gmp \
44 gnu-getopt \
45 gnu-sed \
46 gnu-tar \
47 grep \
48 libidn2 \
49 libunistring \
50 m4 \
51 make \
52 mpfr \
53 ncurses \
54 openssl@1.1 \
55 pcre \
56 pkg-config \
57 quilt \
58 readline \
59 wget \
60 zstd
61
62 echo "/bin" >> "$GITHUB_PATH"
63 echo "/sbin/Library/Apple/usr/bin" >> "$GITHUB_PATH"
64 echo "/usr/bin" >> "$GITHUB_PATH"
65 echo "/usr/local/bin" >> "$GITHUB_PATH"
66 echo "/usr/local/opt/coreutils/bin" >> "$GITHUB_PATH"
67 echo "/usr/local/opt/findutils/libexec/gnubin" >> "$GITHUB_PATH"
68 echo "/usr/local/opt/gettext/bin" >> "$GITHUB_PATH"
69 echo "/usr/local/opt/gnu-getopt/bin" >> "$GITHUB_PATH"
70 echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
71 echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
72 echo "/usr/sbin" >> "$GITHUB_PATH"
73 pwd
74
75 - name: Setup Ubuntu
76 if: ${{ matrix.os == 'ubuntu-latest' }}
77 env:
78 DEBIAN_FRONTEND: noninteractive
79 run: |
80 sudo apt-get update
81 sudo apt-get -y install \
82 build-essential \
83 ccache \
84 clang-12 \
85 ecj \
86 fastjar \
87 file \
88 g++ \
89 gawk \
90 gettext \
91 git \
92 java-propose-classpath \
93 libelf-dev \
94 libncurses-dev \
95 libssl-dev \
96 mkisofs \
97 python3 \
98 python3-dev \
99 python3-distutils \
100 python3-setuptools \
101 qemu-utils \
102 rsync \
103 subversion \
104 swig \
105 unzip \
106 wget \
107 xsltproc \
108 zlib1g-dev
109 echo "WORKPATH=$GITHUB_WORKSPACE/openwrt/" >> "$GITHUB_ENV"
110 cd "$WORKPATH"
111 pwd
112
113 - name: Make prereq
114 run: |
115 cd "$WORKPATH"
116 pwd
117 make defconfig
118
119 - name: Build tools
120 run: |
121 cd "$WORKPATH"
122 make tools/install -j$(nproc) BUILD_LOG=1
123
124 - name: Move logs to GITHUB_WORKSPACE
125 if: failure()
126 run: |
127 cp -r "$WORKPATH/logs" "$GITHUB_WORKSPACE"
128
129 - name: Upload logs
130 if: failure()
131 uses: actions/upload-artifact@v2
132 with:
133 name: ${{ matrix.os }}-logs
134 path: "logs"